The software development process requires flexibility and a collaborative spirit. The Agile school of thought particularly values flexibility. In fact, according to the Agile mindset, adaptability is the key ingredient for success. One of the core values of Agile is: "Responding to change over following a plan." Agile also values early delivery and focusing on people over tools. So what does this mean for every stage of the development process? When it comes to sprints, Agile translates to reasonable deadlines that respond to changing needs.
What Is a Sprint?
A sprint is the single iteration of your development project. It may encompass an entirely new version of the product, but more often a sprint is a set of goals for one part of the software that changes the overall capabilities. At the beginning of a sprint, the team lead sets out goals and deadlines. While there is ongoing brainstorming and feedback during a sprint, many teams draw boundaries that restrict the ability of project owners to stop and pivot while the sprint is underway.
The sprint process is cyclical, especially during an Agile project that values adjustment and flexibility. For instance, before the sprint begins, there is a planning session. Afterwards, there is a review to show stakeholders the outcome, then another review that focuses on how to adapt the product further.
How Long Should Your Sprints Be?
The length of the sprint depends largely on what needs to be accomplished, but most Agile pros will tell you not to make a sprint more than four weeks. After that, the concept of a sprint is lost. Shorter sprints mean faster access to feedback and less chance that you'll make a serious time and resource commitment to work that ends up needing immediate revision. Some teams work better under pressure, too, and it can be beneficial to adapt the sprint schedule accordingly.
Overcoming Obstacles in an Agile Sprint
Another one of the tenets of the Agile process is: "Working software over comprehensive documentation." This can help guide a resolution process to obstacles that may arise during a sprint. In short: making a thing work is more important than documenting every detail of a change. With this in mind, developers are granted a fair amount of leeway in terms how they work, and commenting inline may be an acceptable form of documentation.
Sprints are a necessary measuring tool in the development process. Whether you're developing a new app or a software tool, sprints are a concrete way to help keep a project on track and ensure a feedback loop. Yet, it's vital to remember the Agile value of "individuals and interactions over processes and tools." Combining the Agile mindset with the sprint framework, development teams can sustain a release schedule that makes their customers happy and allows for flexibility and continuous feedback.
Sources:
http://searchsoftwarequality.techtarget.com/definition/Scrum-sprint
http://www.dummies.com/careers/project-management/the-function-of-the-scrum-and-sprint-within-an-agile-project/
http://www.agileadvice.com/2014/06/12/howtoapplyagile/21-tips-on-choosing-a-sprint-length/
https://en.wikipedia.org/wiki/Agile_software_development