Skip to main content

Sprint Review is not a phase gate

September 1, 2016

The perfect Sprint View is based on the use of production software

Throughout the Agile Alliance 2016 conference, I was struck by a recurring feeling that many people don’t understand what the Sprint Review is. This feeling has continued as more articles and conference proceedings have emerged. Everyone seems to think that you can not release software continuously while doing Scrum. For example, in his keynote titled ‘Modern Agile’,  Joshua Kerievsky described Scrum as old fashioned because of its lack of support for continuously delivering software. He implied that modern approaches remove the idea of a Sprint and move to a continuous flow model. And he says that Scrum does not support the idea of Continuous flow and delivering software frequently.

I want to dispel that myth and highlight why we have a Sprint Review, why you can deliver software to production multiple times (continuously) during a Sprint and how in fact the best Sprint Reviews happen with software in production being used by real users.

Firstly, let’s look at how the Sprint Review as described in the Scrum Guide.

A Sprint Review is held at the end of the Sprint to inspect the Increment and adapt the Product Backlog if needed.

There is nothing stated that the increment can not being production for the Sprint Review.    The Scrum Guide avoids defining what state the increment is in. The state of the increment is defined by the team in their definition of Done. In the training materials used by Scrum.org Professional Scrum Trainers the definition of Done is described as ideally being software running in production. In fact, our Professional Scrum Developer class is all about removing roadblocks to enable software being in production. This focus on really Done software is described in the Scrum Guide when discussing the elements of a Sprint Review as:

Review of how the marketplace or potential use of the product might have changed what is the most valuable thing to do next;

Let’s zero in on why we have a Sprint Review.

At the heart of Agile methods and Scrum is an empirical approach. Empiricism replaces the idea that you can plan your tasks out in great detail, instead focusing the team on building small increments that drive learning and understanding. From that learning and understanding, you can then adapt, which will often cause changes to the work that you do next or how you do it, based on what you have now learned. This is reflected in the product backlog. The bottom line is the Sprint Review provides a structure for inspection and adaption at the boundary of the Sprint. The Daily Scrum provides a daily inspect and adapt loop which is focused on the team. The combination provide a framework for an empirical approach to work.

That means that Continuous Delivery makes perfect sense for Scrum and would be reflected in the Definition-of-Done (DoD). As each Product Backlog Item (PBI) is Done it would enter the release process which would be documented in the DoD. With luck that process would be automated allowing the final stages of the push to Done to comprise a series of automated scripts as the software moved through the staging areas to production. In the case of complex products with multiple teams (dare I say a Nexus), the definition would not only push the PBI to done, but also integrate it with other Done PBI’s.  This can occur many times within a Sprint or once, Scrum doesn’t care, what is important however is that we learn from what we have done, adapt in the future from that learning and deliver value to our users.

Is Continuous delivery mandatory for Scrum ?

The short answer is ‘it depends’. As a software delivery professional you have a number of levers you can push and pull to ensure that you are delivering software of high customer value and low organizational risk. One lever is how frequently you release the software to production or into customers hands (they are not the same thing, the use of feature toggles allow you to release software that is not actually switched on for the customer). How often is determined by understanding value (both material and learning) and risk (how sure do we have to know this works and what is the impact if it doesn’t). The other lever is how frequent you run the team inspection and adaption (also known as the Sprint). If your Sprints are short then you benefit from frequently reviewing your knowledge of the situation which allows you to adapt. But, there is an overhead to that review and that must be balanced with the value you get out of it. Also it is possible that some features still will not have been used by customers, or the stakeholders need longer cycle times to understand what you have delivered which makes for a longer Sprint. Of course in an ideal world it is a choice.  A choice to deliver continuously or less frequently. This however is not the case for many Scrum Teams where ‘DONE DONE’ is a dream, not a reality. And getting software over the production line still requires massive amounts of energy from multiple teams, departments and even external organizations. In those situations the Sprint Review is a review of software running in some pre-production environment, not ideal, but still better than not reviewing it at all. And with luck the organization is reducing the gap between in production and what is reviewed in the Sprint Review.

