Scrum vs Continuous Deployment or why Scrum falls short for web applications
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.
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!
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)