New kid in the block - "Lean software development"
I wanted to open a discussion on the new buzzword starting to be heard around - Lean software development. It's based on Agile methodology while focusing on not wasting time and resources on unnecessary activities. This book is a bible of the new trend: http://www.amazon.com/Leading-Lean-Software-Development-Results/dp/0321620704/ref=sr_1_1?ie=UTF8&s=books&qid=1270544304&sr=8-1
So these are the base principles they declare:
- Eliminate waste
What is not adding value to the customer is a waste. This includes unnecessary code, bureaucracy, delays, etc.
- Amplify learning
Learn the problem domain by trying features in short development cycles.
- Decide as late as possible
Try to not bind yourself to a specific technology early, have as many as possible options throughout the project.
- Deliver as fast as possible
The sooner product is available without major defects, the sooner the feedback for the next iteration can be received.
- Empower the team
Managers should not dictate developers how to do their job. Managers should find right developers to do the job and then let them interact directly with the customer.
- Build integrity in
The system should feel consistent. One of the way to achieve this is to refactor aggressively, trying to identify duplicated functionality and implementing it in one place.
- See the whole
In big systems the defects of individual components are multiplied when they interact. So there must be well-defined relationships between different vendors taking the part in development, in order to produce a system with smoothly interacting components.When talking about lean software development people usually mean also specific practices or "tools" as they are called in Poppendiecks book, such as seeing waste, value stream mapping, measurements, etc.
So what do you think about all this? Does it make sense? Will we hear about it more in the future, or this trend will disappear?