There are various software development models such as lean software development, agile software development, waterfall model, adaptive and more. In this page we will compare lean software development vs adaptive software development and mentions difference between lean software development and adaptive software development.
The model Lean Software Development has been derived its principles from lean manufacturing. Fig-1 depicts principles of lean software development.
• Eliminate the wastage: The fundamental here is that only deliver that is needed by the customer(or end user).
Anything more than what is needed is considered waste. In otherwords anything which does not add value is a waste.
If it is possible to bypass few tasks already planned and still we can deliver then that is acceptable and
to be carried out.
• Take decision as late as possible:As we know software products are complex and if we are more near to its execution more things will become clear. Hence delay decisions so that they can be based in facts rather than assumptions.
• Deliver the versions as fast as possible: Faster a product is delivered; faster it will reach in users hand. This provides fast user response and hence will help improve the deliverables in the next iteration. The concept here is to deliver as much in small increments as possible. Due to this reason project manager plans more milestones in the project. He will assign few of the features of the total features for each of the milestones. This is very important in lean software development. Hence the name lean here.
• Keep motivating the team:The other important aspect of successful project is team motivation. Keep the team spirit high and keep them feel good in the project. A highly motivated team delivers project on time.
• Keep integrity: The concept here is to develop complete system by breaking into individual components. These components coupled together will make entire software system and function as expected. Hence user can plug and play individual modules as well as entire system . The classic example of benefits of this concept is car manufacturing. In this case car can be assembled with wheels from one company and seats from the other company.
The model Adaptive Software Development accepts that change is a truth and can not be avoided. It also accepts in principles that mistakes can happen and it is important to learn from those mistakes. This helps improve the process and will satisfy the changing need of the customer. Fig-2 depicts the three phases of adaptive software development.
1. Speculate: This is the planning phase of adaptive software development cycle. Let us
see what actually is done in this phase.
• Define project scope is the first phase in main speculate phase. In this phase main goals or scope of the project is defined.
• Next, timelines are added to the project scope defined.
• Depending on the time lines and project scope defined, number of iterations of the project is identified.
• Next scope is broken into smaller tasks. These tasks are nothing but activities which software developers will be working on in order to complete the scope.
• As mentioned assign the tasks to developers for execution.
2. Collaborate: Execute as per the task and than test it. This phase of adaptive software development is referred as coding/execution.
3. Learn: In this phase review is done and feedback is given for planning. In short, at the end of each iteration lessons learnt is done and the same is applied for the next iteration. This helps improve the product. Due to this phase or feature it is known as adaptive software development.
• Difference between Project and Program
• Difference between NPV and IRR
• Difference between Fixed Cost and Variable Cost
• Difference between ES,EF,LS,LF
• Difference between free float and total float
• Difference between PDM and AOA network diagram
• Difference between agile and scrum
• Difference between lean and adaptive software development