More Resources & Tools



Learn more about Dr. Julian's new book on Improving Project Organization Performance

Get it Now at:
BarnesandNoble.com
Amazon.com

Services

Lean and Agile Software Development

Agile software development is a team-based approach to satisfying the customer through frequent iterations of working software, each of which provides incremental benefit to the business.

Although there is no one agile “methodology,” scrum has become the standard for coordinating the activities of agile project teams. The term was coined by Takeuchi and Nonaka to describe the “hyperproductive” product development practices they observed in Japanese and U.S. companies. Scrum refers to the strategy that rugby teams use to get out-of-play balls back into play by passing the ball within a team, moving as a unit incrementally up the field.

Agile software development with scrum draws on the lean principles developed by Japanese automakers in the 1970s. These include:

  1. Focus on providing the highest value to the customer
  2. Deliver quickly in small batches
  3. Respect the people and teams who do the work
  4. Learn from experience to eliminate waste and reduce cycle time
  5. Inspect and adapt the work as it progresses
  6. Reduce “work in process” (WIP)

Projects using scrum employ multiple iterations to deliver working software that customers can use right away. As shown in the diagram below, a final product is released for implementation after a series of iterations.

Lean and agile development are a break from the traditional “waterfall” approach  of delivering software shown below, in which all requirements are first gathered up-front; the system is then designed, coded, and finally tested, all in a sequential manner. After months or sometimes years, the new software is released for implementation in the customer environment. As a result, traditional software development approaches view changes in requirements unfavorably, as the requirements must be “frozen” for the system to be developed in its entirety.

Waterfall Software Development

With traditional waterfall development, there is no value delivered to the business until the very end, perhaps months later. In the meantime, there is a bottleneck in user demand that creates a buildup of work in process "WIP". This work in process, in the form of requirements, creates large volumes of non value-added work for both developments teams and stakeholders. These items require grooming, sorting, and prioritizing.

Worst of all, the backed up work in process hides bugs, failure points, and surprises that may turn up later and further delay the release. Resources and capital are tied up in the pipeline, and the business is unable to reap any benefits while it waits for the final product to be released. This leads to greater risk, huge opportunity costs and wasted investment.

In contrast, as shown in the diagram below, Lean and Agile software development delivers value and limit work in process as projects progress.

Lean and Agile Software Development

Agile software development practices recognize that read more…