“Requires a change in culture that some companies can’t achieve, those that have achieved massive performance improvements”
A summary of the principles from the Poppendieck’s momentus book Lean Software Development: An Agile Toolkit
The 7 Principles
Eliminate Waste – coding more features than required, handoffs, low or no value documents (shelfware), defering of decisions
Build Quality In – this also encompasses integrity which is wise leadership, communication, healthy discipline, relevant expertise. This can’t be replaced by processes, procedures and measurements. Technical practices like Test Driven Development (TDD), Continuous Integration, Definition of Done assist. UX design helps the customer attain a feeling of perceived integrity. Supple architecture allows the system to gracefully grow.
Create Knowledge – also known as Amplify Learning. This is where Lean for Software differs from Lean Manufacturing. Development is a constant learning exercise in discovery. There is an expectation that mistakes will be made but we learn from them and make the adjustments. Learnings should be shared e.g. in a showcase, in a retrospective. Feedback loops are present throughout.
Defer Commitment – also known as Last Responsible Moment in Lean Manufacturing. Delaying decisions can be valuable because more information is available. In Agile this means detailed story development is deferred, design and implementation should occur when it’s needed at not before hand.
Deliver Fast – To enable feedback to occur. Also smaller batches reduces errors inherent in large batch work because of the missing feedback loop. Compression the value stream helps here – i.e. eliminate or reduce wait time.
Respect People – people on the coalface backed with good leadership are best placed to combine knowledge of the technical with the requirements of the customers. It will lead to excellence and morale will go up markedly. There is a wisdom in Crowds/Group Expertise
Optimize the Whole – the common good can suffer when people attend only to their specialization. Therefore this should not be measured at this level as it promotes sub optimization. It will hurt the system overall.