People ask me where does the 5x uplift in productivity come from when software development is done right. It’s not one factor, but a combination of a bunch of factors that together cause the uplift.
These factors include:
- Motivated people. As we now know, forget extrinsic motivators – these only serve to reduce productivity in collaborative knowledge work. Intrinsic motivation’s the thing.
- The social dynamic. This delivers the environment for employee wellbeing and organisational health – the environment in which joy emerges and intrinsic motivation can let rip.
- Defect prevention. It’s more productive to prevent defects before they happen, than to find them after they have.
- Change. Making experiments and finding new, better ways of doing things, on a regular basis.
- Skilled dialogue. Understanding emergent problems and collaborating on quickly finding neat solutions requires people to talk with each other. Skilled dialogue has a part to play here.
- Courage. Courage to attempt novel approaches. Courage to buck trends. Courage to speak up and tackle thorny issues.
- Attending to folks’ needs. (Key impact: improved social dynamic).
- Identifying all key Folks That Matter, and their critical needs. And then attending to those needs (and no others). “Maximising the amount of work NOT done.”
- #NoSoftware. Writing as little software as possible. And minimising the cost of each component of a solution by intelligently selecting the appropriate solution tech (often, not software).
- Quantification. Bringing clarity to all aspects of work by elimination confusion of qualitative terms by using quantification.
- Structure. Uplift morale, engagement and discretionary effort with organisational structures – such as self-organising, self-managing teams and flat organisations – suited to collaborative knowledge work.
- Physical environment. Having available a range of workspaces suited to the modalities of collaborative knowledge work.
- Tooling. Provide tooling best suited to the work style and preferences of each individual.
- Hiring for what matters. You know what matters, don’t you?
- Relationships. See: Social dynamic.
- Remuneration. Pay people enough that their living expenses are no issue for them. Don’t pay so much that you attract mercenaries. Ideally, give people agency to each decide their own personal wages, hours, places of work, terms and conditions, etc.
- Treating people like trusted adults. See also: Social dynamic.
- Flow. Focus on economies of flow, rather than e.g. economies of scale.
- Failure demand. Reduce and then eliminate failure demand.
- Shared purpose. Allow folks a real say in the purpose of the organisation. To invite buy-in and a sense of personal ownership.
- Whole-systems thinking. Steer the organisation as a whole, not as compartmentalised subunits.
- Monitor variation, uncover the causes and reduce or eliminate.
- Learning. Invite people to develop themselves (and others). Provide support of all kinds for this.
- Replacing “work” with “play” (Cf Schrage ~ Serious Play).
- Building eustress, reducing or eliminating distress.
- Identifying and managing risks, actively and continuously .
- Reducing and eliminating conflicts – and the inevitable waste – caused by differing assumptions and beliefs about how work should work.
- Technical skills and competencies. Yes, there is a place for having folks that know what they’re doing.
- Working fewer hours. The Rule of Four: Four day weeks or 4 hour days.
- Obliquity: Don’t chase productivity. 5x productivity comes from chasing the things that result in productivity. In fact, better to forget the notion of productivity entirely.
- Measuring. By all means measure. But never measure individuals nor teams. Invite folks to identify what matters to the Folks That Matter, and invite them to come up with measures for those things.
What did I miss?
A long list, to be sure. But then, software development always has been a complex adaptive system. If you want simpler: just attend to folks’ needs.