A good way to make predictions is to recognize current trends and then extrapolate them into the future. The longer the trends, the more confident you can be about the predictions. Thinking about software development processes, we see two long-term paths that software development has taken. These paths are the basis of both our joint prediction for the coming year and the kind of holistic consulting we will focus on in 2015.
The path some have taken has been moving from one lifecycle process to another, each containing a set of prescribed practices. These, in rough order, are waterfall, spiral, controlled iteration/RUP, Xtreme Programing, Agile, and DevOps. We may have missed one or two, plus some of these have several flavors. It is fair to say that in some ways each process has emerged based on lessons learned — what works and what doesn’t — from its predecessors and so there has been evolution of sorts. What these processes have in common is that they have or had a set of adamant practitioners whose mantra is “Trust the process. If you follow it correctly it just works. If you are not getting good outcomes, you are not doing it right.”
There is another, parallel path some in our field have been taking: The borrowing of operational and management techniques from adjacent fields. These include standard project management (critical path analysis, earned value management) from civil engineering; system thinking from system engineering; lean (Kanban, value stream mapping) from factory operations; measurement from 6-sigma; predictive analytics from decision analysis; and software economics (capitalization, cost/benefit analysis) from economics. And recently, Donald Reinertsen has continued this trend by comparing development to both the Internet and autonomous military teams to develop 175 principles. Over the years we have been learning how software differs and how it is similar to the adjacent fields from which these techniques have been borrowed. The mantra of the people who promote these principles is “Understand and internalize the principles and apply them intelligently to software.”
One disadvantage of the first path is that it is too prescriptive. There is enough variation in software development that blindly following even a sound process will often, but not always work. A weakness of the second is that it asks too much of the practitioners. Software developers want to develop software, not become experts in all these fields so they can pick and apply the right principle.
So now the prediction: We predict these two paths will converge. As our field matures, we will have to adopt and apply the lessons learned from the adjacencies. There is too much wisdom there to ignore. At the same time the need for prescriptive guidance will not go away. So a new kind of prescriptive framework will evolve, one that is more menu-driven, reflecting the variations of software development. This framework, a mashup of the lessons learned from the adjacencies, will provide a way to input the characteristics and challenges of your development effort and provide guidance on which practices to consider and how to apply them. This framework might not be fully in place by the end of 2015, but we will see an acceleration of the confluence already taking place. For example, in 2014 we have seen some movement in applying lean techniques to agile and devops. There are other examples involving systems thinking and analytics filling in the gaps of agile. These convergences will continue in 2015, setting the groundwork for a fully integrative framework to emerge in 2016.
[Editor’s Note: This post is part of the annual “Cutter Predicts …” series.]
Don’t miss Israel Gat and Murray Cantor’s workshop “The Best of All Worlds: An Integrative Framework for Software Development” at Summit 2015, where they’ll flesh out this prediction and help you see how this integrative framework, coupled with the iterative nature of Agile that makes data-driven learning — and reacting — possible, sheds light on the opportunities for your organization to develop better software.