According to Former Blue Angels squadron leader, George Dom, "When it comes to time and managing it, he says we perform best when we sprint at high energy for an hour on a project and then relax so the batteries recharge and then sprint again. That pattern allows for recovery and then peak performance across the day." With Dom's analogy in mind, let us look at the question "what is a sprint in agile development?"
First, agile software development can be described or defined as iterative or incremental. In an agile environment, every aspect of the software under development, such as the design and all requirements, is continually revisited throughout the process. This "adapt and inspect" paradigm greatly reduces time and money as it allows frequent delivery of product to the marketplace. The ability to deliver functional bits of the application as soon as they are ready is achieved through regular progressions of work known as sprints.
A sprint in the software business is a short cycle of development, in which the working group focuses on and completes a defined section of the product. Sprints, sometimes called iterations, typically last between one and four weeks. However, sprints can be shorter, lasting as long as one day, but they should not be longer than four weeks. A series of sprints will run, one after the other, from the beginning of a project to the functional completion and shipping of the product. A central characteristic of the sprint is its cyclical nature. There are four processes within a sprint, 1) the goal or identifying the requirements and features to be developed; 2) completion and acceptance of the features and requirements; 3) review by the stakeholders of the completed requirements; 4) an honest review of the sprint with a discussion on how to adapt if necessary.
Within each sprint, the development group builds and tests a functional part of the software product until the business owner or stakeholder accepts it. At that time the functionality focus of that particular sprint becomes a viable, shippable product. The whole process is repeated throughout the life of the software development process, so when one sprint finishes, the next sprint starts. Product releases occur at the end of a sprint or after several sprints have completed their cycle.
In previous methods of software development, several phenomenons came into play that impeded the development and completion of software projects. "Scope creep" – also known as feature creep, focus creep, creeping functionality and kitchen-sink syndrome – can sneak up, morph and destroy a project. "Analysis Paralysis" impeded progress when teams tried to develop at the same time they were gathering requirement information. As working groups "sprint" through the development process, at each interval they have time to re-evaluate and if necessary, steer the project in another direction.
A sprint approach empowers teams to continuously revisit and change course when needed. The software product is optimized throughout its development, preserving its critical elements and market relevance. Once the development team concludes the sprint, the product that was the focus of that particular sprint has been developed, tested, integrated, and documented.
The web is a fast-moving environment. New products and applications are constantly showing up in the marketplace. The sprint aspect of agile development gives you the luxury of taking delivery of your product incrementally on a regularly defined timeline, feature by feature and function by function. It is to your advantage to hear real customer and user feedback prior to building the entire software application. The sprint aspect of agile development works on the principle that requirements evolve and emerge. No matter how much analysis and design you do, requirements have a habit of changing, therefore small usable increments of a product will give you vital information regarding what works or doesn't. For more information on agile development and what a sprint will mean to your project,contact us.