Sunday, December 19, 2010

Notes to a development lead–part 2

The rule of the thumb to follow is that he should be able to say no to both the sides, up as well down. One measurable way it to count how many times you have said no to crazy ideas. From up and from down. You should be just while saying no to things that come from below. You should be stubborn when you say no to things that come from above. You should be political when things are coming from the same level.

Emotions generally do ruin things for you. But it is always ok to be emotional in control. Some times strong emotions take you faster to a desired goal. Strong emotions leave back deeper impressions. So it is ok to throw tantrums at the right moment. You should be using tantrum as one in a year kind of tool. In moderation and used at a right place, a tantrum is the best approach. But all this is only exception to the rule. As a lead, you should be empathetic to every one around. Even a worst idea should be given equal importance. Because an idea means a person is trying to think and that he is invested. This is pretty rare. But it can really be faked very very easily. A lead should be able to figure out the fake and even the extent of the fake. It is really interesting that the same thing is applicable from the other side also. A lead *will* throw some rubbish ideas up. He *will* enforce some random policies. He will have to and some times he will fake. But any down to earth person will always do it in proportion.

I think not faking it is not an answer, not for the lead at least. This is really important if you are in a people game to be ready for randomization and loads of bullshit. If you are too principled for that, do stay out of the role.

 

While doing all this, there is a high probability that a lead will just be running in the same place forever. There are so many urgent and important things coming on his plate, there are so many distractions, so many new technical and non technical areas to keep up with - that you may really lose sight of the original goal, to make progress - individually as well as as the team. So a lead should always ensure that things are moving. A lead should have either documented or mind-mapped milestones. He should have complete idea of the situation, at least view of the situation at his level. He should also play out possible variations in his mind.

 

This is more of a game than a nine to five job. If you are doing it really well, you will enjoy it more than any thing in life. At least in the country I am working on, the lead has a young family or just starting one. This required time and emotional investment. It will not fare well in future if you do not get a good foundation of your family and social life set up. In fact doing this will save a lot of time later. These are the most hectic and productive years in a developers life. So it should not also affect the time, effort and concentration at work. This means that a lead should pack more than any thing in any given twenty four hours. Time management is a very important skill here. A lead also should understand that it is more of an emotional activity than a planned one. any plan on paper is obsolete before the ink on it dries (or the file written on it is written to disk and out of cache :) ). This is some thing you should do by the ear. As you progress further, you get a feel for this.Managing your own time, your non work / work time, time of your team and time of your hierarchy for which you are responsible all falls in time management. It also should be noted that taking well placed breaks where you rejuvenate yourselves and the team is more important than it is credited for. Writing software is kind of a soft science. If you are doing any thing even a little involve that cookie cutting, it is going to be in intensely psychological activity. The state of mind of the reportees is very important.

 

So when we talk about time management, it is more of a productivity management. It is not necessary that you and your team is working more hours or getting more things done in given hours. It is also important that the activities are the most meaningful. It is imperative to say no to a lot of things. To find out ways of doing other things in a better way. A lead should always be skeptical of the incremental demands on time and how he ensures that the team is not dragged in to chasing the expanding requirement without any change in the time limits as well as in the deadlines.

On the other hand, a lead also should know that work expands to fill the time. So a normal team when given choice of what they choose will always end up being less productive then when the deadlines are pushed and enforced. The best way a lead deals with this is that he has two faces. He shows the upper layers one face where he is part of the team. He is talking as a developer and a team member when he is facing the upper layers. But when he is talking to the team, he should act as the management. He is ruthless with the deadlines and work assignments. Handing out them as opportunities and baits. Ensuring what ticks people and manipulating that to get the work done. While doing all this, he should also be tracking the actual time spent. So the time management as the traditional concept also should be implemented. In fact it makes a big difference if the lead individually is not managing his time well enough. He should also ensure that he inspires the team to follow his lead in managing the time better.

No comments: