The process of lean development encompasses a continuous cycle of experimentation and learning. The basis of the concept is around reducing waste. Anything in the production cycle that is not adding value to the customer is considered waste and should therefore be removed from the process.
It began as a concept with lean manufacturing, which was pioneered by the very successful car manufacturer Toyota in the 1970s. Brilliant Software has been practising lean software development for many years with great success. See Our Experience.
There are seven key principles of what comprises lean software development:
Anything in the devlopment process that doesn’t add value to the customer is considered as waste e.g. long functional specification documents that are difficult to understand. The result of not eliminating waste is software that does not do what the customer wants, nor does it fulfill their needs.
Build In Quality
Software development must start with good foundations and then the end product will work together smoothly and easily adapt to future business needs. The iterative process also means that once part of the development is completed, the work is validated with the customer, any issues are fixed and then the process iterates again. The result of this high customer engagement is that the customer gets a product that they want and need, not a concept that doesn’t add value to their business as was originally hoped for.
As well as planning, learning during the process is essential. Software development needs more than standard processes – it needs appropriate solutions to unique customer problems. Through iterative development developers discover what the customer really needs. It is also important for the team of developers to regularly take stock of where they are at and continually be mindful of improving their approach.
Though planning is essential, the detail of how parts of the software will work can be delayed. Flexible planning and leaving irreversible decisions until the last possible moment means better decisions are made along the way. Also, decisions are often easier when made in the context of what has already been developed.
Deliver as Fast as Possible
A reliable and repeatable workflow can be established within the team allowing for maximum effectiveness. Delivering the software quickly means there will be some mistakes. The advantage of mistakes being made is that they are identified and quickly fixed during the process. When the feedback cycle is short, more is learnt along the way, which means a better end result.
Empower the Team
A team with extensive and recent experience that is empowered by a manager who motivates them and keeps them to a schedule will produce the best work.
Optimise the Whole
In order to develop effective software solutions, the bigger picture must always be kept in mind during the process. A team that understands the high-level business processes that the software must support will always deliver a much better product.
The team at Brilliant Software are the experts at lean development. High engagement with our customers results in Brilliant Software that fulfills business needs every time.
For more on lean development read our blog “Why Lean Development is Vital to your Business” by our CEO, Graeme Frost who has over 25 years experience in lean software devlopment.
We acknowledge the writings of Tom & Mary Poppendieck who produced the first reference book on lean software development and identified these principles in: “Lean Software Devlopment: An Agile Toolkit” (Pearson Education).