October 12, 2016
How to Use Agile Correctly (Part 1)
This blog series will uncover the various aspects of Agile software development technique and Scrum framework to enable an Agile team/ team member to understand various issues any software development team sails through and how to come over those challenges.
Where Did Agile Come from?
In 1970, Dr. Winston Royce presented a paper entitled “Managing the Development of Large Software Systems” which criticized sequential development.
He asserted that software should not be developed like an automobile on an assembly line, in which each piece is added in sequential phases. In such sequential phases, every phase of the project must be completed before the next phase can begin. Dr. Royce recommended against the phase based approach in which developers first gather all of a project’s requirements, then complete all of its architecture and design, then write all of the code, and so on. Royce specifically objected to this approach due to the lack of communication between the specialized groups that complete each phase of work.
Developing a Solution for Customer
Any software project starts from Gathering Requirements phase and many times what is developed is not exactly what end user wanted, and many software projects fail during implementation.
Value Delivery Impediments
In today’s world teams have huge dependencies on various stakeholders of the project including Users <-> Developers <-> QA <->Operations etc. and it’s proven that we need regular communication and collaboration to deliver the value.
Any communication gap or lack of collaboration between these team(s) or individuals will have impact in following areas
Plan Driven Vs Value Driven Approach
Old school of software development has taught “waterfall” approach of software development. In waterfall approach, one phase’s output becomes input to next phase and those phases are distributed across the project timeline as shown in the image below.
Today’s software development technique is “Iterative“ and “Incremental” I.e. Agile. In Agile, team run through all the phases within a Sprint as briefly shown in the image below.
In waterfall, development teams only have one chance to get each aspect of a project right. Whereas in Agile team has better understanding and learning from previous Sprint on what to emphasize upon and what to avoid to reap better results.
- Agile development methodology provides opportunities to assess the direction of a project throughout the development lifecycle.
- This is achieved through regular cadences of work, known as sprints or iterations.
- At the end of which teams must present a potentially shippable product increment. The results of this “inspect-and-adapt” approach to development greatly reduce both development costs and time to market.
For a sneak peek at the full series, see Vidya’s blog. Or, Follow Us on LinkedIn to follow along.