In the modern, fast-paced development environment, a lightweight, adaptable development framework is necessary to keep on pace and maintain client satisfaction. In these situations, one of the best modern solutions is known as scrum.
- Knowledge of the Agile Methodology
- Understanding of SDLC phases
What is Scrum?
Scrum is a team-based, agile approach to software development that focuses on dividing tasks into sprints, and conducting daily, standing, face-to-face meetings called daily scrums.
> While scrum is categorized as an agile framework, it was actually created before agile was defined, but has been grouped into agile as it follows many of the practices that agile calls for.
<div style="width:100%; margin:auto;text-align:center;"> <img src="https://www.devmaking.com/img/topics/sdlc/SDLC_scrum_01.png" alt="scrum SLC process" style="max-width:95%;">
A sprint is a timed iteration that usually ranges from a week to a month, where teams take features from the product backlog and place them into a sprint backlog, or a list of items to implement in a single time frame.
> Most sprints are set to be two weeks on average.
The product backlog is a list of tasks and features that have yet to be allocated into a sprint backlog. Items in the product backlog can be seen as an analogue to a requirements specification.
The daily scrum is a meeting that lasts usually no more than 15 minutes where team members each attempt to answer three questions:
- Did I accomplish the goals from yesterday?
- What will I accomplish today?
- Are there barriers that might affect my ability or my teams ability to accomplish the goal?
Additionally, this meeting should include all members of the development team, and usually will happen at the same time each day to build a habit out of the practice.
Any barriers or issues foreseen with accomplishing goals should be noted by the scrum master to be delegated by the team to be resolved.
The Scrum Master is a facilitator, different than a team leader or manager, that oversees the handling of production barriers to keep the development process on track.
Additional responsibilities include maintaining the product backlog, acting as a guide for teaching scrum principles, and promoting self-sufficient organization within the team members.
As the project develops, it's advantageous to be able to anticipate how much work remains to be done before the product, or sprint, is complete. These charts are displayed in easily viewable locations for the team, and can act as a good indicator of the remaining time of a project or sprint.
<div style="width:100%; margin:auto;text-align:center;"> <img src="https://www.devmaking.com/img/topics/sdlc/SDLC_scrum_02.png" alt="burndown chart" style="width:500px;max-width:95%;">
Burn-down charts come in two varieties: sprint burn-down charts, and product burn-down charts. These charts track the number of items left to complete in their respective backlogs.
> Those familiar with the four disciplines of execution may notice a similarity between the burndown chart and daily scrum and the last two disciplines.
Advantages of Scrum
- Quick deployment of projects; a working product is developed soon in the cycle.
- Adapts to changing requirements which is a reality of client-facing development.
- Issues with development are caught quickly in daily scrum meetings.
- Can be scaled for large, long-term projects.
Disadvantages of Scrum
- Daily scrum meetings can be a challenge in remote settings where members of the development team are not able to convene in person.
- The fast-paced, high energy environment that scrum requires can lead to developer burnout if there are no periods for rejuvenation.
- Can be expensive and complex to manage consistently, requiring a highly skilled development team to properly implement.