Chapter 4 - Scrum
Scrum Project Management
Scrum is an agile process that allows for focus on delivering the highest business value in the shortest time. It allows for rapid and repeated inspection of actual working software (every two weeks to one month).
The business sets the priorities. Teams self-organise to determine the best way to deliver the highest priority features. Every two weeks to a month, anyone can see real working software and decide to release it as is, or continue to enhance it for another sprint.
Scrum projects make progress in a series of iterations called sprints. Typically, the duration is two to four weeks or a calendar month at most. A constant duration leads to a better rhythm. The product is designed, coded and tested during the sprint.
A list of user stories
A list of tasks to be completed during the sprint. Can be discussed in the daily scrum
Changes during a sprint
There are no changes during a sprint. Plan sprint duration around how long keeping change out of the sprint can be committed to.
Sequential vs overlapping development
- Define the features of the product
- Decide on release date and content
- Be responsible for the profitability of the product
- Prioritise features according to market value
- Adjust features and priority every sprint as required
- Accept or reject work results
- Decide if increment will be released
The Scrum Master
- They oversee the process, and make sure that it is running smoothly
- They are not concerned with people management
- Represents management to the project
- Responsible for enacting Scrum values and practices
- Removes impediments
- Ensure that the team is fully functional and productive
- Enable close cooperation across all roles and functions
- Shield the team from external interference
The Scrum Team
- May range from three to nine people.
- Cross functional - programmers, testers, UI designers.
- Members should be full time. (full time working on that project, however sometimes a database administrator might be shared across teams)
- Teams are self organising. They decide how they will do the work.
- Sprint Planning
- Sprint Review
- Considering how well the customer's requirements were met
- Getting product owner's approval for shipping/deployment
- Sprint retrospective
- Daily scrum meeting
- Letting fellow team members know how they are getting on.
- A commitment. You would be expected to work on what you say you were working on.
- Product backlog
- Sprint backlog
- Burndown charts
Time boxed to a maximum of 8 hours for a one month sprint, and less than this for shorter sprints. The team selects the highest priority items from the product backlog they can commit to completing.
Sprint backlog is created:
- Tasks are identified and each is estimated (1-7 hours)
- Collaboratively, not done alone by the Scrum Master
High level design is considered in the sprint planning stage.
The daily scrum
Daily, 15 minute stand up meetings. They are not for problem solving. Everyone is invited, but only the scrum team must attend. Only the scrum team, the scrum master and the product owner can talk during the meeting. These are called the Pigs, others are Chickens. This helps to avoid other unnecessary meetings.
Everyone answers 3 questions. They are not just to tell the scrum master the status of the work. They are commitments made in front of your peers, as social commitment is a very strong motivator.
- What did you do yesterday?
- What will you do today?
- Is there anything in your way?
The scrum meeting should be held in the same place at the same time every work day. The daily scrum is best held first thing in the day so that the first thing team members do on arrival at work, is think about what they did the day before, and what they plan to do today.
All members are required to attend, but if they cannot, the absent member must attend by phone, or by having another member report on the status of the absent member on their behalf.
Team members must be prompt. The scrum master starts the meeting at the appointed time, regardless of who is present. Any team member who is late, has to pay or serve a fine of some sort. The scrum master begins the meeting by starting with the person to his left, and proceeding around the room until everyone has reported.
Team members should not digress beyond answering these three questions into issues, designs, discussions of problems or gossip. The scrum master is responsible for moving the reporting along briskly from person to person. During the daily scrum, only one person talks at a time. That person is the one who is reporting his status. Everyone else must listen, there are to be no side conversations.
When a team member reports something that is of interest to other team members, or needs the assistance of other team members, an team member can immediately arrange for all interested parties to get together after the daily scrum to set up a meeting.
Chickens are not allowed to talk, or otherwise make their presence in the daily scrum meeting obtrusive. They stand on the periphery of the team, so as to not interfere with the meeting. If there are too many chickens, the scrum master can limit attendance so that the meeting can remain orderly and focused. Chickens are not allowed to talk with team members after the meting for clarification or to provide advice or instructions.
Common problems of Scrum meetings
- Implicit impediment
- Listen to everything; sometimes someone mentions an impediment but doesn't identify it as such
- Side discussion
- Ask people to listen when they are not speaking
- Ask people to summarise more quickly
- Sidetracked meeting
- Ask people to have a meeting immediately afterwards for people who care about the topic
- Observer who speaks
- Remind them that they are an observer
- Late arrival
- Charge them £1 if that's what your team does.