The world of scrums, scrummasters, planning poker, backlogs, and sprints. No, it’s not dungeons and dragons, gambling, or a race. Well, it’s kind of a race. It’s the agile development life cycle. Instead of following the software development life cycle that calls for a project to be completed linearly from requirements to design to development to testing, agile calls for incremental improvements and additions to a system.
An iteration length is chosen. It may be 3 months, 2 months, 1 month, or even 2 weeks. The iteration is called a sprint. Each sprint is made up of a mini software development lifecycle where the top priorities from a master list of features are built and tested.
The main benefit of the agile development life cycle is, well, it enables you to be agile. If you create a piece of functionality that doesn’t work as expected or doesn’t improve metrics as expected, it can be removed or improved during the next sprint. If your customer has an emergency item that absolutely needs to be completed right away (that never happens, right?), that new item can be prioritized into the next sprint while a planned piece of functionality gets pushed out to the next sprint.
Agile requires excellent organization, planning, and customer communication. That’s where scrums come in. Scrums are daily check-in calls. They should last no longer than 15 minutes. The appointed scrummaster should ask each member of the team where they are with their work, if they’re blocked by anything, and if they feel on track to complete their assigned tasks. The scrummaster’s main task is then to remove any blocks that are brought up on the scrum (e.g. a backend system is down and important data can’t be accessed) so that no time is wasted.
On the first day of a new sprint, the assigned product owner needs to make sure the master task list is prioritized correctly. He should do this by meeting with the project manager of your customer’s team and agreeing on the prioritization. Directly after that meeting, the product owner should have a planning poker meeting with your team. During this meeting, work effort estimates are assigned to each task on the master list. Then, the top tasks on the list are moved into the sprint. This serves as the requirements for the sprint and is agreed on by the customer. Once the customer agrees, the sprint begins. Design, development, and testing are completed within the sprint iteration length decided on. Once the sprint is over, it all happens again.
If used correctly and efficiently, the agile development life cycle prevents scope creep and overwork. It allows for you to be responsive to your customer’s needs and to improve the system in real time. Just make sure to keep lines of communication with your team and customer very open. Because things change quickly when you’re being agile and everyone needs to be on the same page.