In his post Doing fast things or doing things fast , Jeffrey Phillips says "there’s a difference between efficiency and effectiveness, mostly in terms of intent". The difference between efficiency and effectiveness is one of the topics discussed in Tom DeMarco’ s book, Slack . In the book, Tom DeMarco quotes Tim Lister as saying " People under time pressure don’t think faster ".
Basically, when working with software, thinking takes as long as it takes and there’s nothing you can do to think more quickly. So if you want things to go faster you have to find other areas in which to accelerate. Tom DeMarco identifies the only options for making things go faster as eliminating wasted time, deferring non-critical work, and working late. If you’re using agile techniques you’ll be addressing some or all of these options already.
- Eliminating wasted time : Tom DeMarco says that healthy ‘knowledge-workers’ don’t waste a lot of time anyway because they’re more likely to be frustrated by it. One of the rules of lean development is to eliminate all waste, including wasted time in the form of extra processes, unwanted features, task switching, waiting around, and motion or chasing around, perhaps seeking answers to questions.
- Deferring non-critical work : Tom DeMarco says that healthy ‘knowledge-workers’ derive satisfaction from accomplishment and are therefore likely to work on tasks on the critical path. Extreme Programming uses an onsite customer and Scrum uses a product owner to prioritise the work by business value, and the development team selects an amount of work equivalent to their velocity from the highest business-value items.
- Working late : Tom DeMarco says that, in the short-term, working late can boost productivity but in the longer term excessive hours cannot be sustained. When you work late for extended periods your personal life and your health are not the only things to suffer. More directly, your concentration levels, your ability to focus and think clearly, and your attention to detail deteriorate and ultimately degrade the quality of your work. This style of working rapidly becomes a negative spiral. Extreme Programming employs the primary practice of energized work , which states that you should work only as many hours as you can be productive and only as many hours as you can sustain.
