logo1 Lean Principles of Software Development

Home bullet
Implementing bullet
Services bullet
Weblog bullet
FAQ bullet
Training bullet
Contact Us bullet
About Us bullet
Careers bullet
Influences bullet

 
filler
iconEliminate Waste

iconBuild Quality In

iconCreate Knowledge

iconDefer Commitment

iconDeliver Fast

iconRespect People

iconOptimise the Whole

icon Eliminate Waste
In software development our purpose is to turn a concept conceived by a business manager into a working implementation as rapidly as possible. Waste is anything we do that does not add customer value or that delays the delivery of customer value.

Refer to Wastes associated with Software Development
icon Build Quality In
Develop software in a way that means it is tested as soon as possible. Test-Driven Development (TDD) is just one of tools that can be used to improve built-in quality. Do not allow backlogs of defects to build up. Examine the reason for defects and fix the underlying problem.
icon Create Knowledge
As software developers, we must appreciate that business experts must grow into the project. As their knowledge grows, so will their understanding of the problems. Similarly, as we implement a technical design, our understanding of the strengths and weaknesses of the design will grow. Software must be developed in a way that creates knowledge and allows this knowledge to be applied and used rather than locking in decisions based on incomplete information.
icon Defer Commitment
A software project can be seen as a decision making process that takes a business need and embeds decisions in code. At each stage in the project decisions are made. Even coding can be considered a decision making process. Traditional software development attempts to make as many decisions up front as possible i.e. Big Design Up Front (BDUF). This has many disadvantages including
  • Making decisions before we have the best possible information available
  • Building up an "inventory" of decisions that can go out of date
  • Requiring the user to envisage the developing application rather than experiencing it.
Lean and Agile have developed a number of phrases to encapsulate the best decision making practices such as "Last Responsible Moment" and "Enough Design up Front". For more critical decisions, Lean also focuses on experimentation, decision sets and leaving irreversible decisions open as long as possible.
icon Deliver Fast
As other industries have discovered, there is no conflict between delivering fast and delivering a quality solution. Only by streamlining our business and attempting to run it at a consistent, maintainable rate can we identify the bottlenecks.
icon Respect People
  • Develop Leaders rather than Managers
  • Use self-organising teams
  • Encourage learning - Technical and Business
  • Encourage feedback and use it
  • Appreciate the expertise of your customers and suppliers and learn from it
icon Optimise the Whole
Many software development organisations are organised into separate units, each of which optimises its own processes but often at the expense of overall efficiency e.g. optimising utilisation. It is the entire value stream from the initial concept by the business to realisation of value that should be measured and streamlined.

icon From the books by Mary and Tom Poppendieck (see influences)
Legal | Feedback © Copyright 2007 Systima Limited, all rights reserved.