August 30, 2011
Complexity is the nemesis of application developers everywhere. While software products' complexity may be, to a great extent, unavoidable, we don't have to complicate software development to match it.
That's the conclusion driving many of the new approaches that app dev teams are embracing. For example, Agile breaks down humongous, complex projects into incremental deliverables that are far easier to scope, build, test, and deliver. Lean practices simplify processes, making it easier for teams to achieve a state of flow. DevOps advocates are trying to eliminate the needless complexities that result from throwing software over the wall from one team to the next.
But there's more to Agile, Lean, and DevOps than just a common enemy. It's no accident that practitioners often speak of this trio in practically the same breath. The Kanban board is the symbol of this convergence of practices. Here's an increasingly common use case: an Agile teams uses a Kanban board to manage work with other groups, including the DevOps team.
The evidence for this convergence is more than just anecdotal. When we survey app dev professionals, they report that they're mixing methodologies all the time, including Agile and Waterfall. For a variety of reasons, Agile teams have made the adjustments necessary to accommodate Waterfall. Not every planning activity at the beginning of a project can be handled in a strictly Agile fashion, and not everyone involved at the end of the project (release management, operations, and business users) is necessarily sold on the idea of rapid, continuous delivery. If you work in a regulated environment, you're required to take extra steps at the beginning and end of a project.
Water-Scrum-fall, as my colleague Dave West has defined it, may be a regrettable necessity, but it has had one unintended benefit: giving teams experience in how to mix and match methodologies. When they have the opportunity to try out approaches that they find more appealing, such as Lean and DevOps, they're that much better equipped to be eclectic.
During the Application Development And Delivery Forum next month (September 22 and 23 in Boston), Dave and I will discuss the reasons why, if complexity is the disease, the cure is a cocktail of Agile, Lean, and DevOps. We'll talk about how these three methodologies complement each other and why top-notch app dev teams treat all three as parts of the same larger solution.