Scrum
Scrum is an Agile framework aimed to incrementally deliver value through collaborative work by defining rules, boundaries, roles, and structure for each one and each stage for projects with challenging, complex problems and rapidly changing requirements.
Scrum Origins
The word âscrumâ (and ârugby approachâ) was brought to product development by Hirotaka Takeuchi and Ikujiro Nonaka on their paper âThe New New Product Development Gameâ in the 1986, where they analyzed new approaches that lead them to better understand how can we enhance development speed and flexibility, well-known weak points of old, sequential methods. Ken Schwaber and Jeff Sutherland co-created Scrum based on it (1995) inheriting the Agile philosophy. Later, Mike Beedle wrapped Scrum around XP practices and artifacts (2001).
This paper presents six key characteristics that leading companies had in common:
- Built-in instability. Teams were given great freedom of action and hard, challenging goals. They had more opportunities from which to benefit from. Nevertheless, more options mean more complexity. Also, pressure on individuals increases as they are now (freely) responsible for their decisions. However, such a context is long known for being fruitful for innovation as it pushes human creativity beyond the limits.
- Self-organizing project teams which are identified by three must-have traits: autonomyâfrom top managers and directors, self-transcendenceâmaking them and top managers forget about status quo and recognize that they can always be auto-sufficient, and cross-fertilizationâdue to the fact that cross-functional, multi-disciplinary team members are always sharing knowledge and initiatives when truly working together.
- Overlapping development phases, which âenhance shared responsibility and cooperation, stimulates involvement and commitment, sharpens a problem-solving focus, encourages initiative taking, [and] develops diversified skills.â On the other hand, management becomes more complex and good communication skills become a must-have for everyone.
- âMultilearning,â it happens in two dimensions. One is multilevel learning: the pressure imposed by the challenges and teammates lead everyone to learn more and grow because it is a necessity. The other is multifunctional learning: members from a cross-functional team have the privilege but also the requirement to learn about multiple tools and disciplines. Interactive experimentation also rises initiative and organizational flexibility.
- Subtle control, while top managers give teams great freedom, they provide the âbig pictureâ point of view preventing ambiguity and tension from turning into total chaos. Traditional management is avoided as it impairs or even extinguishes creativity and innovation. Subtle control includes self-discipline control, peer pressureâinstead of âbossâ pressure, and passion/love for what you do. Healthy management control exercises:
- Build balanced teams by selecting the right people.
- Creating an open work environment.
- Make team members to research costumer requirements by themselves.
- Establishing a group performance evaluation & reward system.
- Helping regulate team members working rhythmâspecially at the start.
- Tolerating & anticipating mistakes.
- Make (external) suppliers self-organizing and knowledgeable about our needs.
- (Organizational) transfer of learning to other teams facing new projects or even different divisions. It is appropriate to assigning key members to new projects, so we leverage the accumulation of knowledge, something called transfer of learning through âosmosisâ or to prevent âsilos of knowledge.â It is also key to standardize practices through the whole organization for later projects. To institutionalize lessons learned from success. Yet, excessive institutionalization can be bad. Unlearning lessons when required by environment changes is crucial to keep a realistic, up-to-date organization culture.
Observed limitations and undesired effects:
- Remarkably more effort is required on the part of team members in order to execute such speed and complexity. People may suffer from more stress and tension.
- May not apply for long-term revolutionary innovations, that kind of projects may require more rigid team structures and less volatile processes and practices.
- May not apply for extremely large projects involving multiple divisions or organizations. Coordination, face-to-face communication, and speed can get hurt by the projectâs scale.
- Does not apply for one-man âteamsâ where a single in charge âgeniusâ develops the project to then define strict and specific orders for the people âbelowâ to follow.
More at The new new product development game (paper, damiantgordon.com).
Scrum Philosophy
Scrum is supported by three pillars:
- Transparency: in order to avoid misinformation, misunderstandings, and rise collective ownership, we shall keep information always available and accesible for everyone, such as practices, progress, problems, and any other relevant content.
- Inspection: we shall have self-critic and discipline in order to spot potential issues by periodically reviewing the produced work, monitoring the effectiveness of our practices, and the smoothness on each step of the process. Empiricism is the key mindset.
- Adaption: whether it comes from customer needs, consumer trends, economics, etc., or introduced by ourselves, change is inevitable and we need flexibility in order to deal with it; we shall accept context-imposed changes as well as promote our own ones when appropriate.
With no trust, scrumâs efficiency is not low, it is zero. (Me)
These pillars stand on a single foundation:
- Trust: programming is a team effort; every team member is treated as someone independent and accountable; we believe on each otherâs talent and knowledge; to collaborating with efficiency it is essential to build strong relationships; with no regards to positions, titles, status quo, etc., we recognize each personâs capabilities to add value on their own.
Scrum values, traits a team needs to have success:
- Commitment: to overcome any difficulty and achieve the teamâs defined goals.
- Focus: on prioritizing and delivering only the value thatâs been required.
- Openness: to be transparent about requirements and emerging challenges.
- Respect: to recognize and appreciate every team memberâs capabilities.
- Courage: to be determined and brave to face the complex and unknown.
How to Scrum
Scrum is not a silver-bullet. It does not bring success ⌠The effort is great and those that succeed will be in the minority. (Ken Schwaber, co-creator of Scrum)
What the Scrumâs âguideâ looks like:
- At least three roles are defined: Product Owner, Scrum Master, and team member.
- The Product Owner is the one who brings required features and their priorities as user stories, which will be put in the product backlog.
- The software is build through sprints. Each sprint starts with a sprint planning to choose which features will be built, these features are moved to the sprint backlog.
- Every day the team holds a short, face-to-face meeting, the Daily Scrum to update the progress, report difficulties and, if needed, ask for help.
- The Scrum Masterâs responsibility is to ensure the project runs as smoother as possible helping other team members address their issues. He also facilitates the teamâs meetings such as the sprint review, where the team demonstrates the product to the product owner at the end of each sprint, after that, the team also holds a retrospective meeting to reflect about learned lessons and ways to improve.
Not every company is ready to give up command-and-control [practices]. (Learning Agile)
However, as any other method, Scrum does not fix chaotic circumstances; a guide is not enough; in order to succeed we need self-organization, collective commitment, and a lot of effort.
Scrum Roles
Development Team
(1) Teamwork is the ability to work together toward a common vision. The ability to direct individual accomplishment toward organizational objectives. It is the fuel that allows common people to attain uncommon results. (2) Teamwork appears most effective if each individual helps others to succeed, increasing the synergy of that team; ideally, every person will contribute different skills to increase the efficiency of the team and develop its unity. (Andrew Carnegie, 1835-1919)
A unit of cross-functional, self-organized people that produces value as software. Once itâs definedâby the Product Ownerâwhat will be delivered within the next Increment after each Sprint Planning, the Development Team is fully committed to meeting the goals, one at at time, without losing its focus. In Scrum no one has the authority to interrupt or interfere their jobâunless the Product Owner decides to abort the Sprint.
The Development Team is responsible for having all of the skills it takes to decide what will they work on; how will they do it; and finally get it done by themselves. In case they lack tools or knowledge, they are also accountable for acquiring whatâs needed to: break down requirements into technical tasks; and turn these tasks into the working product both users and customers expect. All of this while adhering to the acceptance criteria defined by the Product Owner.
A team should have a size of 5 to 10 people. Experts say 7 is a perfect number. Small teams may have a hard time trying to cover all of the roles and requirements in a coherent period of time, while on the other side, large teams hurt their productivity due to the raised level of complexity they deal with when it comes to work coordination and synchronization.
Product Owner
The Product Owner is accountable for the content and priorities of the Product Backlog by being who exclusively owns it. Any change made to the Backlog by someone else must first be accepted by the Product Owner as she is the only one given with such authority to do so; moreover, she is on of the only persons who can take the decision of cancelling a Sprint.
This role is covered by only one person intended have the best understanding of the project goals by keeping key user concerns in mind in addition to her main job as a business stakeholdersâ representative. Her commitment is to give the project a purpose by defining its value.
The Product Owner establishes what is to be done next by choosing which Stories are to be moved into the Sprint Backlog during its Planning. She does research to align business requirements with user needs and gives clarity to the Team communicating the details on a daily basis for keeping the requirements up to date and validating their implementation if done rightâor bouncing it back giving immediate feedback in case itâs not acceptable.
See also:
Scrum Master
Practices in the absence of principles are often inappropriately used. (Agile Project Management, Jim Highsmith, 2009)
The Scrum Master is a servant leader who coaches the Team and helps it remove any roadblock through the entire process. This person is well versed about Agile and Scrum and facilitates every Scrum event. The Scrum Master helps the rest of the team solve their problemsâwith as little help as possible so they remain auto-sufficientâas well as to keep focused with the big picture in mind. This person is also facilitates the job of the Product Owner helping him or her define targets and create clear yet concise Backlog items.
To have an average knowledge about Agile or Scrum is fine except for this role; he or she is proficient and advocated to the Scrum approach; mentors and educates about it when needed. The last person expected to do âmechanical Scrumââjust following the guide while ignoring its foundations and mindsetâis the Scrum Master. He or she must be a good example. Some people may not feel confortable with this role, it demands constant determination and initiative while being under a considerable load of exposure and responsibility on a daily basis.
Scrum Events
Sprint
Scrum is a nicely balanced, counterintuitive mix of both âno pain, no gainâ and âwork smarter, not harder.â
Scrum projects run among the chaos, uncertainty, and complexity of unpredictable contexts, which seems to be productive, the more difficult the job, the more we learnâand that is quite a filter for the ones who like to face challenges from the ones who doesnât. Moreover, we know that there is no remedy for such circumstances. Itâs not possible to eliminate that complexity, however, it is possible to break it down into simpler parts, Sprints are that kind of parts.
(1) âSprint is the term used in Scrum. I dislike the term because it implies running as fast as possible. A software project is a marathon, and you donât want to sprint in a marathon.â (Robert C. Martin, Clean Agile, page 23, 2020) (2) ââSprintâ is a misleading name. Software development is more like a marathon than a series of sprints. You need to work at a pace that you can keep up indefinitely.â (James Shore, The Art of Agile Development, page 187, 2022)
A Sprint (or Iteration in XP) is the fixed-length event in which value is defined and produced through all of the other events. It must take no longer than 30 daysâoften run in periods of 2 weeksâand is chained one after another. At the end of this event the product will gain a measurable enhancement, getting brand new features, improvements, bugs fixed, and more; whatever aims at the problems we need to solve firstâas per business stakeholders.
The very first Sprint is often called Sprint Zero, of course it wonât produce nor add ânewâ value, instead, it is used to elaborate the initial and overall planning for the whole project (which can be considered an homologous of the Planning Game in XP).
A less popular kind of Sprint is the Hardening Sprint (or Sprint H). It is exclusively dedicated to fixing critical, complex bugs or making high priority, non-functional improvements. Is does not add new features but enhances the productâs stability, reliability, or performance.
See also XP, Iteration (leaf).
Sprint Planning
It is the starting event of every Sprint in which we define what will we work on and (partially) how will we do it. Its constrain is to last up to 8 hoursâoften 2 hours are enough. First, we (including the Product Owner) need to define what it is to be build, the Sprint goal. Then, the Team decides how will they build it. Of course, plans are not fixed nor expected to be perfect at all; changes mayâand certainly willâoccur as is the nature of any Scrum project.
See also XP, The Planning Game (leaf).
Daily Scrum
â[A daily] does much more for [us] than just capturing information ⌠It makes everyone say it front of everybody else. That way everyone listens to what others are doing and they can [immediately] offer help ⌠It makes everyone [expose] issues face to face to their management. This forces everyone to have courage and to be honest, [which puts pressure on management too]. It also makes everyone promise in front of everyone else what [they] will be working on ⌠It puts everyoneâs credibility and trust to test. Scrum is about deep social interactions that build trust among team members.â (Agile Software Development with Scrum, Understanding Scrum, 2002)
The Daily Scrum is an event run by and for the Development Team to inspect the progress toward the Sprint goal and adapt to new conditions whenever itâs necessary. In Scrum this event is timeboxed to 15 minutes. Neither the Scrum Master nor the Product Owner are required to attend, however, it is the Scrum Master who usually participares and help to facilitate it and keep the overall focus.
Read (more) notes at XP, Stand Up Meeting (leaf).
Sprint Review
finishing the sprint, an informal product review (demo) by external stakeholders, with dev team and external stakeholders, to: 1. current state 2. next targets, a bit of (pre)planning, review prioritization, upper/lower priorities, an opportunity to get lessons learned.
Sprint Retrospective
lessons learned an evaluation similar to the review, but instead of centered in the team and the work instead of the increment and the projectâs backlog inspect and adapt to become more efficient all members are required to attend three targets: 1. what is right, 2. what could be done differently, 3. what to commit to changing (processes, practices, tools, and more) timeboxed to a ratio of 1 hour per 10 days of Sprint
Scrum Artifacts
Product Backlog
The Product Backlog acts as a To-Do list for the development team. As said before, itâs owned by the Product Owner but can be updated by anyoneâas long as the Product Owner permits it. It works as the source of truth for what needs to be done: business/system requirements; User Stories; enhancement request; reported bugs and any other valuable idea.
The Product Owner is responsible for setting the priority and the order of its items. The more refined items are moved to the top, these tasks are highly implementable as they are already clear and well understood by everyone. Items closer to the bottom are the opposite, they cannot be implemented until they get reviewed and broken down into more detailed and simpler ones.
See also User Story (leaf).
Product Backlog Refinement
Product Backlog refinement or brooming is to⌠estimating, adding or removing, decomposing, to clarify the big-picture for a smoother planning and execution by the PO and dev team, it can happen as a single event or be segmented into multiple instances during the Sprint, no more than the 10% of the time available for working by the dev team (capacity),
Sprint Backlog
A Product Backlogâs subset of items to be implemented on the running Sprint.
Increment
An Increment is the actual working software produced during a given Sprint.
Reference:
- Control Chaos (controlchaos.com).
- Software Developer Learning Path (scrum.org).
- Scrum (wikipedia.org).
- Software Engineering, Agile software development (page 56).
- The 2020 Scrum Guide⢠(scrumguides.org).
- What is Scrum? (scrum.org).