Conclusion

Ultimately Scrum is about providing a framework that allows explicit decisions to be made with real information. The Sprint Review, like the daily Scrum encourages the team to review what is happening which allows the team to adapt. Continuous Delivery increases transparency and thus improves the ability for the team to adapt based on real information.

 


What did you think about this post?

Comments (12)


Zoran Vujkov
02:53 pm September 9, 2016

Hi Dave

very well said. I agree with you in particular to "Continuous Delivery makes perfect sense for Scrum and would be reflected in the Definition-of-Done (DoD)". and "Is Continuous delivery mandatory for Scrum? The short answer is ‘it depends’". There is no unilateralan solution for every company.


Alan Larimer
01:56 pm September 20, 2016

Excellent article! Although neither placing the Increment in the production environment nor continuous delivery are required by the Scrum framework, they are certainly high-value practices that could benefit many customers and organizations.

Is the image free for reuse? What credit citation is needed? Thank you.


Tim Ottinger
11:03 pm September 21, 2016

"There is nothing stated that the increment can not being production for the Sprint Review" -- might need a little editing.


Joshua Kerievsky
04:58 pm September 28, 2016

Hi Dave, I have probably done over 1000 Iteration/Sprint Reviews, starting in the late 1990s, so I think I know what they are for. And yet my colleagues and I haven't been doing time-boxed Sprint Reviews since 2007, when we abandoned Sprints altogether. Why did we abandon Sprints? Because we found that our focus on customers and their needs was more important than adhering to a 2-week time box. We found that waiting to do a Sprint Review at the end of 2-weeks didn't help us learn fast enough. We found that estimating work to fit into a 2-week time box and then accounting for our velocity wasn't valuable to us or our customers. And we discovered that we could build, ship and analyze results continuously. The rituals around Sprints -- including planning, executing, retrospecting and reviewing work completed -- all of those morphed once we became hyper-focused on experimenting and learning rapidly and delivering value continuously. When we moved from time boxes to continuous flow, everything changed. What we do today looks nothing like Scrum. What so many kick-ass companies are doing in Silicon Valley looks nothing like Scrum. Scrum isn't old-fashioned because it doesn't support continuous delivery. It's old-fashioned because there are far more efficient & effective ways to be agile today. The Agile Manifesto says "We are uncovering better ways of developing software..." That means change is always happening. Processes get sturdier, simpler and more streamlined. For example, Mob Programming has radically changed how teams collaborate, learn together and ship high quality code. It doesn't look anything like Scrum. So no, I don't believe that Scrum is old fashioned because it doesn't support continuous delivery. It's old fashioned because we've discovered faster, better ways to produce awesome results. That's the shift we are now seeing in the Agile community and I'm calling it Modern Agile so people in this world realize that there is far more awesomeness beyond Scrum.


Dave West
08:16 pm September 29, 2016

Joshua,

Discussions like this are fantastic for our industry! And your talk and response brought up some great things to discuss - which I am sure was its intention.

Interesting point that you make when talking about abandoning the Sprint. You said ‘ because we found that our focus on our customers and their needs was more important than the sprint’. Let’s think back as to why we have a sprint and why we didn’t just have a backlog and just take stuff off the top and work continuously. The intention was to provide the group with work that was connected in some way (value, technology, business, for example), provide stability (everything changing means you get nothing complete and you feel disoriented), have focus for business stakeholders and the team and ensure that everyone has a clear plan for this period. The Sprint Review is a way of bringing the right people in frequently to inspect, allowing adaption for the next sprint. Experience would indicate stakeholders are busy and the regular cadence of the sprint provides a great way of getting the right people involved rather than expecting them to always available. Also the Sprint provides some stability for everyone involved, in particular other teams that depend on outcomes from one team to build their stuff or visa versa.

