During the industrial age it was common to hear people romantically refer to their work ethic by the incredible number of hours they worked. The calculation many people had in their minds was that working a ton of hours correlated to long term success. This actually made a fair amount of sense, given that if you put in N hours, you might be able to make N widgets, wheras if you put in N+5 hours, you could make N+5 widgets.
Software development doesn’t work like that. It’s been a long time since there was a strong case made for equating more hours input with more success output. In fact, working with software is much more about working smarter, not harder. You can put in quite a small amount of hours done intelligently and get out a spectacular output of success. In terms of overall success, it’s usually a combination of elegant technical solutions married with great opportunities.
Many software shops that have historically been using a waterfall approach find it challenging to accept that 100% resource utilization isn’t valuable. It’s much more important to prioritize work, limit work in progress, and deliver working software early/often. Just because someone is freed up does not mean that we should stick them on a new project, because what you’ll end up with is just a divergence in the number of things you’re trying to accomplish. Ultimately this leads to a lack of focus, and a dilution of talent across too many objectives.
Related book: The Mythical Man Monthcomments powered by Disqus
(c) 2013 Ben Lakey
The words here do not reflect those of my employer.