Agile is not a new term in software development, it's been around roughly 10+ years and continues to be adopted the world over. One of the many flavours of agile is the scrum methodology. The scrum methodology introduced the idea of frequent inspection and adaptation to plan and schedule release with a high degree of accuracy. The intent of this article is to give a Coles notes version to our readers about the major components to the scrum methodology. As the name suggests this provides the framework for a highly collaborative, customer and deliverables based focus for project delivery.
Who are the players?
Before getting into the mechanics of the overall process, it is important to really understand all the players that make up the project Scrum Master - traditionally this is what we would refer to as the project manager. In scrum, the role of the project manager isn't the traditional decision maker but rather a facilitator of discussions and cheerleader of sorts for the team. Product Owner - this typically is the customer or a single person who is responsible for the ROI on the project. As ultimately they will receive the finished product it's important for them to have ownership of the product; they are responsible for continually re-prioritizing the backlog, and have the final say on requirements. Scrum Development Team - this is a cross functional, self-organizing / self-managing group of individuals (usually between 5 and 9 people) who are responsible for delivering a product. Usually within this unit there is a leadership role.
How does it all fit?
In the traditional world of waterfall we deal with releases. In agile scrum we work with sprints. Sprints are finite periods of time where by at the end of that sprint there is a functioning product that is delivered to the customer. Each sprint starts off with a sprint planning meeting where the product owner and team have a meeting to determine what product backlog items (PBI) will be candidates for the upcoming sprint. It's important during this meeting that the scrum master be a facilitator, not a decision maker as it is up to the product owner to make the final decisions on the PBI's that make it into the sprint. Work can then begin for that sprint. Daily Scrum meetings are the most familiar part of the execution component of Agile scrum as this happens every day at the same time and place to determine work completed, work continuing and roadblocks to completing that work. Once the sprint comes to a close a sprint review meeting is held to present and review the completed work. This meeting should be treated as a live demonstration of the completed work. It is very common for the product owner to review the work done. Feedback from this meeting is converted to more backlog items. The final element of the agile scrum process is the sprint retrospective meeting. This essentially is a lessons learned meeting where the team, as a whole, comes together to review what worked, what didn't and what the team can improve on for the next sprint. There is one element that is important as well, it is a backlog refinement meeting. This meeting is used when there are large and complex PBI's that need to be broken down. Estimates are made during this meeting to determine what items to complete in the product backlog. In principle, when all these elements work in concert together, the ability to be flexible makes the scrum methodology very attractive. The stability of its structured practices give teams a sense of stability when development gets tumultuous. Here are some excellent resources that help to further explain the scrum methodology. The definition of done in scrum Collabnet video tutorials Scrum Reference Card