I would add that you should never wait for the Sprint review to discuss, plan, meet and adapt. That is a big point of the Daily Scrum. If you are just going through the motions or asking the “3 questions” during the Daily Scrum, then you are not effectively leveraging it and adding value via it. The Daily Scrum is a place that the Development Team comes together with others including the Product Owner to discuss changes, adapt the plan if needed, etc. This is to ensure that you are delivering the right things, changing as needed to meet your customer needs and meeting key objectives of the Sprint. So, you are right, if you wait for the Sprint Review, you have waited too long, but to not have a Sprint or Sprint Review is missing out as well. Retrospectives, ability to come together with Stakeholders, etc.

Additionally, Scrum is not a process as you know, it is a framework for how you work together as a team or number of teams. That means your references to things like Mob Programming fit very well in Scrum. We are working on a project right now for example where we are running 2 week Sprints and at times using the practice of Mob Programming as a way to deliver on those Sprint Goals. We are also leveraging the Mob techniques to teach other Development Team members to be more well-rounded and learn other parts of the system and ways of developing. So, Mob Programming like many other practices very much fit into Scrum and should be applied as Software Development practice employed when using Scrum.

Bottom line is I would argue that the 1000s of Sprint Reviews that you attended have put in place the maturity / experience where you do all the good things that Scrum encourages without the formal definitions or structure - but of course I am biased :-) and that maybe they weren’t all managed in a way that was adding the most value. That is why you need to be empirical, inspecting and adapting to do what is right for your organization and improving as you go. If we don’t take the time to reflect, we will never improve.

Also, I think it is an attribute of size of the team(s). My experience is that the larger the endeavor the more structure you need. So Sprints provide the minimum rituals necessary to provide transparency across teams.

Finally, I would agree that there is a lot of ‘awesomeness’ beyond Scrum, but I believe that the awesomeness is additive rather than replacing the ideas of Scrum. I agree that Scrum is often implementing in a less than perfect way, but ultimately it strives for many of the same things that you describe in future of Agile.

Looking forward to catching up in New Zealand to continue the discussions in person... :-)


Kurt Bittner
08:32 pm September 29, 2016

Sprint planning can actually help a team using Continuous Delivery. CD is an awesome technique, but it’s easy to get lost in the weeds. It works best when the work on the backlog is very small, ideally at the level of single service or API, or at least at the level of something an individual developer can deliver in a short period of time. When lots of these are needed to implement something that is meaningful to customers, teams can do dark deployments and then toggle features on when they are ready. Knowing when the toggle is ready to flip is the problem - they need a definition of “done” for the user story that aggregates the “doneness” of a bunch of backlog items. How do they know that all the necessary backlog items are even being worked on? It's not impossible to do in a lean flow model but Sprint Planning helps to make sure that the Backlog is ordered in such a way that if developers pull the work in the order of priority the feature will be toggleable when all the related backlog items are done.

Sprint Reviews and Retros are useful to periodically check in to make sure that things went as planned. It could be done continuously, after the Feature is toggled and once enough feedback has been gathered. Does it have to wait until the end of the Sprint? No, not for work that was completed. It’s still useful to have an end of Sprint Review to catch work that wasn’t completed.

Sprint Planning and Sprint Reviews are also useful for communicating with stakeholders, including Ops, when the scope of the change extends beyond the development team. It lets people know what’s coming. Doing Sprint Planning and Sprint Reviews doesn’t mean that releasing is restricted to once a Sprint; it could be happening all the time, especially with releases of very small functionality or dark deployments. Having a synchronization cadence is useful for cases where the development team doesn’t include dedicated Ops-skilled people or there are a broader set of stakeholders (like marketing, for example) who need to understand what's going on but aren't on the dev team.

