Lean Software Development describes some of the ways you can take the lean principles of the manufacturing world and apply them to the field software development. In this book Mary and Tom Poppendieck describe how various manufacturers, like Toyota, used lean processes to eliminate waste from their value stream. Even though the lean practices of manufacturing don't always make sense for software development, the Poppendieck's do a great job describing how those processes can still be used with a little bit of modification.The book focuses on seven core practices including:
Eliminate Waste
Removing anything from your process that does not add direct value to the product or the customer. Writing documentation you know that no one will ever read...waste. Coding extra features in the application that is not immediately needed...waste. Switching tasks, waiting on other teams, constantly creating / working on defects....waste, waste, waste. Get creative...find ways to eliminate the overhead from your processes.
Amplify Learning
Increase feedback by using iterations. Work with the customer often to make sure you're on the right track. Write tests as you development the software (Test Driven Development) to quickly find defects as you create them. Capture useful metrics about the project and make sure the project is headed in the right direction. Shorten the feedback loop.
Decide as Late as Possible
Don't drill down into the detail of the application too quickly. That detail is likely to change as the project progresses, causing rework. Build capacity into your process that allows for change late in the game.
Deliver as Fast as Possible
Again, keep your development and feedback loops short. Design, Implement, Feedback, Improve, Rinse and Repeat. The shorter these cycles are, the less likely it is that the application will get off track.
Empower the Team
Give the team the power to change the process, make it more efficient, to get the job done. Give the team access to the customers. Let the team make their own commitments.
Build Integrity In
The application should have a balance of functionality, usability, reliability, and economy. Think Google...simple, functional, smooth.
See the Whole
Always remember to see the big picture. You should have collective ownership of the code...none of that "well so and so wrote that part of the application so have them fix it". The team is responsible for the code and defects. The application is not a sum of its parts, it's the product of its interactions with the outside world.
Resources:
- Lean Software Development - An Agile Toolkit on Amazon.com
- http://www.poppendieck.com/
- Interview: Mary and Tom Poppendieck on using Lean for Competitive Advantage
share on: facebook



0 comments:
Post a Comment