DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
  1. DZone
  2. Culture and Methodologies
  3. Agile
  4. The Increment Is Dead

The Increment Is Dead

With DevOps and Continous Deployment as the heir-apparents to Agile frameworks and Sprint cadences, maybe it's time to rethink the value of Sprints.

Yuval Yeret user avatar by
Yuval Yeret
·
Oct. 08, 18 · Opinion
Like (3)
Save
Tweet
Share
6.99K Views

Join the DZone community and get the full member experience.

Join For Free

The Increment Got Us Here

If you're a veteran of the software industry, you probably remember those days where we released to production/GA every couple of months. Heck, many of the companies I meet these days still work that way.

If you're also an experienced Scrum practitioner, you probably associate the time you started to use Scrum with the time you started to release more frequently. The Increment that had to be potentially releasable caused you a lot of pain as you were trying to improve your processes and capabilities, implement Continuous Integration, and finally gain the ability to actually have a releasable Increment each Sprint. You were pretty proud.

Transcending Scrum and the Increment?

But these days, as people talk more and more about DevOps and Continuous Deployment, you might be thinking that since Scrum is focused on Sprints, you need to transcend Scrum in order to keep up with the industry and the need to release more often. You start to look at approaches such as Flow and Kanban that are continuous in nature.

Before you recycle your copies of the Scrum Guide — can I ask you a couple of questions?

The Need For Continuous Deployment

The first question is why do you need Continuous Deployment? Does your Product Owner really see a business need to deploy more often than every Sprint (which is always up to 30 days and more frequently these days, more along the lines of 14 days)? If you are like most of the Scrum practitioners I'm working with, the answer to that is "Not really." Even cloud/SaaS/internet-based companies typically don't see a need for releasing new features to market more frequently than every 15 days.

So, why the need for Continuous Deployment?

Scrum theory helps us out here. The reason is empiricism. In contexts of growing business and technical uncertainty, those with the fastest feedback loop win. And the feedback loop should provide REAL transparency to the usefulness of the products we build so that our inspection and adaptation is based on what users really think of the product we're building. When we say "working software" in the Agile Manifesto, we don't mean just, "It is working and we tested it and meets our acceptance criteria and our definition of Done." We also don't mean just, "It is working and we demonstrated it to internal and even external stakeholders and got their feedback." These are nice levels of transparency that are much better than just reviewing documentation, of course, but they leave a lot to be desired

What We Really Mean When We Say Working Software

They aren't as good as, "It is working, we actually turned it on for some users and they've been using it as part of their real flow of work, and we can inspect how useful it really is for them." The last one is what real transparency is about. And classic teams only get to that level of "working" pretty infrequently. Their real feedback loop takes weeks if not months to close. Their level of empiricism leaves much to be desired.

The real reason for moving toward Continuous Deployment is actually to address this issue. To enable much more frequent transparency of how our product is really doing, and enabling inspection and adaptation on a daily and maybe even hourly basis by those developing the software/product.

Continuous Deployment with Scrum and Kanban

In Scrum terms, Continous Deployment happens during the Sprint, where we can have as many mini-increments as we want deployed throughout the Sprint, with the purpose of helping the Scrum Team optimize the value it delivers with its Releasable Increment that is available at least at the end of every Sprint. Yes, they could also release some of those mini-increments for the purpose of actually delivering customer value, but most of the time, the purpose would be to inspect and adapt in service of empiricism.

Moving to multiple mini-increments inside the Sprint doesn't change Scrum in any way. This is actually just a more professional instance of Scrum that more and more Scrum practitioners should strive for. The Sprint-level events are still as valuable as ever for inspecting and adapting the Product and the Process. The roles are still as valuable as ever. If anything, it might be even more important to have a Product Owner that focuses the Development Team on the mission/goal, being open about the fact that there are some hypothesis-level assumptions that need to be validated by building some product and running some experiments, and respecting the developers and trusting them to figure out how to achieve that mission/goal by running fast feedback loops that include actual experimentation, inspection, and adaptation. In order to scale, the Product Owner needs to have the courage to let the Development Team run some of those experiments on their own. They can all review these experiments and the resulting Potentially Releasable Increment as part of the Sprint Review. The review will not be just a demonstration of working software but also inspection of analytics from real usage.

The Real Role of Kanban — Complementing Not Replacing

Where Kanban/flow comes handy is not in replacing Scrum but in managing the flow of these intra-Sprint feedback loops more explicitly and helping the Scrum Team identify bottlenecks, constraints, and impediments on their way towards this type of flow.

The Role of The Sprint

A lot of people see the Scrum Sprint as mainly a release cadence. The Scrum Sprint is first and foremost a Planning, Transparency, Inspection and Adaptation cadence. Not the only one, but a major one. Can it also be a release cadence? Of course. But it doesn't have to be. Releases can happen within the Sprint or beyond the Sprint, depending on the business need. Having said that, even if you're continuously deploying in order to close fast intra-sprint feedback loops, you might decide to release every Sprint or beyond the Sprint.

Great Scrum Teams plan on a cadence. They deploy continuously. They release on demand.

Rumors of My Death Have Been Greatly Exaggerated

So, actually, the Increment isn't really dead. It's just evolving and improving. The Sprint isn't dead, it is as important as ever, if not more so. And Scrum isn't going anywhere either.

To learn more about how professional Scrum teams think about flow and Continuous Deployment, join an upcoming Scrum with Kanban workshop.

This article was originally published on the AgileSparks Blog.

scrum Sprint (software development) Continuous Integration/Deployment agile Release (agency)

Published at DZone with permission of Yuval Yeret, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • 7 Awesome Libraries for Java Unit and Integration Testing
  • Agile Transformation With ChatGPT or McBoston?
  • The 31 Flavors of Data Lineage and Why Vanilla Doesn’t Cut It
  • Deploying Java Serverless Functions as AWS Lambda

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: