Thuật ngữ Sprint (Scrum Cycle) trong Agile hay Scrum là gì? Luyện thi PMI-ACP
Before Project Start – Product Backlog
The prerequisite without which you cannot start any scrum project is the Product Backlog. The Product Backlog contains a prioritized list of Project/Product Business Requirements written in the form of user stories.
The Start – Sprint Planning Meeting
Each Sprint begins with a “Sprint Planning Meeting” where high priority requirements are considered for inclusion in the Sprint. At the end of the Planning meeting, the final list of prioritized business requirements that will be a part of the current Sprint will be ready.
A sprint usually lasts between 1 – 4 weeks during which the team will work together to create the Deliverables. During the Sprint, short, highly focused Daily Stand-up Meetings are conducted where the team discusses their progress. Each work activity is tracked to closure to ensure that all the deliverables are ready by the end of the cycle.
Before Sprint Ends
Toward the end of the Sprint, a “Sprint Review Meeting” is held where the Product Owner and all the relevant stakeholders are given a “Demo” of the deliverables. At the end of this meeting, the Product Owner accepts the Deliverables. A point to note here is that the Product Owner will accept the deliverables only if they meet the “Predefined Acceptance Criteria” which gets set when the sprint starts.
The End of the Sprint
At the end of the Sprint Cycle, a “Retrospect Sprint Meeting” is conducted where the team get together and discuss ways to improve processes and performance in the upcoming sprints. The picture below summarizes the Scrum Cycle.
Next, you can clarify the difference between Iteration, Sprint and Scrum.
- Iteration is the generic agile term for a single development cycle. It is a common term used in the Iterative and Incremental Development (IID) processes.
- Scrum which is a specialized agile method, or we can say specialized Incremental Development process uses the term Sprint for its iterations, that is one development cycle in Scrum is called a Sprint.
- Sprint is Scrum specific, hence Sprint is an iteration but not all forms of Iterations are Sprints.
- Other agile methods may not use the same term (Sprint) to define Iteration work, but Sprint and Iteration are the two most commonly used terms.
In the Scrum Framework all activities needed for the implementation of entries from the Scrum Product Backlog are performed within Sprints (also called ‘Iterations’). Sprints are always short: normally about 2-4 weeks.
Each Sprint follows a defined process as shown below:
Each Sprint start with two planning sessions to define the content of the Sprint: the WHAT-Meeting and the HOW-Meeting. The combination of these two meeting are also defined as Sprint Planning Meeting. In the WHAT-Meeting the Scrum Team commits to the User Stories from the Scrum Product Backlog and it uses a HOW-Meeting to break the committed User Stories into smaller and concrete tasks. Then implementation begins.
At the end of the Sprint a Sprint Review Meeting is conducted to allow the Scrum Product Owner to check if all of the committed items are complete and implemented correctly. Additionally a Sprint Retrospective Meeting is conducted to check and improve the project execution processes: What was good during the Sprint, what should continue as it is and what should be improved.
During the Sprint a short daily Standup-Meeting (Daily Scrum Meeting) is held to update the status of the items and to help self-organization of the team.
DO WE NEED SPRINT-0?
One of the most debatable topics in Agile especially Scrum is whether a team can actually deliver something potentially shippable in the first Iteration or Sprint. Some folks suggest a Sprint 0 while some oppose it as they feel it is against scrum principles.
The purpose of this article is to help you understand whether a Sprint 0 really makes sense or not…
What is Sprint 0?
Sprint 0 or Iteration 0 is technically the first iteration of an agile project but it is more used for getting the preparatory work done rather than actual development. It is like a feeder sprint for the scrum team and product owner to work together to understand the backlog, discuss the relative priorities, estimate the top priority items and get ready to work on the most important stories in the first official development sprint of the project.
Do we really need a Sprint 0?
Lets assume you are the scrum master and are starting a new scrum product development project. You are meeting the product owner and the scrum team on a Monday morning which happens to be Day 1 of your Sprint 1.
You and the team are probably new and have little to no idea about the product you are going to building. The product owner is probably still refining his priorities and the first few days of the sprint will go in the team getting to know each other. Unless you do a 4 week sprint, by the team they identify the top priority stories, estimate and break it down into tasks we are probably 50% or more into the sprint and will not have enough time to do any worthwhile development that can be shipped by the end of the sprint. Even in a 4 week sprint, it is highly debatable as to how much actual development the team would be able to do after they get the basics sorted out.
According to Scrum, a Sprint is time boxed and you have to mark the sprint as completed by the end of the sprint. So, chances are high that you will have many incomplete stories by the end of your first sprint.
By adding a Sprint 0, I took the delivery pressure off the team and spent the first few days building the team and working collaboratively on the backlog to understand what the team is going to build. At the end of sprint 0, we have a decent shape backlog and the team has a few user stories that they can start work when Sprint 1 starts.
How long would a Sprint 0 be?
Ideally a team would need anywhere between 1-2 weeks to get familiar with each other and get the preliminary backlog of work ready. So, I would suggest you plan for a 1 week sprint 0 if your usual sprints are 1 or 2 weeks in length and a 2 week sprint 0 if your usual sprints are 3 or 4 weeks in length.
Is adding a Sprint 0 to the release schedule really scrum or agile?
Going by technical definition of the methodology No, I don’t think so. Sprint 0 is more like a planning period where the team work out the details of how they can work together in the coming weeks/months. Since, scrum doesn’t explicitly recommend a planning phase for a project and expects us to cover everything within the sprint, we cannot say that our project is doing scrum if we add a sprint 0.
At the same time, Agile is an adaptive mindset and approach where the team is free to tweak their processes to enhance their output. By adding a sprint 0 the team is basically improving the efficiency and delivery capabilities of sprints 1 and beyond so, I would say that even if we add a sprint 0, we will still be doing agile if we follow the other core principles that agile was built on – customer focus, regular delivery of value, adapting to changes and continuous improvement.
Real life scenario:
In real life agile projects, you can also find teams that use a stabilization or regression sprint toward the end of the major release where the team will make sure all bugs are fixed, pre-existing functionality that was delivered as part of the last major release are working fine and the product meets the quality standards set forth by the organization.
Again scrum & agile purists will argue that adding such an iteration is against the scrum methodology.
Yes, I cannot deny that. But, practical usability and fitness for purpose always trumps idealistic processes. If I am delivering a major product version to a customer, he would be more concerned about my project team delivering a quality product rather than following scrum perfectly. So, going by customer focus as our teams main goal, we are using one sprint to make sure the product is fit for use and delivering the same to the customer and I would still say that my team followed agile methodology because we did follow all the agile principles.
What are your thoughts on sprint 0 and a stabilization testing sprint? Sound off in the comments section…