Scrum is a great framework for organizing projects. It defines exact roles and procedures to structure your work environment. You gain a lot of visibility and you empower your teams. All that is great. But in software development or operations it’s not sufficient. You need an underlying set of values and practices which drive quality and speed.
Scrum is optimized for projects, not recurring work
In every company there are regular tasks like out of band user requests, really urgent bug fixes, the weekly report generation and distribution, etc. Scrum doesn’t really tell you how to deal with those types of issues. They don’t fit into iterations and can’t be put on a backlog. They make it hard for a team to commit to a sprint goal.
Kanban for recurring work
Kanban is all about optimizing flow. Especially recurring issues should be optimized to flow as fast as possible through your organization to minimize impact on project work. That’s where Kanban shines. One option is to organize big feature packages as projects using Scrum and have one or two teams dedicated to ongoing operations using Kanban.
Another important ingredient for a successful software business is to focus on Clean Code. Keeping your software maintainable is one of the most easily sacrificed but also most important factors for keeping speed and quality up.
By combining various agile practices like Scrum, Kanban, and good old Extreme Programming Ideas you can optimize your software process. Focusing on only one of them implies the risk of missing to address critical areas in your organization.