Admittedly, CD is a pretty advanced skill and a lot of (probably most) Scrum teams are nowhere near having the discipline, skills, architecture, and automation necessary to pull it off. For them, the structure of a Sprint is really useful for establishing and maintaining a cadence for the work. I’ve spoken with more than one engineering director responsible for large SaaS products that tried CD and a continuous flow model and backed off the continuous flow part because once the work was bigger than one team could deliver (i.e. Nexus’ focus) and it became too hard to establish a cadence that synchronized the different teams without the structure of Sprints.

So Scrum and CD are complementary, especially when delivering value to customer requires coordination across developers and teams. That’s really what Scrum is all about anyway.


Joshua Kerievsky
10:06 am October 3, 2016

Thanks for your reply and I also look forward to catching up in NZ.

I agree 100% that regularly reviewing your direction (inspecting) and doing something to improve it (adapting) are essential. I have not found that people do real "inspect & adapt" in stand up meetings. Have you? The vast majority just want to get through the "3 questions" and get back to work. So as usual, not enough inspect and adapt, too much ritual-based, follow-the-process stuff.

It's also true that key players aren't continuously available to review work completed. And it is usually critical to have a regular time for those reviews, so they need to happen via scheduled meetings. But do they need to happen every two weeks, on a fixed Sprint cadence? I think it's more important to have the meetings regularly than to adhere to a strict cadence. I often see teams do a lot of poor quality work when they are rushing to hit a Sprint deadline, even though that deadline is just self-imposed. If they had 2 more days, they could perhaps clean up the tech debt they just produced. Could the review wait a few days? Why not? We have to be very careful of deadlines causing folks to produce tomorrow's legacy problems.

For retrospectives, I find that it's always a challenge to get as many people to come as you'd like. So I'd rather schedule the retros when more folks are available, instead of insisting they always happen at the end of a Sprint. Again, scheduling meetings (for review or retrospecting) doesn't mean to me that I need a fixed-length time box or Sprint.

It's nice to hear that you are doing Mob Programming in your teams. If you talk to the Hunter folks (who originated this practice), they will tell you how much they were able to simplify their process. It has very little to do with Scrum and they are now spread across four teams.

I believe that we may be uncovering better ways of introducing newbies to agility that are largely different from what Scrum says. All of the experience and mistakes I've made (I once thought storypoints and velocity were useful) have helped me see easier, faster, better ways for newbies to learn genuine agility. I think it is an exciting time to see how agile itself can inspect and adapt! I look forward to discussing this with you in NZ.


Alan Larimer
04:09 pm November 18, 2017

"The Daily Scrum is a place that the Development Team comes together with others including the Product Owner"
Yet another fail from the experts regarding the Daily Scrum ( http://www.scrumguides.org/... ), even with the positive and negative changes in the November 2017 version.


Alan Larimer
04:12 pm November 18, 2017

Scrum lends itself to traditional command-and-control, schedule-based project management techniques. It shouldn't be executed this way, but it often is. There is just so much misunderstanding of the framework, even from PSTs sadly.


Another Life
05:30 pm January 30, 2018

I agree with calling out PST @disqus_DSsKVovd01:disqus regarding this statement. The so called experts and leaders who train the future Scrum Masters are creating lap dogs who enable business as usual.


Alan Larimer
01:17 am April 14, 2018

"Continuous Delivery makes perfect sense for Scrum and would be reflected in the Definition-of-Done (DoD)" The purpose of the Definition of "Done" (DoD) is "a shared understanding of what it means for work to be complete." Please explain how it fits and would be expressed in the DoD. It's the same stance that Ilia Pavlichenko couldn't support: http://disq.us/p/1pqzrmf

"Is Continuous delivery mandatory for Scrum?" The answer is "No." https://scrumguides.org
It is not mandatory.


Alan Larimer
04:43 am October 15, 2020

When presented with valid questions that challenge the commenter's or author's beliefs, they often seem to go silent.