Application of Agile • Foundational Values • Guiding Principles
Our Application of Agile
There is no prescribed way to employ Agile methodology, as long as you stay true to its foundational values and guiding principles. Red Hawk’s application of Agile typically encompasses the following phases:
Forecasting the Effort
The starting point for most of our projects is forecasting the effort we believe to be involved in producing the software. This is not an exhaustive documentation of software requirements, rather a division of functional increments that will yield a contribution of value to the overall product. Red Hawk will compose “user stories,” which are used to capture a description of a software feature from an end-user perspective. User stories help to create a simplified description of a requirement. The number of user stories will vary, depending on the business needs the software is expected to address. Business needs are defined during discussions with the customer, before user stories are written.
The full set of user stories allows us to develop a cost estimate for our customers, and if the project is approved, becomes what is referred to as the project “backlog.” The backlog is a full accounting at a given point in time of all the features to be included in the software. The backlog is a living list, as it can be modified at any time during the development process if a software feature is completed, removed, added or modified.
In Agile, a “sprint” is a pre-defined period of time with consistent duration throughout the development effort. During each sprint, a usable product increment is created. Red Hawk works in two-week sprints. At the beginning of each sprint, the Red Hawk team determines which user stories from the backlog it will address in its development for that period. This is called “sprint planning,” and the resulting list of work to address is the “sprint backlog.”
At the end of each two-week sprint, Red Hawk meets with the customer to demonstrate the work completed during the sprint. This is a time for both the Red Hawk and customer teams to discuss any known changes in business requirements that will affect the software. The Red Hawk team is thus given the opportunity during planning for the next sprint to adapt the backlog and its development efforts from that point, potentially reducing the risk of wasted time and financial loss.
As one of the hallmarks of Agile is flexibility, there is an additional opportunity during a sprint for the development team to evaluate its progress and to make adjustments to the sprint backlog. Officially called a “backlog refinement” meeting, the development team meets halfway through a sprint to discuss if it is ahead of schedule in completing the work from the sprint backlog, and can pull more from the project backlog; or if the work required more effort than originally thought, and some needs to be moved to a future sprint.
Agile development teams never rest on their laurels. Always looking for ways to work more efficiently for their customers, Red Hawk’s development team meets at the end of every sprint for a “sprint retrospective.” During this meeting, the team discusses what worked well and what needed improvement during the last sprint, generates ideas for how to improve and assigns action items to work on these improvements.