Friday, December 17, 2010

So you have developers working for you

They aren't like other people. Their best work may occur at midnight. They, usually, don't need to front up to a customer.

Don't put them on a clock. Don't have a go at them for being 10 minutes late. They may have just done their most constructive piece of work lying in bed between pushes of the snooze button. Developers (and other technical workers) are problem/task focussed so if they are late does it matter if they are completing their work?

Also, because they are problem and task focussed they don't switch off when they leave the office. They just don't think that way. The problem will be ticking away in the back of their mind even if they are doing something completely unrelated. It is not like doing manual labour or customer service, the work continues in the background. They can't 'turn it off'. Watching the clock is important for customer service, or a factory worker if the worker isn't there then the customer can't buy stuff and the widget can't get widgetted. But it's not so important for a developer.

I'm not saying don't make sure they are doing their work, just track it in a different way, use the problems solved, not the hours in front of a screen. Trust is important to developers even if they don't realise it. The subconscious can damage the productivity of someone like a developer a lot more than realised. They may take twice as long to do something and then do it in a less efficient and effective way, they'll get distracted from the task at hand more easily, they'll be thinking How about a cuppa? instead of how do I make this function more efficient/maintainable/reusable. They probably won't even realise this is what's happening but it'll happen none the less.

Also, if you make them think about time they'll also leave on time. I know what you're thinking. What's wrong with that? Well, because they are task and problem focussed when they are happy at work they'll often stay until the problem is solved. They won't be looking at the clock. They'll happily start a new problem with half an hour left in the day and spend an hour on it. On the other hand, one that is annoyed about being clock watched will procrastinate for half an hour, check their email or whatever.

Alright, so if you can't watch the clock on developers what should you be doing? How can you track their progress? How can you know if they are working hard enough?

Well this is where you might have to do a little bit more work as a manager or boss of a software company. It requires that you monitor their work, not just their hours. It also requires you to trust the team and the manager of the team. It's the managers job to track the tasks and make sure they get completed. It also requires constant frank feedback. It takes more than a semi-annual performance appraisal to get the most of a developer. Their minds need to be nurtured with feedback and training, they thirst for knowledge. If they think that you have their best interests at heart I guarantee that you'll get back more than you put in. I suggest you check out Atlassian's efforts in trying to get the most of of their employees which I talked about in an earlier post.

5 comments:

  1. This is my SINGLE BIGGEST PET PEEVE.
    Unfortunately, we have a tendency to put professionalism ahead of productivity at my firm as we're client facing. It gives us a little more of a right to do so, but not always.

    ReplyDelete
  2. The problem is professionalism and productivity go hand in hand.

    It's also true that the most productive developers are often the most experienced and/or best placed to answer questions: it's all well and good for a star programmer to turn up at 2pm and work through to midnight, but if the less star programmers can't do their work because they've got no-one to ask; that's a net *loss* of productivity.

    ReplyDelete
  3. @jaffa Sure, if people are working in teams, it's important that everyone's contactable during the day or crucial core hours. I don't think it's necessary to define *actual* hours though (eg. 9 to 5). In my experience, making core office hours something like 10 to 4 is enough to satisfy most project managers and developers' wants and needs.

    ReplyDelete
  4. @jaffa I think @SerengetiSunset has summed it up pretty well. I was talking about sweating the clock, which seems to happen in a lot of development houses. You need people in the office, but do they all need to be there at 9:01 AM? and 5:59 PM?

    ReplyDelete
  5. I like what Andrew said: "How do you measure a manager's productivity? Just do that for developers!"

    ReplyDelete