What are the Agile Development Fundamentals and how do they assist with early delivery of value and incremental product development?
The Agile Fundamentals
A 59 Seconds Agile Video Animation
The Agile Development Fundamentals for Developers – Part 2
A 59 Seconds Agile Article
Product delivery is the end goal for any software project. The developers need to deliver the software to customers as soon as possible, and as polished as possible, giving the most value to the customer. Any developer knows that delivering the product is the entire purpose of any project they work on.
Development Fundamentals: Differences from Traditional Development
Communication within an Agile project differs from other methods in that it is daily and face to face. This facilitates swift problem-solving. Instead of relying on emails and phone calls, different roles work directly with each other. For developers, this is an adjustment from traditional methods, but it is much more time efficient. It also leaves less room for miscommunications. But speaking directly face to face, and frequently, problems are handled earlier and with less hassle.
Instead of getting customer input at the beginning of the development process alone, Agile keeps stakeholders completely involved in the entire process. Similar to communication with other roles, this means developers must communicate with customers. In many cases, an employee may serve as a liaison for customers, but developers must still deal with them as a representative. Stakeholder involvement, while different from traditional development, produces a better result.
Development Fundamentals: Early Delivery
Agile prioritizes early delivery, giving working features to stakeholders early, and adding additional features as the project progresses. This allows them to create the deliverable more quickly, and ship to the market sooner. Having working software earlier gives stakeholders a competitive advantage, which is a priority for the Scrum team. It is up to developers to create features as quickly as possible. Every role must work together to minimize time to market. Testers must wait for developers to finish their work before the testing and debugging process can begin.
Since Agile produces deliverables early, stakeholders have the opportunity to give swift feedback. Working software is given to stakeholders as quickly as possible. The software may not have all of the features that it will eventually have, but it gives stakeholders a chance to see it in action much earlier than in traditional development environments. With earlier access, stakeholders can give feedback more quickly. Developers can then use this feedback to create a better product that gives more value to stakeholders. Instead of making large changes to the software after the entire product has been created, developers can make smaller changes and shift their methods moving forward.
Development Fundamentals: Incremental Delivery
With regular incremental development, Agile offers the opportunity for continuous enhancement. The cyclical pattern of Agile means the beginning of every sprint contains new features and improvements to the existing product. If stakeholders encounter a need, developers can often work to address this need in the near future. Each new sprint takes the highest priority requests from the backlog, so an urgent and important request can be in developed in as little as a few weeks.
While traditional development needs all software requirements upfront, Agile is adaptive and responsive to change. As developers release deliverables, stakeholders are able to give feedback and suggest new features and propose changes. Stakeholders do not have to know exactly what they want at the beginning of the process, and they are not required to stick to what they originally requested. With this adaptive process, developers know that they are always creating what stakeholders actually want.
Agile Development Focus
Agile development focuses on users, and so a project continues until these users are happy with the product. If the product addresses all stakeholder needs early, the project can be finished quickly. However, stakeholders can keep requesting new features as long as the project is active. New sprints are added to the project on an as-needed basis, so stakeholders need not worry about the project being cut off before all of their needs are met.
Not only is product delivery the main goal in Agile, it is how a team measures their success. Internal metrics mean nothing if software deliverables don’t go to stakeholders regularly. A Scrum team that appears productive based on lines of code may not actually be giving value to stakeholders. By giving working software to stakeholders, and releasing new features and enhancements regularly, the Scrum team maximizes the value to stakeholders. This focus on product delivery is a hallmark of Agile software development.
Clearly, Agile software development is a complex collection of ideas and practices. For someone coming from traditional development, these differences may be overwhelming. However, the changes that Agile makes to waterfall development work toward improving the development process.
User Stories Applied
A 59 Seconds Agile Book Review
User Stories Applied by Mike Cohn is one of our favourite books on Agile User Stories. The book starts with an overview into user stories, and details what a user story is and the different aspects of them. He then discusses how to go about writing a user story, and provides details of the INVEST criteria that can be used to determine if the story is meeting all of its objectives. Next Mike gives an in depth discussion of who user stories are written for and where to begin when gathering the details for them. The book then discusses acceptance testing user stories, including how to go about specifying these criteria and the responsibilities of the development team and customers during this process.
A 59 Seconds Agile Infographic
Our Favourite Agile Books
We found these books great for finding out more information on Agile Scrum: