Note: You might not be interesting the project management philosophies (or my philosophies whichever might be the case) scroll down and read a story I have given at the end.
Unless it is your academic project it is likely that most of our projects require collaboration. Managers, Testers , Programmers and those who do nothing but bullshit.
Ideally it is clear who does what. Irrespective of that almost every person in the team is very likely to complain that only he/she is doing his/her job properly and others are trying to push their work on him/her. Rarely you will find people who will admit that they were not able to do their own job properly in the absence of any acceptable excuse.
Despite of all this project has to move on. Deadlines have to be met. If every individual does their job to the best of their abilities even then the project suffers from “Suraj Ka satava ghoda” effect. The chariot of sun is imagined to have 7 horses the 7th being a little slower than the rest. This slows down the whole chariot. It is a metaphor generally used to explain the concept of bottlenecks.
If this 7th horse is still moving at an acceptable pace then nothing bad happens. The project meets it’s deadlines and quality standards. But if he is slower than what it required the whole project gets affected. Everything it sub-par. Someone has to help the guy who is left behind. Share his work and that means doing his job yourself after doing your own.
While this act might be good for the project, the efficient guy will feel punished if his extra work gets ignored and the slower guy will not feel compelled to work harder if he is not penalized.
Taking other’s job seriously
But sometimes you will find people very enthusiastic to help others after they have done their job. I was one of those people. On my last project with my previous employer, I introduced our testing team tools such as firebug. I helped them to build more and more test-cases (I generally kept this fact hidden from other devs) and I wrote small programs that would help them test some non-functional requirements such as cookie-creation etc. One of the tester came across as a total black-sheep. He was not competent at all and despite my help got fired for his incompetence. I even got to write Ruby programs for automating the testing process.
This is not to say my help was significant. It was probably negligible. But, then I had to ask myself this question; why on earth did I help them ?My help has selfish motives. I wanted to know in detail how exactly testers carry their testing process. I wanted to get a share of their experience without actually doing their job. I wanted them to consider me as an insider and give a detailed look at the whole process. Compared to what I gained from them what I gave them was trivial.
Today I setup a testing environment for one of the project. A couple of testers guided my me are going to test the whole application for next few months. I know why it is so crucial to set-up a bugzilla and not an excel sheet, why it is so crucial to create a testing policy and bug categorization.
The policy for defining subject of a bug is
Subject : [Release Candidate][Feature][Brief Description]
Everyday it saves me minimum half an hour [Translates to around Rs. 200] to check where are the bugs are concentrated. If the bugs were in Excel or in assorted mails several bugs would simply be lost or we will forget on which code version were they reported. Leading to a serious time loss and given my short attention span for stupid task such as searching mails it would mean serious loss of money and reputation.
On the other hand I could have refused any assistance to testers. I could have cribbed to my manager that the testing team is troubling me and depriving me of my productive hours. But then I would have remained just a developer.
The curse of being a manager
When my manager and team lead would ask me for help in preparing estimations or mpp I was more than glad to help them out. While I did that my manger out of his experience would tell me, when you say development will take X hours you should add X*0.33 to it for unit testing. Then add X*.22 as a safety margin and this needs to be done ruthlessly even if you feel it’s excessive. It was certainly a wise man’s advice. I had a piece of his experience that I now use successfully. I am astonished to see how many times even that 55% increase was reduced to nothing.
He would then show me how other people are working and how I should stop assuming everyone is just as good or bad as myself. The maximum fluctuations in the estimations are not caused because of technical reasons but because of strange reasons such as one team member getting pregnant and rendered unproductive (!). Every project plan was made assuming we have three people but in the end one person would go missing for one reason or other, still two people had to complete everything on the promised time. that 0.33 rule which might not be any book on project management was a life saver.
For a developer this might sound absurd. On how many projects would a team mate get pregnant and unable to work ? Spend half an hour with a project manager in cafeteria and he tells you that out of the 7 projects he is looking after 6 are under-staffed. 2 critical resources are about to leave the company. He will name people and tell me that these are completely incompetent for their current job. There is more fire than he can fight.
The bigger picture
Everyone tells you to look at the bigger picture and often that advice is rhetorical. When you are working on a project which is not of much interest to you neither you think it has a brighter future you tend to drag your legs and limbs on it. It like a big jigsaw puzzle and you are standing on a piece which doesn’t make sense to you. If you just stay there you will remain there.
Stand on your toes, extend your neck, looks around, try to make sense of the pieces , don’t try to join them if you have no attachment for your employer, still every experience from wherever you can and then move to a different place where you can apply that knowledge.
This is one of may favorite stories. I read it as a child possibly 10+ years back in an issue of Marathi children magazine ‘Chandoba’.
There lived a boy named Gopal in a village who as clearly much smarter for his age. On the advice of villagers his mother took him to a Gurukul far away. The Guru was known to be the best teacher in that area. Guru agreed to admit the child. Within few days Guru decided that this particular student will not sit with the regular class instead he will be taught separately alone.
This discrimination dint go well with rest of the inmates. They complained to the Guru. “Why do you teach Gopal separately? Why are you discriminating between him and us ? ”
Guru said maintaning his composure that “Gopal is far more intelligent than any of you. It will be an injustice to him to learn at your place while he can learn much faster hence for the benefit of both I teach him separately. So far he is the second best and intelligent student I have encountered in my life”.
That did convince the students but Gopal who was listening to this conversation was happy and sad at the same time. Happy because Guru called him smarter than rest and sad because Guru acknowledged that someone was even smarter than him.
Guru subsequently noticed Gopal’s state of mind. Guru assured that Gopal has full chances of being “the best” student if he clears all the tests well. Years went by and Gopal learned everything with best results. Eventually the last day of his education approached.
Guru called Gopal and told him. “You are still the second best student I ever had. I give you an opportunity be ‘the best’ student as promised”.
My best student was Hari. He was as good as you in academics. I had entrusted him with a task which he couldn’t complete. If you can take it to end I will call you my the best student.
Guru explained the task:
In a far of village Koshala, there are three rich and accomplished people living. One of them is a blacksmith well known for his great craftsmanship, his swords are bought by the likes of kings and he employs several people. Second is a washer-man well known for his work and he too is wealthy and well known, people say the clothes he wishes remain new forever, third one is a barber and people say that those who cut their hair with him never get bald. These people are at peak of their skills but unfortunately they are absolutely illiterate.
Hari failed to teach them even basic alphabets. If you can teach any of them at least some basic reading/writing skills I will consider you victorious.
Gopal took the challenge and left to Koshala. He spent days and weeks going to all these three men convincing them to learn something. All three of them refused, they simply could not see the need of knowing something other then their own work. As days passed by Gopal realized that this was an impossible task. He returned to the guru and apologized.
He said, “Guruji, I admit I have failed. I could not get better than Hari. But Guruji I am equivalent to Hari in everyhting else, I have failed where he failed. Wouldn’t it be unfair to call me the second best? I am still as good as him”.
Guru smiled and said “No dear Gopal, there is something that Hari did manage to do which you did not even try to do”.
“And what was that ?” Asked Gopal in astonishment.
“Though he couldn’t teach them a thing, he requested them to teach him their skills and succeeded in learning all the three skills as good as their masters”.
Gopal the bright as he was quick in admitting the defeat and greatness of his Guru-mitra Hari.
Moral of the story: I don’t like stories with morals. They take the fun out of it. If stories have moral why waste time telling the whole story ? I leave it to the reader to derive their own meanings and I am sure to each his own.