This blog post starts my blog post series about project management (PM). It will describe the advantages of Lean Software Development (Lean SD) and Continuous Integration (CI). Every good project manager wants to reduce the risks of his project and I think the best way to do this is use Lean Management. Because recently I was on lean meetup, where I had possibility to talk about Lean Software Development directly with Mary Poppendieck, I will try to show you how in my opinion CI fits the Lean practices.
Lean Software Development is a translation of Lean Manufacturing and Practices to the software development domain. First try to adopt this way of managing to the IT market was taken by Mary Poppendieck and Tom Poppendieck, who are considered the authors of Lean Software Development.
There are 7 basic principles of Lean Software Development:
- Eliminate Waste
- Build Quality In
- Create Knowledge
- Defer Commitment
- Deliver Fast
- Respect People
- See and Optimize the Whole
I will focus on the points most interesting and important to the success of the project.
Everything that does not add value to the product is regarded as a waste. The first premise of this rule is to reduce the requirements for the product to a minimum, since each feature is an additional workload, and most of them are not applicable in practice (see chart: Using the functionality of a typical software system).
To Eliminate Waste we should recognize and see it. The biggest waste are defect and lower quality. If some extra process or features are not used by customer or system this mean that results can be achieved without it, they are waste. Every code duplication or dead code is a waste. Waiting for other activities, processes or teams is waste. To reduce this problem we should use Continuous Integration, because with CI everyone who works on the software gives his current work every day (CI: Everyone commits every day) and the latest deliverables can be seen by everyone (CI: Everyone can see the results of the latest build) and are tested (CI: Make the build self-testing). Project manager can See and Optimize the Whole process and current work.
Using our Shaker offering you can check your code quality by code analysis and find dead and duplicate code. Bitbar tries to help you to reduce the number of defect and ensure higher quality by fast optimized testing and creating a copy of your production environment in our build system. Bitbar works on optimization your build process, so you can build faster which reduces waiting time for build.
Good and effective method is to catch bugs and keep Quality In is running automated tests for every builds and test the smallest parts of new functionality in this iterative process. Testing can catch a lot of bugs as soon (in development process) as possible. Using the our CI process, you can always control the quality and reliability of software, because Shaker builds and tests every code submission.
In Lean SD like in general, integrity means that the system’s separate components work well together as a whole with balance between flexibility, maintainability, efficiency, and responsiveness. Created system should work fast and have good quality and reliability. To control this parameters we should integrate our product as often as it is possible. Using CI we can create a clone of the production environment and run integration tests for smallest parts of the product. In this way you will Deliver Fast and your software will be of the highest quality.