Rules to Better Scrum - 55 Rules
Everyone who will be involved in Scrum (pigs and chickens alike) should have read and understood the Scrum guide.
Understanding the concepts of Scrum is easy; implementing it is hard!
Is working as a team all it is cracked up to be?
It's a well known fact that a good team of 3 people will output more than 3 people working on their own. As well as that, the team members will find it more rewarding as well.
The best sum up of this was by famous Wallaby player, Ben Darwin, who said:
I found the hardest issue of all was that I missed my friends, basically, and that's what I told them when I gave them the jersey for the final. I just missed the 14 guys. There's a feeling that comes in sport, particularly in team sport, where we say we feel jealous of the wages of individual sportspeople but never jealous of the lack of team. When you finish a game of football and you've played together and you walk off with the other 14 men, the guys on the bench, and you've overcome an opposition, you don't have to say anything to each other. You can simply look your fellow man or other player in the eye, and he knows you helped him , and you know how he helped you . That's enormously satisfying, and I haven't found that anywhere else in life.
Ben Darwin speaking on how, after breaking his neck in a scrum, he was forced to quit being a Wallaby and rejoin normal society.
We can see examples of this in nature as well. For the Antarctic Emperor Penguin, cooperation is the key to survival. Every winter thousands of male penguins huddle together to share warmth. The birds on the most exposed side of the huddle gradually move down around the huddle to the more sheltered side. This means that each bird spends some time exposed to the full force of the Antarctic winter, but then gets its fair share of warmth in the middle of the pack. These clever birds understand that by taking turns and enduring discomfort in the short term, their chances of success (survival) greatly increase.
It is essential that in order to be a contributing member of a successful team, you are willing to put the good of the team over your own interests so that everyone can benefit in the long term.
Note: If this beautiful story is not up your alley you will prefer a similar example of working as a team by the IT Crowd http://www.youtube.com/watch?v=pGFGD5pj03M
**Tip: Leverage Existing Organizational Experience and Learn From the Best.** Does your company have a ‘super star’ team? If so, why not ask to sit in on one of their meetings, or take a few of their team members to lunch and ask them for advice on increasing your own team’s performance.
Suggested questions to ask the experts:
- What do you define as success?
- What are the things that you do not worry about?
- What practices do you believe lead to your success as a high performing team?
- Do you have defined/document practices and procedures that you follow?
- What tools do you use that contribute to your effectiveness?
- What metrics do you use to measure your success ?
With the rest of your team, prioritize the feedback you received and select a few key items that you can implement right away.Make a backlog from the feedback you received, set some goals and start your team on the road to being ‘Superstars’ too.
Scrum is easier than it seems, we'll explain how in these 8 simple steps.
Print out the SSW 8 Steps to Scrum PDF and put it on your "War Room" wall.
In the Initial Meeting, the Product Owner explains the product vision. The Developers think about the Architecture needed and how long they will need to come up with an estimate.
The next step is Backlog Construction, also known as a Specification Review. The Developers propose a high-level software architecture and a to-do list called the Product Backlog. The required features are broken down into Product Backlog Items (PBIs for short).
These PBIs are estimated and, before a dollar figure is presented, a buffer is added for generic tasks such as DevOps, Testing, Bug Fixes, Project Management, etc.
This is also when the Product Owner 1st defines the Product Goal (aka the "why" of the project), although this can and should be refined throughout the project.
A quick note, there are only 3 roles in a Scrum Team, The Product Owner (the boss), the Scrum Master (a kind of project manager), and the Developers (who do the work).
The Sprint Planning session is for the Developers to focus on the subset of the Product Backlog that they think they can complete in the next Sprint, (which is most commonly a 2-week time-box).
The Product Owner puts the PBIs into priority order and makes sure the top ones have enough detail to be worked on. The Developers then pulls PBIs from the top of the Backlog and commits to delivering as much as they forecast they can, in the coming Sprint.
The Developers and Product Owner together then define the Sprint goal, (aka the "why" of the sprint).
The Developers work on features in priority order, having done a Daily Scrum and sending 'Done' emails once the 'Definition of Done' is met. A task board is often used. During this process, the team also refines items in the Product Backlog to ensure they conform to the 'Definition of Ready'.
Each Sprint is a potentially shippable Product Increment, and with good DevOps, including automation of deployment and testing, this can be done on a "PBI by PBI basis. This means each feature worked on can be in production as soon as it is finished.
Product Feedback will then come in. Some will be bugs, and some will be small changes that can be added to the current Sprint. Other suggestions should be approved by the Product Owner and then added to the Product Backlog.
At the end of the Sprint, there is a Sprint Review, where the Developers demo or play done videos of the completed PBIs. The goal is for the Product Owner to understand the increment and to discuss the feedback to make the product better. This is the real measure of success of the Sprint.
Lastly, there is the Sprint Retrospective, and this is the best part! The Scrum Team discusses what went well, what didn't, and what to improve, always inspecting and adapting.
From here, another Sprint Planning session commences, and the wheel keeps turning, getting better and better with every revolution.
The Scrum Master (not ScrumMaster), must schedule the Sprint Review, Retrospective and Planning meetings.
Estimate how much time each meeting will require, then schedule a single calendar appointment to cater to the three meetings. When scheduling the calendar appointment, keep in mind the following:
- Ideally, each of the three meetings should be time-boxed to an hour for every week of their associated Sprint.
- This timeboxing does not mean the whole time will be taken up, just that you should not let the time for each meeting be exceeded.
- With the Product Owner's help, the Scrum Team will need some time to update the Product Backlog after the Retrospective and before the Planning meeting.
- People need breaks.
- The Sprint officially finishes at the end of the Sprint Retrospective meeting. The Sprint Planning meeting marks the beginning of the next Sprint.
- These meetings do not necessarily have to be held on a Friday or Monday. You can have a Sprint start and end on any day of the week. Mid week meetings are recommended so that the likelihood of it occurring on a public holiday long weekend is minimised.
- Since these meetings will occur every Sprint - set a recurrence on the calendar appointment (every 1, 2, 3, or 4 weeks) so that people have the time blocked out well in advance.
Tip: It can be helpful to finish the Sprint Planning meeting with the first Daily Scrum
Schedule the meeting and invite the Scrum Team and any interested stakeholders.
Required Attendees: Scrum Team Optional Attendees: Interested Stakeholders Recurrence: Every [Number of weeks in the Sprint] weeks Subject: [Project Name] – Sprint Review, Retro and Planning
This is a calendar appointment to hold the following three Scrum meetings:
Sprint Review Meeting We will go through the user stories that have been completed and demonstrate them. See rule What happens at a Sprint Review Meeting?
Sprint Retrospective Meeting Sprint closed and new sprint starts. We ask for feedback of the previous sprint so that we can ‘Inspect and Adapt’. See rule What happens at a Sprint Retrospective Meeting?
Sprint Planning Meeting We go through the backlog (aka to-do list), get more information, estimate and then prioritize. We then breakdown to tasks and commit to what we believe we can deliver for the next sprint. See the rule What happens at a Sprint Planning Meeting?
Regards, [Scrum Master]
<This email is as per the rule https://www.ssw.com.au/rules/scrum-master-do-you-schedule-the-3-meetings />
Figure: Good Example - copy this appointment template and send to the Scrum Team
See Meetings - Do you know when to send an Appointment or a Teams Meeting? for more information.
Prior to your meeting with the customer you should prepare. Get your Sprint Planning (was Release Plan') email ready, so after the meeting you can adjust and promptly send it.
Learn how to create your Sprint backlog:
Once the backlog is ready, you should send the Sprint Forecast email to the client.
Each sprint has a "Sprint Forecast" email that details what will be worked on during this sprint.
At the end of the sprint, this should be replied to with a "Sprint Review" email that shows a breakdown of what was completed.
Each Sprint has the following stages:
- Sprint Forecast email: "Northwind - Sprint 5 Forecast"
- See Do you send "Sprint Forecast" email to the client? for more details
Work in progress
- "Done" emails are sent asking for specific functionality to be tested
- See Rules to better Email for details
Review and Retro meetings
- The Sprint review/retro email: "Northwind - Sprint 5 Review/Retro"
The work to be performed in the Sprint is planned at the Sprint Planning meeting. At the Sprint Planning meeting, the following three questions are answered:
- Why is this Sprint valuable?
- What can be delivered in the Increment(s) resulting from the upcoming Sprint?
- How will the work needed to deliver the Increment(s) be achieved?
The Product Owner proposes how the product could increase its value and utility in the current Sprint. The whole Scrum Team then collaborates to define a Sprint Goal that communicates why the Sprint is valuable to stakeholders.
What can be delivered in the Increment resulting from the upcoming Sprint?
The Product Backlog is examined and the Product Owner makes changes so that it is prioritised with Bugs prioritised amongst Product Backlog Items (PBIs).
The Product Owner is then asked to group the top ranking Bugs into PBIs for inclusion in the Sprint; see this rule.
The Team are then advised of their resourcing for the Sprint as there may be additions, subtractions, leave or public holidays which are different to the previous sprint. Considering their previous record and their current resources, The Team decide on the number of story points that they will deliver in the forthcoming Sprint. When The Team are not currently co-located this is often done by voting, and discussed until consensus is reached.
The Team then size (assign Story points to) PBIs starting at the top until there are more than enough PBIs to fill the Sprint.
The process of sizing is somewhat formal. Either using cards or IM (essential if not co-located) the team vote privately on the size of the PBI. They can either use T-shirt sizes of XXS, XS, S, M, L, XL, XXL and XXXL or their equivalent number of story points for which we use the Doubling Series of 1, 2, 4, 8, 16 or 32. Once the differring votes are in, the Scrum Master asks the smallest and biggest voters to explain the reasons for their vote. Assumtions and omisions are quickly identified through discussions and the Scrum Master encourages discussion until consensus on the Story points is reached. Any PBI voted at 16 or higher should be broken down into smaller stories; re-prioritised by the Product Owner and re-sized if necessary.
Once enough stories are sized, the Product Owner is given the opportunity to re-prioritise now knowing the relative sizes. If more PBIs need then be sized then they are. The Scrum Master keeps everything going and facilitates negotiation between The Team and The Product Owner until final priority is confirmed and The team commit to a number of stories and the meeting concludes.
This meeting should be timeboxed to an hour for every week in the Sprint. However, the Scrum Master must be sensitive to the meeting producing a workable result.
It is important for Sprint capacity planning to be consistent across all teams. As such, there should be consistency in how many story points you allocate to a Sprint. It's unreasonable to think that someone will be able to work productively and consecutively for 8 hours straight on a particular task. For example, if a task is allotted a 4 for effort (8 hours), the developer will probably spend about 6 hours coding, and 2 of those 8 hours fixing bugs, communicating, or working on the admin side of things. Even if devs may try to factor these things into their estimation, a 20% buffer never hurts.
Therefore, a standard 1-week Sprint with 2 resources would have about 32 story points allocated.
NOTE: This is specifically for the first couple of Sprints in a project, until you get an average velocity that you can use for capacity planning moving forward.
To answer the second question the team create tasks, with sub-tasks where necessary, for everything that needs to be done to implement the PBI. Every task and sub-task should be given an estimate in hours and the same value placed in the Remaining field.
No actual work on the Sprint should start until this planning is complete. It is these Remaining hours that determine the first value in the burndown chart which sets the Sprint on its way to completion. There must be no omissions or The Team will start without an accurate burndown and we all know that "The Team is nothing without a burndown".
The Team should also ensure that the burndown chart is working and will be automatically sent to all members of The Scrum Team overnight.
The meeting concludes when The Team reports to the Scrum Master that their planning is complete and they are able to display the burndown chart.
Ideally this meeting is timeboxed to as many hours as there will be weeks in the Sprint. However, this planning is so essential that it must continue to completion outside the meeting if necessary.
It is not essential for the Product Owner or the Scrum Master to be present for the whole meeting but they must be available for consultation. The Scrum Master should formally close the meeting.
Once this meeting is finished, the Scrum Master should email the Product Owner with a forecast.
After the Sprint Planning Meeting, it is useful for the Development Team to send the Product Owner (PO) a Sprint Forecast for the next Sprint. Doing this helps to improve common understanding in, and sometimes to enforce, the relationship between the PO and the Team.
This is simply an agreement between the Development Team and the PO for one Sprint and should be confirmed via an e-mail at the beginning of every Sprint.
“The implementation team agrees to do its best to deliver an agreed on set of features (scope) to a defined quality standard by the end of the sprint. (Ideally they deliver what they promised, or even a bit more.) The Product Owner agrees not to change his instructions before the end of the Sprint.”
Agile Project management
Each of the Sprints in a Scrum project can be considered a mini-project that has Time (Sprint Length), Scope (Sprint Backlog), Quality (Definition of Done) and Cost (Team Size*Sprint Length). Only the scope can vary and this is measured every sprint.
To: [Product Owner] Subject: <Client Name>: Sprint XXX Forecast
Sprint Goals (in priority order):
- WDM Integration
- SSO/Roles APIs
- Download Documents APIs
Please see below for a more detailed breakdown of the upcoming Sprint:
Current Sprint: <Sprint Number> Sprint Duration: <Number of weeks> Project: <Project Name> Project Portal: <Link to project Portal> Product Owner: <Product Owner Name> Sprint Review Meeting: <Date and Time> Attendees: <Names of Attendees>
As per our Sprint Planning Meeting, and as the Product Owner, you have agreed to the following Product Backlog Items (PBIs) being included in the current sprint backlog.
The Team will do its best to deliver this set of features (Scope), to a defined quality standard (Definition of Done) by the end of the sprint. Ideally, the team will deliver what they forecast, or even a bit more, but this can't be guaranteed.
ID Title State Effort 24124 UI Improvements Done 4 24112 Integrate Business Logic to MVC app Done 8 24097 Styling Committed 16
Figure: The sprint backlog
<This is as per rule: Do you create a Sprint Forecast?>
Figure: Good Example - copy this as email template and send to Product Owner
Tip: Use this Outlook email template
More instructions are as below:
- Go to Azure DevOps and navigate to the current sprint's backlog view. E.g. https://dev.azure.com/ssw/Northwind/_sprints/backlog/Northwind%20Team/Northwind/Sprint%201
Paste to the Forecast email, and format the table:
- Remove any useless columns!
This is the meeting where the Product Owner accepts or rejects the stories in the Sprint and the Sprint itself.
The Team, having prepared for the meeting, presents the stories to the Product Owner.
One person, often the Scrum Master, presents a summary to the Product Owner of the stories committed at the Sprint Planning meeting and the stories being presented for acceptance. The Team seeks to have more stories accepted than originally committed. It is important that the Product Owner knows at the beginning whether The Team believe that they have over or under achieved the Sprint Goal.
Each story is then presented by the Team for acceptance. They aim to get the Story accepted as quickly as possible (AKA tick and flick) while being totally transparent, which includes declaring whether there are any known outstanding bugs (which should already be on the Product Backlog) and adherence to the Team's Definition of Done.
Note: If there are additional stakeholders, make sure they are also in the loop and up to speed on the current increment.
If a Story is accepted, but more work needs to be done, a new Story to cover this work is added to the Product Backlog. Similarly, if a bug is found during the review, it is added to the Product Backlog.
If a Story is rejected and returned to the Product Backlog but the Sprint itself is accepted, then a careful decision needs to be made. If changes have been checked-in to the Sprint's branch then it must be established that these changes have no adverse effect or they must be carefully undone before the branch is merged with the trunk. For this reason, it is always safer to accept stories with conditions rather than reject them.
The Scrum Master keeps the meeting on track and to the Timebox by disallowing discussions not relevant to the acceptance or rejection of the story; this is often done by making a note to bring the subject up again in the Retrospective Meeting.
This meeting is normally time boxed to as many hours as there are weeks in the Sprint.
In Scrum, there are 4 meetings in total that you need to know about:
At the end of every Sprint the Development Team performs a Sprint Retrospective also known as the Retro. The Retro provides an opportunity for the Scrum Team to reflect on what has gone well, what has gone poorly, and what the team wants to change.
Inspect-and-adapt is a key component of the Scrum framework and the Retro gives Scrum Teams an opportunity to learn from their successes and mistakes.
The Retro is a time-boxed event that focuses around 3 questions:
- What went well?
- What didn't go well?
- What will we do differently in the next Sprint?
The Scrum Master facilitates the meeting and collects issues as they are raised. Once every Scrum Team Member has spoken he facilitates debate on each issue so that team consensus is achieved. The result should produce an actionable outcome, for example:
- An adjustment is made to the daily processes followed by the Scrum Team
- An adjustment is made to the Definition of Done
- An adjustment is made at the organisation level
- An item is added to the Product Backlog
To help aid discussion it can be useful for the Scrum Master to prepare items for review by inspecting the Sprint Backlog and statistics such as:
- the Burndown
- Code Coverage
- Number of deployments
- Number of errors in Application Insights
For example the Scrum Master can find PBIs (Product Backlog Items) in the Sprint that were successful / not successful and then facilitate the discussion as to why.
Once all issues have been discussed to the satisfaction of The Scrum Team, the meeting concludes.
If the timebox limit is reached, the remaining issues should be recorded and dealt with by the Scrum Master. Any outstanding issues must be raised at the next Retrospective if they are still relevant.
The time-box for this meeting is usually as many hours as weeks in the Sprint.
After any Sprint Review and Retrospective, an email should be sent to all the stakeholders to update them on the outcome from the sprint:
Firstly, Create a new email copying the information from the previous sprint review/retro. As per https://rules.ssw.com.au/do-you-know-what-happens-at-a-sprint-retrospective-meeting, it should include the following:
From: <Your Name> To: <Product Owner> Cc: SSWSprintReviews@sswcom.onmicrosoft.com Subject: <Product Owner> Sprint XX Review/Retro
Here are the Sprint Goals and their status at a glance:
Sprint Goals (in priority order):
- Bugfixes – Done ✅
- WDM Integration – Done ✅
- SSO/Roles APIs – In Progress 🕑
- Download Documents APIs – Not Done ❌
Please see below for a more detailed breakdown of the Sprint:
Sprint in Review: <Sprint Number> Sprint Duration: <Number of weeks> Project: <Project Name> Project Portal: <Link to project Portal> Test Environment: <Link to test environment> Product Owner: <Product Owner Name>
Attendees: (Optional as they may be in the to and CC)
ID Title State Effort 24124 UI Improvements Done 4 24112 Integrate Business Logic to MVC app Done 8 24097 Styling Committed 16
Figure: Sprint Backlog from <Link to Sprint Backlog in Azure DevOps>
- Sprint Burndown (a quick overview of the sprint)
- Code Coverage (hopefully tests are increasing each sprint) XXX
- Velocity (Optional) XXX
- Burnup (for the release - the whole project, how are we tracking for the big picture?)
- Production Deployments (How many times did we deploy to Production?)
- Application Health Overview Timeline (For the entire Sprint)
Did we do any experimental work?
<insert details of any trial/error processes, and ensure all detail is captured as per https://rules.ssw.com.au/do-you-record-your-failures>;
<insert details of any problems for which no solutions existed, and ensure detail is captured as per https://rules.ssw.com.au/do-you-record-your-research-under-the-pbi>;
As part of our commitment to inspect and adapt as a team we conduct a Sprint Retrospective at the end of every Sprint. Here are the results of our Sprint Retrospective:
What went well? <insert what went well from retro>
What didn’t go so well? <insert what did not went well from retro>
What improvements will be made for the next Sprint? <insert what improvements will be made for the next Sprint>
Definition of Ready - Optional
<insert the definition of Ready. Normally that the PBIs are Sized with Acceptance criteria added>
Definition of Done - Optional
<insert Definition of Done. Normally that it compiles, meets the acceptance criteria, and a test please has been sent if relevant>
<This is as per the rule: https://rules.ssw.com.au/do-you-create-a-sprint-review-retro-email />
Figure: Good Example - Template for Sprint Review/Retro Email. Subject: Sprint xxx Review/Retro
Tight project teams have a Daily 'Scrum' every day at the same time.
It was once called a 'stand-up meeting' but that discriminates people in wheelchairs.
It is best to have it standing up, so it's short and to the point. No-one wants to stand around waffling.
Everybody knows the 3 essential questions:
- What did you do yesterday? (and did you update Azure DevOps (was TFS) OR other bug tracking system)?
- What are you going to do today? (and my current task on the physical task board has my picture on it)
- Do you have any roadblocks? (aka issues/impediments)
Asking these questions of every team member means no-one can hide and everyone remains connected. Further, you can notice what was promised and what was performed. This enables the team to discover issues quickly and keep abreast of the progress.
The team's successes and failures are shared, and anyone who knows the answer to someone else's problem can help with a solution, after the meeting.Figure: Watch a Daily Scrum at Microsoft (short) Figure: Watch a Daily Scrum at Microsoft (long)
"Great video guys. Remember, it is ok to change Scrum, actually, it is necessary for success. Just adhere to the values of Scrum. " Stephen Forte (Board member ScrumAlliance.com)
Follow these essential tips to improve your Daily Scrum meetings:
Before you join the Daily Scrum, check the Teams group to see what your colleagues have been discussing and working on, and check the portal to confirm the meeting time. If you’re joining a new project or re-joining a previous one after some time away, these steps are important to keep yourself up-to-date and abreast of progress.
Then you’ll be able to say to your Scrum Master, “I’ve had a look at the Teams group. I am ready to join the daily Scrum.”
At the end of the Scrum, the Scrum Master should review the current burn down to check on the progress of the team.
Tip 3: Keep a schedule of the Daily Scrum times on a wall (+ have a recurring appointment in Outlook)
To: [Team] Recurrence: Everyday Subject: Daily Scrum – [Project Name]
As per our conversation, the Daily Scrum will be held each day.
- Project: XXX
- Scrum Master: XXX
- Task board: XXX
<This email was sent as per Do you do Daily Scrums?>
Figure: Schedule a recurring Daily Scrum meeting in Outlook using this template
Get started on time. Especially in the beginning, people will be late, but the meeting should be held with the remaining people. Don't worry. People learn.
If the Scrum Master is not a full-time member of the team (often they are), they should attend every now and then to check the Scrum process is being followed and the Daily Scrums are being used synchronize the team and not a general meeting.
- The Product Owner (often the client) is not required at the stand-up meeting. If he wants to turn up, remind him that he has tape stuck over his mouth, so he does not talk.
- If you are not doing an approved Sprint and doing ad-hoc work, then best if the Product Owner (aka client) attends (see Ad Hoc work).
Daily Scrums are more effective when team members arrive when their tasks are already updated.
Keep your answers short and concise. Do not stray from the 3 main questions. Remember to use the "Parking Lot" to record topics to discuss after the Daily Scrum.
Technology in the Daily Scrum causes people to lose focus on the goal. The goal is for the team to synchronize by sharing what they are doing. Avoid giving people the opportunity to be distracted easily by forbidding email, SMS and mobile phones from the Daily Scrum.
A task board allows people to visualize what the team is talking about.
Use a pen and paper to jot things down.A whiteboard is also great for "Parking Lot" topics that arise, to be discussed after the meeting.
A "Parking Lot" is the place for any discussions that stop the Team from answering the 3 main questions. Only interested people stay for the "Parking Lot" to discuss issues after the Daily Scrum.
Often the Product Owner won’t be at the Scrum. However, call the Product Owner if you have an Impediment (aka Roadblock). Communication with the Product Owner is essential and if you haven't touched base with him in the few days, then do so. A disconnected or absent Product Owner is a sign of dysfunction.
If you don't have a team, and you're doing ad hoc work for a PO directly, it's best to contact him for the Daily Scrum every day if possible, and follow up with an email. This will keep the 2 of you synchronized.
Once you have completed your stand up, add “S” to your timesheet as per Rules to Better Timesheets.
Use Teams or Skype to bridge gaps in geography.
Focus on the Flow
"Extend this rule to focus on 'flow of value', not just people. In a continuous flow mindset, the daily standup is less about the people..... it's about flow. The team faces the scrum board and goes ticket by ticket for all the items in the 'work in progress', finding out what is needed to get it to the next stage.. respecting work in progress constraints." Joel Semeniuk
When using email or IM try to be as specific as possible:
I have XX days until my next client booking. I have 22 emails in my inbox. Yesterday I was on sick leave.
Today I am working on:
- Timepro PBIs
- Tidy inbox
Figure: Bad example - Lack of details. Eg. Yesterday - if it's Monday, you wouldn't say “Yesterday was Sunday"... so if you were sick, it's more useful to go back to the prior day you were working
I have XX days until my next client booking. I have 22 emails in my inbox. Last Friday I was on sick leave.
Today I am working on:
- TimePro - Adding new button to the next day
- Getting my emails on "SSW.com" to zero
Figure: Good example - Clear details
What happens when you run out of tasks?
The goal is to be productive for 8 hours of the day, so communicate with the rest of the developers and work with them on any other outstanding tasks. If there are no more tasks then take the next task from the top of the Sprint Backlog.
What happens if there is a major incident?
It is important that any major incidents are dealt with first. Start with any major incidents that occurred in the last 24 hours.
Each step of Scrum is designed to take you towards an outcome, and this is built upon 3 levels of commitment:
This is the commitment at the Product Backlog level. It is defined by the Product Owner and ensures continued focus upon progress towards a defined outcome.
The Product Goal describes a future state of the product which can serve as a target for the Scrum Team to plan against. The Product Goal is in the Product Backlog. The rest of the Product Backlog emerges to define “what” will fulfill the Product Goal.
"A product is a vehicle to deliver value. It has a clear boundary, known stakeholders, well-defined users or customers. A product could be a service, a physical product, or something more abstract."
The Product Goal is the long-term objective for the Scrum Team. They must fulfill (or abandon) one objective before taking on the next.
**Excerpt from The Scrum Guide **
This is the commitment at the Sprint Backlog level. It is negotiated between the Product Owner and the Team, and defines the “why” of the sprint, and how it will help the product eventually reach the Product Goal.
The Sprint Goal is the single objective for the Sprint. Although the Sprint Goal is a commitment by the Developers, it provides flexibility in terms of the exact work needed to achieve it. The Sprint Goal also creates coherence and focus, encouraging the Scrum Team to work together rather than on separate initiatives.
The Sprint Goal is created during the Sprint Planning event and then added to the Sprint Backlog. As the Developers work during the Sprint, they keep the Sprint Goal in mind. If the work turns out to be different than they expected, they collaborate with the Product Owner to negotiate the scope of the Sprint Backlog within the Sprint without affecting the Sprint Goal.
**Excerpt from The Scrum Guide**
This is the commitment at the Product Backlog Item (PBI) level. This may include testing, deployment, Pull requests, etc, and ensures the quality of each PBI.
The Definition of Done is a formal description of the state of the Increment when it meets the quality measures required for the product. The moment a Product Backlog item meets the Definition of Done, an Increment is born.
The Definition of Done creates transparency by providing everyone a shared understanding of what work was completed as part of the Increment. If a Product Backlog item does not meet the Definition of Done, it cannot be released or even presented at the Sprint Review. Instead, it returns to the Product Backlog for future consideration.
If the Definition of Done for an increment is part of the standards of the organization, all Scrum Teams must follow it as a minimum. If it is not an organizational standard, the Scrum Team must create a Definition of Done appropriate for the product.
The Developers are required to conform to the Definition of Done. If there are multiple Scrum Teams working together on a product, they must mutually define and comply with the same Definition of Done.
**Excerpt from The Scrum Guide**
The client is generally the Product Owner (PO). They should read the Scrum Guide and watch the Product Owner video to understand their role. It is so important to the success of their project:
- Be available for Sprint Reviews, Retrospectives and Sprint Planning meetings (approximately half a day for these 3 meetings, for each 2-week sprint).
- Order the Product Backlog. The important things will be done first, in order to maximize the ROI as the budget will run out one day.
- Be available, at least remotely, to unblock a developer if he has questions/impediments. A good PO has a feeling of urgency.
- Ideally, listen in on Daily Scrums. This is optional but means that the PO will have daily insight into the team’s progress.
- Understand Product Backlog Items (PBIs) and be able to explain what they want using Acceptance Criteria. This is the main way that developers and POs sync their understanding of what needs to be done.
- Set a Product Goal (the "why" of the Product)
- Agree on a Sprint Goal for each sprint (the "why" of each sprint)
- Not influence (or anchor) developer estimates with comments like “this one will be easy” and allow the team to come up with converged estimates.
- Respect the Sprint Goal. Understand that the team will only work on things in the Sprint Backlog and don’t expect other things to be done as well. Most things can wait for the next sprint.
It’s hard to give guidance on who in the company would make a good PO. The usual candidate is often extremely busy. It should be:
- Someone with a personal stake in the success of the project.
- Someone who is available
- Someone with a clear vision of the product,
- Someone who has authority with the budget. E.g. They could authorize adding a designer to a sprint for a couple of days
- Someone who has read the Scrum Guide and watched the Product Owner video and understands the role.
It’s possible to outsource the role of PO to someone in the development consulting company, but this is not recommended. Don’t put the fox in charge of the chickens.
“Most dysfunction I see in Scrum teams is caused by a bad Product Owner” - Adam Cogan - Professional Scrum Trainer, Scrum.org, during a TechEd session
All good Scrum teams have a backlog. The backlog is built by taking a conversation and recording it as one or more Product Backlog Items (PBIs) (e.g. Azure DevOps) or Issues (e.g. GitHub)
We recommend using software such as GitHub Issues, Azure DevOps, or JIRA to store PBIs straight after or, better yet, during the conversation, rather than using emails that may never be entered into the backlog.
The Product Owner is responsible for owning the Product Backlog. See the video on "Do you know how to be a good Product Owner?"
3. Azure DevOps - E.g. https://ssw.visualstudio.com
The Product Owner is responsible for owning the Product backlog. See the video on "Do you know how to be a good Product Owner?"
How to add new PBI (Product Backlog item) to the backlog?
Do not use emails as you can't order them by the business priorities.
Use Azure DevOps (E.g. https://ssw.visualstudio.com) as it allows you to enter an item into the backlog, in the preferred priority order.
Note: You can also create a PBI using Azure DevOps and attach an email directly if needed, without using Team Companion
Avoid monolithic Product Backlog Items (PBIs). Ideally, all PBIs should be less than 2 days. If you are given a feature that is going to take weeks, then split it following this rule.
Subject: Create an .NET 5 prototype with web services
Figure: Bad example - This is a monolithic 4-day task
Subject: .NET 5 prototype #1 - Create a web page with firstname and lastname textboxes, a save button Subject: .NET 5 prototype #2 - Create a table for customer with any other fields required for this table Subject: .NET 5 prototype #3 - Create a web service with the customer CRUD methods Subject: .NET 5 prototype #4 - Create methods on webservice exposed to client
Figure: Good example - The same monolithic task, broken down into 4 smaller tasks
A PBI should not take more than 2 days. Each task under it should not have an estimate of more than half a day (4 hours).
If you have a big task with an estimate of more the 4 hours, you should consider breaking it in sub-tasks. In case the estimate has changed during the sprint, the “Remaining Hours” field must be updated in order to have an accurate Burndown chart.
The reason Scrum limits the maximum hours is because you should always know in which task you are working and we believe one single action that takes more than 4 hours might be too generic.
A team knows how many PBIs they can commit to by measuring their velocity. The Team estimates the highest priority PBIs in the Product Backlog in Story Points. It is very important for teams to estimate tasks effectively. There are several methods for estimating:
- Shirt Sizes
- Fibonacci Extended (1-100)
- Fibonacci Original (1-21)
Let's go through them:
This method is popular with Microsoft teams, but it has the problem of not easily mapping to the common 7 numbers when you enter it into a Task tracking Bug database. e.g.
1 = XS 2 = S 4 = M 8 = L 16 = XL 32 = XXL 64 = XXXL
Please note: In some teams which only use Small, Medium and Large the following numbering is applyed respectively 2, 4 and 8.
Planning Poker is a very effective Product Backlog estimation technique and the most common method is using Fibonacci numbers (1,2,3,5,8,13, etc.). This was made popular by Mike Cohn.
Mike Cohn introduced changes to the original 7 cards, by changing the 21 to 20 and adding 40 and 100 to indicate very large user stories called Epics.
Ken Schwaber (the father of Scrum) says in his Scrum Certification course, that he is not a fan of the extra cards and says he prefers teams keep to the original 7 cards.
Estimating using doubling numbers makes relative sizing simple. An 8 point PBI should be about twice the size as a 4-point PBI. This method also simplifies PBI swapping where a PBI is replaced with PBIs totaling the same number of points.
It has one other advantage over the Fibonacci sequence, it is easier for non-techies because the numbers aren't whacky and the name isn't bizarre.
Estimate 1 2 4 8 16 32 64
Figure: Good example -Doubling simplifies relative sizing
Another method of estimating is the "Thrown method" as described Martin Fowler. http://martinfowler.com/bliki/ThrownEstimate.html
This is particularly useful if you don't have Planning Poker cards. Instead of Fibonacci numbers, estimates are from 1 to 5. It's nice and simple, and you only need the fingers on your hand.
The action is done in the same method as the game 'Rock, Paper, Scissors'. The options the developer can estimate is 1,2,3,4,5
#1 Don't Shout Out It will just influence other people's votes.
#2 Guidelines for Estimating PBIs (aka Anchoring) Every team is different, but you can use the following guidelines for sizing PBIs.
Estimate Value Example PBI 1 A change to a message box 2 - 4 A timeboxed task for 1 day x 1 guy 8 A timeboxed task of 1 day x 2 guys 16 - 32 - 64 More than a month with a couple of guys. Tip: Don't include these in a sprint because they are too risky - ask for them to be broken down.
Figure: Good example - Example PBI estimates
#3 Using a Chat Program If you are working on a project with a remote team, use Microsoft Teams chat to size PBIs using Planning Poker. Everyone should give their points for PBIs at the same time to avoid influencing each other.
#4 Big PBIs Smell PBIs of greater than 2 days are a smell and PBIs greater than 4 days are a stench. If PBIs are estimated at more than 4 days of work, consider splitting them into smaller pieces to keep them under 2-4 days. See Do You Break Large Tasks into Smaller Tasks?
#5 Use Spikes If you do find a very large PBI, consider using a Spike (aka. an investigation task) to help work out how much work will be involved.
All team members must update their tasks with status, (and remaining hours if you are estimating tasks) prior to the daily Scrum meeting.
Note: If you are updating the details of a PBI then follow the rule Do you know when you use @ mentions in a PBI?
In Scrum, there are 4 meetings in total that you need to know about:
In Scrum, meetings are time boxed. Team members should be well prepared in order to accomplish the meeting goals in time.
This is time boxed to 15 mins. All members of the team should be well prepared by:
- Being ready on time
- (If your team is estimating tasks) Having their "Remaining hours" up-to-date – read Do you update your tasks before the daily Scrum meeting?
- Be ready to answer the 3 main questions:
What did you do yesterday? e.g. "Yesterday I did xxx"
What are you doing today? e.g. "Today I will do yyy"
Do you foresee any impediments or roadblocks? e.g. "I might hit a roadblock today because of xxx"
- Remember to say "Let's park that conversation for after the Daily Scrum". Major discussions are not to be conducted during the time boxed Scrum meeting.
- Being online on Skype (especially for team members in different locations).
All members of the team must be well prepared by:
- Being available 30 minutes before the meeting
- Setting up and testing the projector with a computer before the meeting starts
- Making sure remote members are connected via Skype and/or TeamViewer before the meeting starts
- Nominating in advance another member of the team to take notes from the presentation
- Deciding, in advance, the order in which PBIs should be presented; priority, sprint backlog order, logical order and minimizing presenter and presentation medium switching should be taken into account.
Controlling the time spent on the PBI presentation
- Practice the demo beforehand if needed to ensure a succinct delivery. This can be in the form of a pre-prepared video if desired
- Inform the product owner what the main goal of the PBI is and tell if the team believe it was done or not
- If the Product Owner previously saw what was done, ideally the member should just mention that and ask if the PBI is accepted
- If the member needs to show something, show a couple of examples and ask if the Product Owner wants to see something else
All members of the team must be well prepared by:
- Having all your tasks from the last sprint closed
- Having your sprint feedback ready in advance, so members don’t need to think about it during the meeting, saving time
- Being clear and pointing out issues that need further discussions
All members of the team must be well prepared by:
- Having all bugs and PBIs up-to-date on the backlog
- Having all PBIs on the backlog “groomed” in order of priority (according to the Product Owner)
- Understanding all PBIs and the Product Owner’s priorities
- Being responsible on estimates
- Volunteering to work on PBIs and tasks, even if they are not related to your best skills – read Do you encourage multi-skilled teams?
When you are building complicated software and working with customers it is always nice for them to have some idea on who to speak to about a particular PBI during a sprint. In order to achieve this one of the Team takes responsibility for “looking after” a PBI.
They will collect all of the "Done emails and make sure that everyone follows the Done criteria identified by the team as well as answering any Product Owner queries.
The role of the PBI Owner is like a mini project manager. The PBI Owner resolves any road blocks, performs the “Test Please” and makes sure there is a good presentation at the Review Meeting. In addition, having a PBI Owner makes it easy for Product Owners and others to talk to the right person when they need to.
There are five main things that the PBI Owner is responsible for:
- Manage / Own the story and its sub tasks
- Make sure a “Test Please” is conducted (or that their story is included in one)
- Make every effort to show the story to the Product Owner before the Sprint Review (aka a corridor conversation)
- Prepare for the Sprint Review. Make sure he ready for the review. Have a scribe, have a demo plan/script and get the story accepted quickly
- Present the completed PBI at the Sprint Review
During a Sprint it is useful for:
- The Product Owner to know who to speak to regarding a PBI
- The Team to know who will be presenting the PBI at the Sprint Review
Note: Beware this is intended for convenience and should not conflict with the following Scrum principals from page 6 of the Scrum Guide.
- The Development team is self-organizing
- Accountability belongs to the development team as a whole
When you create tasks in Scrum you are doing this within a time box and you tend to add only the information you need to remember what the task is. And the entire Team was at the meeting and were involved in the discussions around the task, so why do you need more?
Once you have accepted a task you should then add as much information as possible so that anyone can work on that task.
You can use rich text and images to be extra clear, or even attach an email to the task.
Note: If you are updating the details of a PBI then follow the rule on using @ mentions.
Member of the Scrum Team should understand their responsibilities and respect the implicit contract (promises) they have made.
Role Promises The Organization - the team that there are stakeholders (including subject matter experts) who will help when needed
- the team that there are stakeholders (including subject matter experts) who will help when needed
- they will help the Scrum Master in the removal of impediments to the Scrum team’s progress
- the team that they will not change priorities or constraints in the middle of a sprint without team’s consent
- that being on a Scrum team will not hurt the members’ careers
- not to divert team members to other work on a Scrum Day during a sprint
Product Owner - to supply an initial product backlog
- to prioritize the product backlog when needed
- to be responsive to requests for feedback and clarification
- empowered “voice of the customer” will be provided to answer business domain questions promptly (minutes or hours, not days)
- to attend every Review, Retrospective
- not to change priorities or scope during a sprint
- not to direct team members to do work not agreed and planned at the beginning of the sprint
Scrum Master - to keep the team healthy by focusing on the removal of impediments, both internal and external
- to protect the team from external distractions
The Team - that its work will be transparent, that it will make decisions and solve problems as a group, and that no individual team member will be left behind
- to take prioritization and scope from the product owner on the team driving the team based on stakeholders interests
- to use the stakeholders’ time wisely, by focusing on questions that are relevant to the work being done now
- to do quality work the best way they know how within the constraints set forth by the organization
- to deliver demonstrable product at the end of every sprint for review and validation by the stakeholders
- to endeavor to become multi-skilled by sharing and pairing and not relying on experts on the team for specific functions
Team Member - to bring issues, problems, impediments and realities encountered to the team
- to be available and working with the team on every defined Scrum Day of a sprint in which they committed and any required absences will be scheduled before the beginning of the sprint
- to attend every Scrum, Review, Retrospective & Planning Meeting
- to refer any external request that will take more than 15 minutes of Scrum Day time to the Scrum Master
Most devs don't send 'Done' emails... Would you really expect Product Owners to always be checking Azure DevOps (was TFS) or GitHub?
The better approach is:
- If a task/bug came from a client when it is completed, send the 'Done' email to the Product Owner.
- If the task/bug is your breakdown of a PBI (that the developer did to break down a big user story), then only send the ‘Done’ once the entire user story is complete.
Note: Send the ‘Done’ email to the Owner of that PBI.
GitHub Note: If you are using GitHub, you can close the issue with a comment, and @-mention the people you wish to notify - GitHub will then email them for you, assuming they have configured it correctly. This has the added bonus of being visible to everyone else who can see the issue, without needing to CC everyone on your emails.
- Include Task #, Summary, and link to the item in TWA.
- Remember that all your tasks should be under 4 hours
- Follow the Done Email rules
- If you completed the task in a different way than previously discussed, mention it.
- Make sure that every PBI has an Owner as per the rules.
When you complete a task that is part of a PBI you need to send a done email to the Owner of that Story.
You only need to add the Task #, Summary and link to the item in WIWA. Remember that all your tasks should be under 4 hours, do spend lots of time on a Done Email for a Task would be counter productive. Add more information if required, for example you may have completed the task a different way than previously discussed.
Make sure that every PBI has an owner as per the rules.
When the last task/bug of a PBI is complete, you then send a comprehensive done email as per the rules when the story had been completed. Make sure you add a list of all of the Tasks that were completed as part of the story and the Done criteria that you completed.
Here is the Definition of Done we followed:
- Compiled/Built locally
- >30% Code Coverage
- All unit tests passed
Then add an illustration to show this.
This is all designed to help you Scrum Team members (Product Owner, Scrum Master and Team) keep a certain quality bar on completion of each chunk of work. Remember that you are not 'DONE' until your team says you are done.
Something you must do is to conduct an internal ”Test Please” prior to releasing anything to a client. This should be done by someone outside the Scrum Team and as it is a blocking process must be started within an hour and take no longer than 3 hours to complete.
In Scrum, you should conduct a separate “Test Please” for each of the stories. You might be using the same package, but all the bugs and issues found must be rolled up to the Story Owner as they will need to decide on what needs to be done to deliver their User Story.
What happens when you leave all the testing to the end of the sprint? You find things that are not done and you have no time before the Sprint Review to fix them.
Figure: Bad example - if you don’t complete all the tasks the customer will not receive a build in the sprint
One way to mitigate this is to aim for a “ test please ” to occur a few days before the end of the Sprint but you still run the risk of not having enough time to make sure everything is done.
Figure: OK example – Send the “test please” before the end of the sprint so you have time to finish everything
It is preferable to conduct a Smoke Test to make sure that you are comfortable demoing the unit of work you just finished to the customer. One way to do this is to create a Coded UI test for each of the Stories as part of your Definition of Done (DoD) that runs through the functionality you have built.
In this scenario the “ test please ” with the customer happens outside of the current Sprint.
Figure: Good example – Create a coded UI test for each story to prove that it is complete
If you are doing Scrum then you should have a User Story fleshed out with a set of Acceptance Criteria . These Acceptance Criteria are agreed with the Product Owner before The Team committed to the story, and define what the Product Owner will accept as complete. This makes it relatively easy to create some automated tests that test for these Acceptance Criteria and help your Sprint Review go as smoothly as possible.
Any changes found during the Sprint Review get added to the Product Backlog to be prioritised by the Product Owner .
The goal is always to complete Product Backlog Items (PBIs) for the Sprint Review.
Often PBIs grow or change and it does not make sense to deliver what was originally proposed in the Acceptance Criteria.
So think of a way to deliver business value and get it in production, then have a hallway conversation with the Product Owner to see if he agrees with you.
Assuming approval, then adjust some of the Acceptance Criteria, add "v1" to the PBI name and move some of the functionality to a new PBI with the same title and "v2".
- Customer and Contact Form v1
- Customer and Contact Form v2
Note: A common example for when to use this is when the full acceptance criteria of a large PBI (or Epic) would not be attaionable within one sprint, so splitting an Epic into 2 attainable PBIs is a better option.
There are two reasons that a PBI can be removed from the sprint.
- Your team notices that they can’t get everything done, and agree with the Product Owner to remove the PBI.
- At the Sprint Review meeting the Product Owner rejects the story
There are a few reasons a team can find themselves in a position where they can't get everything done.
- They underestimated one or more PBIs
- PBIs were blocked by other PBIs
In all cases, when a PBI is removed from the backlog, it moves back to the top of the backlog and any unfinished tasks left in the sprint are closed. When the Product Owner next grooms the backlog, or during the next Planning Meeting, he may decide to prioritise the PBI high enough to make the next Sprint, but he may not.
At the end of a sprint, if a PBI has not been completed and therefore cannot be marked as done:
- Update the Effort to be just what is remaining
- If there has been scope creep, but the original Acceptance Criteria has been met, it might be a good opportunity to mark it as done and move any scope creep tasks into a V2 of the PBI, which can then be prioritised in the backlog by the Product Owner
Having a rejected Sprint is so rare that you should be hard pushed to find any team that has had one.
If you do then this highlights an underlying communication issue and most likely a lack of participation by the product owner.
If however you do get a failed sprint and the Product Owner is not willing to accept the code that has been written then you need to rollback your source code and put all the Stories back onto the backlog.
Every now and then your clients are going to want to change their priorities and have you work on something which they see as more important than some of the items in your current sprint. Provided that it doesn't have any negative effects overall, there isn't any reason why you can't stick to the "customer is always right" philosophy.
So what will you do when this happens?
- Double check that this new item is more important than the current sprint items (if not add it to the product backlog instead)
- Add the new PBI to the current sprint
- Remove another item of similar size off the sprint and back to the backlog
In the rare case where the entire sprint goal and all PBIs are no longer high priority, you can instead cancel the entire sprint and start again:
- Move any left over work/items to the backlog.
- Send a debrief to the client with a note e.g. As per your request we have just cancelled Sprint five and will start on Sprint six. The remaining items have been moved into the backlog.
- Send a Sprint Forecast for the new sprint
This should only be done in extreme circumstances as it is traumatic to the team.
Team members should always know in what task they are working on and make sure Azure DevOps (was TFS) is up-to-date.
It’s natural that everyone spends some time on grooming, making decisions etc, so it’s not expected that all team members work 8 hours per day on tasks. However, ideally everyone should be doing as many hours as possible.
If they are doing something for the team that is not a team meeting or for a task assigned to them that will take more than 30 minutes, they should create a new task with an accurate original and remaining estimates. When helping somebody else with a task, the team member should create a new subtask to that task to cover their help.
To always know the task you are working on is very important for the Burndown accuracy and also make it easy to check what work has been done and what are the impediments.
Exercise – Click Click Scrum
This exercise uses the VS2010 planning poker deck of cards & TFS
Separate out the cards
Separate out these as Chance CardsFigure: Chance cards Separate out these as Point Cards Figure: Point cards
Sprint Planning (What): 20 minutes Sprint Planning (How): 20 minutes Each Day: 10 minutes ( x 9 days = 90 minutes) Review: 20 minutes Retro: 20 minutes
Total for 1 complete Sprint: 170 minutes (~3 hours)
Sprint Planning Meeting (What)
- The trainer acts as PO and gives PBIs & prioritises them
- Students clarify the requirements of the PBIs (Details, Acceptance Criteria)
- Students do Planning Poker to Estimate
- Students break PBIs into tasks
- Students put estimates on each task (typical times for work in a day e.g 4 hours, 8 hours)
Each Day in the sprint
- Get the students “Click-Click” their fingers instead of doing actual coding
- The trainer deals one or two cards from the Chance Cards
- The trainer looks up the meaning of the cards (see table below) and the trainer makes up a suitable PBI that fits the card and the work the students are doing
- The students add or change work items based on the scenario of the Chance cards
- (If your team is estimating tasks) The team reduces the remaining hours on their assigned tasks, with the assumption that each student works 8 hours
- Do the Daily Scrum (describing their day based on the work they just updated in TFS)
NOTE: It is OK to really code rather than use “Click-Click” development as long as TFS is updated.
The Review Meeting
The PO reviews the work of the team (Note: if all the work was “Click-Click” then review the TFS work items to check that they are entered OK).
Students and PO do a standard Scrum retro for the exercise.
Meaning of the Chance Cards
- Draw a point card
- Add the value to the remaining hours of a task
- Record the impediment
- Draw a point card
- Add a new task
- Set the remaining hours of a task to the value
- Draw a point card
- Create a bug
- Add a task to the bug
- Set the remaining hours on the task to the value
- Halve the remaining hours on a task
- Draw a point card
- Create a new PBI
- Set the PBI points to the value
|| 100 | Task blowout | |
- Double the remaining hours on a task
- Cancel all tasks
- Recycle the PBIs to the Product Backlog
Leaves** | The Team is missing a Team Member |
- Reduce the hours the team works by 8 hours
Leaves** | The Team is missing the Scrum Master |
- The team handles the missing SM
Leaves** | The Product Owner is missing |
- The team handles the missing PO
- The team handles the Stakeholders
Disrupting a team member can affect the delivery of the whole Sprint. Product Owners should always avoid giving tasks outside the Sprint. It may seem to affect just one member, but it does affect the entire project.
With Scrum, the team commits to deliver some set of functionality by the end of each sprint and the whole team is accountable for what they engaged to deliver. Missing a team member, even if temporarily can affect the success of the Sprint, the Scrum Master may recommend removing stories to be delivered. Product Owners must be aware of how Scrum works and understand the importance of keeping the team focused on their tasks.
Team members need to be completely transparent with the Product Owner, the Scrum Master, and the rest of the team. Even if someone offers them a free trip to Iceland, they still need to ask permission from the Product Owner as it can affect the Sprint.
Although the team will always strive to complete all the items on the sprint backlog within the sprint, it’s not uncommon for them to not finish all of them. If this is the case, you want to at least make sure that the PO's (Product Owner)’s most important items are done.
Whenever you are choosing your next task, always work from the top down, only skipping items if there is a dependency or another good reason why a lower item needs to be done first.
As part of the update to the Scrum Guide for 2013, there is a concept of a product backlog being "Ready".
Just like how the team has a Definition of Done as a checklist for completing a PBI, the product owner needs a Definition of Ready to get the PBI in a state that’s ready for it to be added to a sprint. This should be done as part of the refinement (aka grooming) process and will greatly streamline the sprint planning meeting.
A recommended “Definition of Ready” would be:
- Has enough detail for the team to action (usually via good Acceptance Criteria)
- Has Business Value assigned
- Has effort assigned
- Is in the Approved state
Having a clear Definition of Done for your team is critical to your success and quality management in Scrum.
Every team is different, but all need to agree on which items are in their "Definition of Done".
- Sending a "Done" email
- Sending a "Done" email
- Sending a "Done" email
- Recording a quick and dirty "Done Video"
- Code (showing a full scenario e.g. a user story)
Start with these examples showing typical "Definitions of Done" from beginner teams to more mature teams:
- The code compiles
- All tasks are updated and closed
- No high priority defects/bugs are on that user story
- All of the above, plus
- All unit tests passed
- Greater than 1% code coverage (not earth shattering, but you need to start somewhere)
- All of the above, plus
- Successful build on the Build Server
- Git Branch Policies
Azure DevOps Check in Policy - Change set Comments Policy (all check-ins must have a comment)
- Azure DevOps Check in Policy - Work Items (all check-ins must be associated with a work item)
- Code reviewed by one other team member (e.g. Checked by Bill)
- Sending a Done email with screenshots
- All of the above, plus
- All acceptance criteria have been met
- All acceptance criteria have an associated test passing (aka. Automated functional testing with Web Tests (Selenium), Coded UI Tests, or Telerik Tests)
- Tip: Use Microsoft | Azure Test Plans
- Sending a Done email (with video recording using SnagIt)
Figure: Good example - Done video showing the features worked on
- All of the above, plus
- Deployed to UAT (ideally using Continuous Deployment)
- Complex code is documented (removing technical debt)
- Product Owner acceptance
- All of the above, plus
- Multiple environments automatically tested using Lab Management
- All of the above, plus
- Automated Load Testing
- Continuous Deployment
- All of the above, plus
- Deployed to Production
Congratulations! You are frequently deploying to production. This is called “Continuous Delivery” and allows you to gather quick feedback from your end users.
You might have everything deployed to production, but it might not yet be visible to the end user. This can be achieved by having “Feature toggles” in place. The actual release of the functionality is a decision that the Product Owner and business takes.
When you've finished a PBI you should record a video to send to your Product Owner and anyone else that is interested. A 'Done' video is much better than a screenshot because you are proving the PBI workflow actually works. Even better, this video can double as documentation or release notes for your users.
When deciding whether a PBI might be a good contender to record a done video for, consider these factors:
- Is it a key piece of functionality that has high business value?
- Would it be difficult to quickly demo in the Sprint Review without a video?
- Is it UI heavy? i.e. would the video be compelling?
Choosing software to record your screen and camera together:
- Remote recordings: Zoom, or Microsoft Teams via NDI
- Basic recordings: Snagit, Loom
- Advanced recordings: Camtasia
Tip: Camtasia 2021 is recommended because it vastly improves upon 2018 and 2019.
Choosing software to edit your video:
- Basic editing: Camtasia
- Advanced editing: Adobe Premiere Pro, Final Cut, DaVinci Resolve
Here's a quick video describing how to record and edit a quick done video. (Notice how it itself is also in the done video format?)
Figure: How to make a 'Done Video'.
- Introduce the video - start with “Hi everyone, today I would like to show you xxxx”.
- Show the pain - don't just demonstrate your new feature, start by showing the problem you are solving and why you needed to add the feature.
- Record it in one take - it doesn't matter if you stuff up or something goes wrong, treat it like you're having a conversation with them in the room. If it's super bad, just start again.
- Make it quick and easy - if you spend too much time, you will be less likely to want to do it again in the future.
- Be quick and concise - you don't want to waste other peoples' time either!
Use a clean browser - hide visible bookmark bars, browser tabs, add-in icons, and taskbar items to make it easier to view.
- Tip: In Chrome you can use the "guest" profile to open a clean window with no history or cookies.
- Set your screen resolution to 1080p (1920x1080) - higher resolutions (e.g. 4k/3840x2160) will scale down graphic elements and make it harder to view.
- Zoom in to 125% in your browser - as per: Do you make sure your screen recordings are easy to view?
- Record both your screen and webcam - PC and Mac can both use Camtasia (2021 version recommended). For Mac you can use Quicktime, but it’s not as flexible.
Don't edit the video - your introduction and closing should have your webcam on full-screen, and the rest of the video should be your screen with your webcam in the corner (also called a picture-in-picture, or PiP).
- Tip: If you are using Zoom you do not need to edit the video. Zoom includes your face automatically in the screen capture. Awesome!
Check your audio devices - if you have multiple microphones (e.g. headphone/mic set, webcam mic, inbuilt mic, etc.) do a test recording to see which is the best quality.
- Tip: You can use the default Voice Recorder app on either Windows or Mac to quickly record audio.
- Audio needs to be clear and not distracting - if there are lots of background noises it will prevent audiences from focusing on you, as per: Do you record better audio?
- Interact with your webcam like it's a person - look into the camera and smile when doing your introduction and closing for the video!
Tip: Some offices have a professional setup:
E.g. SSW have the Marantz Turret hardware and desktop recording kit. The Turret is an ideal device to record these videos as it has a professional podcasting microphone, built-in light and good quality High Definition video camera.
Learn more about the Turret:Product Review: The Marantz Turret — Wistia
E.g. SSW TimePRO - Power BI Ad-Hoc Reporting:
Figure: A real example of a 'Done Video' with Fades
After recording your video, you need to do some basic sound processing to make the audio awesome.
- In the Timeline, select the clip with the audio
- On the top left panel, click ‘Audio Effects’ and drag the ‘Levelling’ effect onto your clip
- On the timeline, move the new audio meter up just until the audio waveform is about to hit the top
- Listen and adjust as necessary
- With the video track of your face selected, click on Animations (1) . Track 3 in the image below.
- Select the No Opacity (2) animation effect for the fade-out.
- Drag and drop the No Opacity effect (3) to the point in the track where you want to fade-out. Adjust the start and end point of the fade using the handles on the animation arrow.
- Select the Full Opacity (4) animation effect for fade-in.
- Drag and drop the Full Opacity effect (5) to the point in the track where you want to fade-in. Adjust the start and end point of the fade using the handles on the animation arrow.
Follow the steps to export your video:
- Click the Share button on the top right of the window
- In the new dialog, select custom production settings
- In the next window, uncheck the ‘Produce with controller’ option
- In the ‘Video settings’ tab, copy these settings:
- Frame Rate: 30
- H.264 Profile: High
Encoding mode: Quality o Increase the quality to 100%
- In the ‘Audio settings’ tab, make sure the Bit rate is set to 320 kbps
- Click Next and save your file!
When the Product Owner verbally requests a change to a PBI, how do you update the PBI to reflect the change and also keep track of the conversation?
You could send yourself a "To Myself" email and update the PBI description accordingly, but only those people included in the email chain are aware of the conversation. Only send a "To Myself" email when there is no product backlog that is related to the request, otherwise you should create or update a PBI and @ mention the Product Owner and other relevant people (@ mentioned people will still receive an email).
Instead, what you should do is use the discussions feature in the PBI and mention the user using "@<username>".The benefits of using comments are:
- Quick and easy, no need to compose an email
- History is visible to anyone looking at the PBI (with email, if you don’t cc them, they wouldn’t have a clue)
- Easy to see all important notes/comments in one place instead of digging through email
When someone (especially the PO) asks you to fix a PBI, mention that person in the PBI comments so he knows when it’s fixed.
Example: When replying to "Hey XXX, can you please fix PBI 123?"
Bad example: "I have found the PBI and moved it near the top of our backlog"
Good example: "I have found the PBI, prioritized it near the top, and @mentioned you so you know when it is fixed"
Tip: You can @mention on your pull requests as well.
When discussing a PBI/Issue, Pull Request, or a project in general, it is important to do it in the right place.
Sometimes developers need to discuss code implementations - sometimes to improve the code, other times to explain why something was done a certain way.
This should be done in the Pull Request, if possible comment directly on the line of the code change and once resolved, make sure that the important information is captured in the merge's commit description.
As perDo you know when you use @ mentions in a PBI? - Create a new issue mentioning the Product Owner and the related people
Discuss it in the existing PBI/Issue.
Create a PBI/Issue
- use a "discussion" label so that others know that it is just a discussion point and not actionable work yet
- have it checked by the client before publishing it (recommended)
- Discuss it in the discussion tab in GitHub
- In the team channel in Teams
In summary, Email should be the last resort.
Emojis make it easier for people to quickly workout what type of content is coming up and to highlight important stuff. It works nicely for meetings, backlogs, and more.
An easy and fun way to have use emojis consistently in Scrum is to follow the list on scrumoji - An emoji guide for your agile communication.
Tip: Use the "Windows Key" + "." to see the emojis in your screen.
When selecting their tasks, team members should be looking to extend their skills. Scrum encourages multi-skilled workers, rather than having testers, back-end developers, designers etc. In other words, all team members should be able to help completing any task.
This does not imply that everyone is a guru in everything; no doubt some people are especially skilled in a specific area, but team members work together and should be learning new skills from each other.
During task generation and estimation in Sprint Planning, choose something new and ask someone experienced in that area to have a subtask to help you.
This is to make the team multi-skilled and reduce dependencies on individuals.
Sometimes it can be unclear to The Scrum Team whether a PBI can be completed as required. For example the PBI "automatically package with Wise after the automatic build" requires investigation and experimentation to see if this is possible and to provide a meaningful estimate for the original.Figure: Schedule time to dig a little deeper. There's always another layer to uncover
How is experimentation done? In Agile software development, when you have an unknown, you do a spike PBI. A spike is a time boxed investigation with the output being the answer to an experiment or investigation and the resolution of an estimate for the original PBI.
It is then best to write a new PBI “Investigate whether it is possible to automatically build with Wise”. This PBI can be more accurately estimated and the result will allow the original PBI to be estimated or revised.
To embark on the original PBI when it is inestimable would be irresponsible and leave The Team with a potentially impossible PBI and the risk of a failed sprint.
All investigating PBIs must be timeboxed, otherwise the process of investigation can meander and never come to a conclusion.
Note: This gives you work for future Sprints
Tip: There is a further benefit of tagging 'spike' tasks with a consistent label. If your company takes up R & D tax incentives, then you need to be able to query for activities that were 'of an experimental nature'. In Australia this is a 15% credit on each dollar you spend on a developer.
Working together as a team is hard. Especially with the distractions that are around as part of daily office life. You need all three partied to a Scrum Team, the Product Owner, the Scrum Master, and the Team, to work together to achieve the Sprint Goal.
"Scrum defines three distinct roles that must work together as a Scrum team to produce a successful product. The Product Owner is responsible for understanding what stakeholders require, interpreting these requirements for the team, and providing clear prioritized direction. The team is composed of those people actively engaged in building the product. The team collectively and members individually are responsible for building the product according to the priorities and requirements provided by the product owner. The team is completely responsible for deciding how to achieve its goals and how to organize its work. Finally, the Scrum Master is responsible for the health of the process, reporting the progress of the team, and removing impediments to progress."
With these roles come a number of promises between the three parties, the Product Owner, the Scrum Master, and the Team. These promises should be formalized so that everyone knows where they stand.
You do Scrum, but do you use the "Business Value" field?
That's OK, most teams don't... but it is a shame, because developers go to the trouble of estimating 'Effort' and if you have Effort, all you need is Business Value and you can calculate ROI.
Once you have ROI a Product Owner can use the ROI field to sort priority. Awesome.
ROI (Return on Investment) is an unbelievably simply calculation.
ROI = Business Value / Effort
...of course there are other factors to consider.
E.g. Risk, Dependencies etc and you could make the formula more complicated....
Priority = (Positive Value - Negative Value) + Risk + Dependencies / Effort
...but don't bother.
The product backlog is just a list of items with rough estimates of both development 'Effort' and 'Business Value'. You will find that ROI will tell you great stuff. It is especially useful for finding the easy high value items to kick off a sprint.
If it is good enough for developers to estimate story points... then it is good enough for the Business to estimate Business Value. Usually devs will use the Fibonacci sequence, but since it is a good idea that the business guys use the same scale, it is best to switch to the doubling method of estimating - Do you know how to size user stories effectively?
For example, if the "add rich text box" and "add sortable column headings on the grid" have the same business value of 3, the one with the smallest development effort will have higher priority (the ROI is greater).
In summary, the simple calculated field ROI, can automatically order the backlog tasks for the Product Owner, makes estimating Business Value just good sense.
The scrum team needs a place to gather for all the scrum ceremonies. This room should have useful information on the wall to help the team work more efficiently. We recommend having the following:
Note: For co-located teams only.
- Task Board (to show current work in progress)
- The 8 Steps to Scrum PDF (to show how we work)
- The 3 Steps to a PBI PDF (to know the lifecycle of a PBI)
- Product Roadmap (to let everyone know the large future priorities)
- Definition of Done - aka Done Criteria or DoD (the quality that is being adhered to)
Having an electronic task board makes it easy for developers to keep track of tasks.
These are the columns (aka swim lanes) you need:
Near your task board, stick an SSW "Want to submit a User Story?"
- Where to find their project portal
- Who to contact with questions
- How to add tasks to the task board
Print out this PDF and fill in the 2 fields and stick it on own task board.
This is a very common question asked of teams using Scrum. The answer can depend on a lot of things, such as:
- How big is the bug?
- Can it be fixed right now?
- How important is quality to the product?
- Are there dedicated testers as part of the team?
Regardless of your answers, there are basically two types of bugs: those found in code currently being developed (in-Sprint) and those found in code previously thought done (out-of-Sprint).
For stories that are currently in progress, here are some guidelines:
Typically you want to fix all bugs discovered during the sprint or else they could impact the team’s ability to achieve its Sprint goal:
- If it’s a small bug (< 1 hour to fix) and won’t impact the burndown, then just fix it
- If it’s a larger bug (> 1 hour to fix) and won’t impact the ability to achieve the Sprint goal, then create a Bug work item, associate a Task and have a team member perform the fix during the Sprint
- If it’s a larger bug (> 1 hour to fix) and will impact the ability to achieve the Sprint goal, then create a Bug work item to be prioritized (by the Product Owner) and to be fixed in a later Sprint; you may not be able to achieve your Sprint goal
- If another team member finds the bug, then they should create a Bug work item and then the team decides if it can be fixed in the current Sprint or needs to be prioritized (by the Product Owner) to be fixed in a later Sprint, in which case you may not be able to achieve your Sprint goal The team decides how many hours “n” equals
For stories that the team had previously considered done, here are some guidelines:
- If the bug is not critical (i.e. a hotfix), then create a Bug work item to be prioritized and fixed in a later Sprint
- For a critical hotfix, do whatever needs to be done to get the fix into production, knowing that your current Sprint commitments may be impacted Adjust the team’s capacity accordingly, especially if lots of hotfixes start occurring. General tip: don’t create an associated task to fix a bug until the Sprint in which the team commits to fix it
See rule on Do you know how to handle Bugs on the Product Backlog? for how to work with bugs on your backlog.
Part of the Scrum Master's (not ScrumMaster's) role is to protect the team from distractions so they can deliver on their commitments, to ensure agreed process is followed and to help all roles keep their promises.
It is also important that team members do not allow themselves to get distracted and must work based on priority.
Here is a good saying to remember: "It is very important I complete my sprint. Can this wait 1 week until the next sprint?".
Any requests for work or distractions outside the scope of the project that take more than 15 minutes must be declined politely and the distraction notified to the Scrum Master, or, if the request comes from the Product Owner, it can be added as a new PBI as described in https://rules.ssw.com.au/are-you-flexible-with-the-order-you-do-the-work-(i-e-cancelling-a-sprint)
The only exceptions, where a Team Member can start the work before notifying the Scrum Master are:
- Any critical production issues that absolutely requires the attention of the Team Member and nobody else is available
- A client request for work when the Team Member is working on an internal project
- Test please requests, if the total time taken from the Sprint for all Test Please requests is less than 8 hours
In these 3 exceptional cases only, even if the Team Member doesn't get a response from the Scrum Master, the requestor can insist that the member starts the other work immediately.
For details on promises, see the rule “Do you understand the implied contract (promises) between Members of the Scrum Team?”
Pure Scrum dictates that the Scrum Master could be one of the developers on the team, but we find this is hard for a developer as he will be split between trying to do the work himself, while also ensuring that the Team still uses Scrum properly.
We find that a better option is to use a separate Scrum Master so his only responsibility on the project is to ensure Scrum is used well and the Product Owner is informed of any developments.
We all know that a visual image can make a complex process easy to understand. Having a visual image of the Scrum process helps everyone, including the product owner and interested stakeholders, understand the process and make sure the steps are being followed.
Here is an image for your war room wall...
DevOps and Scrum compliment each other very well. Scrum is about inspecting and adapting with the help of the Scrum ceremonies (Standup, Review, Planning and Retro). With DevOps it's all about Building, Measuring and Improving with the help of tools and automation.
With DevOps, we add tools to help us automate slow process like build and deployment then add metrics to give us numbers to help quantify our processes. Then we gather the metrics and figure out what can be done to improve.
For example with Exception Handling, you may be using a tool like Raygun.io or Elmah and have 100s of errors logged in them. So what do you do with these errors? You can:
- Add each one to your backlog
- Add a task to each sprint to "Get exceptions to 0"
The problem with the above is that not all exceptions are equal, and most of the time they are not more important than the planned PBIs being worked on. No developers like working a whole sprint just looking at exceptions. What should happen is:
- Have the exceptions visible in your development process (i.e. using Slack, adding as something to check before Sprint Planning)
- Triage the exceptions, either add them to the backlog if they are urgent and important
- Add ignore filters to the exception logging tool to ignore errors you don't care about (e.g. 404s)
- Prioritize the exceptions on the backlog
The goal here is to make sure you're not missing important and to reduce the noise. You want these tools to help support your efforts and make your more productive and not just be another time sink.
When doing a Spec Review, always bring printed pdf file SSW Story Cards.
- Complete the story card with the client
- Teach the clients how to complete story cards by themselves
- Go to Project Portal (E.g. Azure DevOps or GitHub) and enter the story
- Write the Story ID field on the card
- Stick the cards on the project room wall maximizing visibility