How software developers work
Our work process is a dream.
We have to build all the structures in our mind, piece by piece, and then translate them into code. Developers don’t just sit down, write out code using standardised formulas, and call it a day. No, we have to build an imaginary house of cards in our minds and then painstakingly transform every angle, force, and material into logic code, all without waking from the dream. It is a creative process, and one not easily replicated.
Now, imagine you were in deep sleep, dreaming away about apples at 3am, and I came bashing into your room and said “Sorry, but we need you to dream about bananas now.” Do you think you could go straight back to sleep in a few seconds, dream about bananas for a bit, and then jump back to your original dream about apples? No, of course not, but this is what managers expect when they throw new tasks at us while we’re busy coding the first one. When this happens we’ve lost the hours we’ve spent on the first dream, we’re completely lost for half an hour, and then we eventually manage to get into the new dream.
So please, if you want your developers to remain sane and productive do not wake them from their dream!
p.s. also make sure they’re not doing the same work year after year, there’s nothing that developers hate more than repeating themselves.
Update: On the internet, nothing is new: http://alexthunder.livejournal.com/309815.html