DevOps Zone is brought to you in partnership with:

Matthias Marschall is a software engineer "Made in Germany". His four children make sure that he feels comfortable in lively environments, and stays in control of chaotic situations. A lean and agile engineering lead, he's passionate about continuous delivery, infrastructure automation, and all things DevOps. Matthias is a DZone MVB and is not an employee of DZone and has posted 38 posts at DZone. You can read more from them at their website. View Full User Profile

Scrum vs Continuous Deployment or why Scrum falls short for web applications

  • submit to reddit

Product development needs consistency

The basic idea of Scrum is to create a safe and change-free environment to enable a team to concentrate on the planned development tasks. The team plans out a sprint of typically two weeks and the idea is that they work uninterrupted during this period. This process really helps to get things done. It avoids the “new == important” trap where everyone thinks that this new idea is much more important than the one they came up with a month ago. Feature development needs consistent priorities to be successful.

A web application is a living beast

Fast forward to running and maintaining a successful web application. Thousands of users hammering it, finding bugs, making it creak under load, and even abusing it. There is constantly something to deal with by your technical team. They need to stop spammers, fix critical bugs, and optimize slow database queries as fast as possible. None of these issues can wait for the next sprint of a Scrum process.

image by InAweofGod'sCreation

Scrum is too slow for running a web application

Scrum enables you to deal with changes in priorities and to release new features every two or four weeks. For developing desktop applications (like embedded software or mobile apps), releasing every two weeks is already a great achievement. But, I’ve yet to see a web application, which doesn’t need one or two releases per week.

Web operations demands continuous releases

If your development team is currently split into silos and customers don’t see new features for months, consider introducing Scrum. It will help you to break down silos and build real teams where people take responsibility and start working together. And, it will make your users happy since they start seeing valuable stuff every two weeks.

But, don’t stop there. Be aware that even two week learning cycles are pretty long for today’s web business. Users are only one click away from your competitor. Keep them happy by constantly optimizing your product. And, of course, Scrum will not help you in dealing with everyday issues. Make sure you have an additional process like Kanban to deal with those. Otherwise, Scrum might fail and your trip to becoming more agile and productive is suddenly over.

What is your experience with introducing Scrum for developing a web application? How do you deal with the constant flow of things which need to be done? Let us know in the comments!

Published at DZone with permission of Matthias Marschall, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Muhammad Faiz replied on Fri, 2012/04/13 - 9:38am

I’d argue that in the extreme you could follow Scrum and do daily releases. Why not? There is nothing in Scrum that defines a minimum time period. You meet in the morning to decide what is getting done that day. By the end of the day the new code is deployed.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.