I’ve come to the conclusion that software developers fall into one of two categories: those who can manage their time and those who can’t.
(Actually, let’s be realistic… there are a million ways of categorising software developers; time management is just one of them. But for now let’s just pretend this is the only distinction we can make. I guess the real question here is why I feel the need to categorise developers; and that’s something for my psychologist to work out I guess…)
There are a set of software developers who can’t or don’t want to manage their own time. They expect to be told on a daily basis what they’re going to be working on - whether that comes from something like a long-term project plan, or from a daily standup. There’s absolutely nothing wrong with this - let’s allow the developers that want to palm off the time management side of their role to focus on their software writing skills.
Then there are a set of developers who can and want to manage their time. These are the type of people who want to be given a deadline to run at, not “Monday, do this; Tuesday morning, do this; etc”. Give them a deadline and they’ll run at it. If it’s unrealistic, they will (should!) tell you. There’s nothing wrong with this either; it allows the team leaders to focus on the developers that do need some assistance, or on other problems beyond what everyone is working on.
There’s just one, simple rule. Don’t try to treat them the same. A developer that can and wants to manage their time won’t react well to being told what to do on an hourly basis. There will be a reaction and something has to give. Developers are individuals… to be treated individually. I shudder when I hear a developer treated as a “resource”. The computer is the resource… the developer puts the magic in.