Even before written history, mankind has followed methods to invent, build, and use tools. As our tools have evolved so have our methods, and in today's software industry there are lots of articulations and communities built around software development methodologies. Despite the zealous beliefs within some of these communities, no single method is the silver bullet or the one truth from which to engineer and craft software in all contexts.
Methods continue to evolve and new methods continue to be discovered. This is a serious challenge facing software development professionals and organizations wishing to adopt them. Especially as market aspirations of various method communities create factions and lots of "us vs. them" rhetoric. This splintering causes confusion and waste. Our industry needs integration not isolation of methods.
Recently my colleague Mark Kennaley did some research on the history of software engineering methods. A diagram of this analysis is depicted in Figure 1.0.
Figure 1.0 – SDLC 3.0
Clearly from the diagram depicted in Figure 1.0 one can see, that much like branching of code versions, this space is a configuration nightmare. We need to rebase the methods in our industry and drive towards a new consolidated frame of reference.
A significant industry initiative is underway to achieve just this. The Software Engineering Methods and Theory organization (SEMAT.org) has made a call to action that intends to, "refound software engineering based on a solid theory, proven principles and best practices". I attended the historic kick-off in Zurich, where Richard Soley, Chairman and CEO of the OMG, in his opening address stated if "SEMAT defines the N+1 method it has failed". Soley made it clear that SEMAT needs to integrate all methods and prior experience in software development into a new industry standard.
Granted this is no small undertaking and various critics are already taking shots at the effort. However, there is an undeniable growing need to tackle this problem in our industry. In January, Kennaley published a new book that made some big steps in this direction, titled: SDLC 3.0, Beyond a Tacit Understanding of Agile. SDLC 3.0 addresses some of the large scale concerns related to the integration of methods.
In the first few chapters in the book, Kennaley gives the reader a deeper understanding of the roots of Agile and explains why Agile works as most of us tacitly know to be true. Chapter three boils down Control Theory to a mere forty pages and provides a mathematical foundation for how control naturally occurs in an Agile project. Chapter three was not a quick read for me, and I only recommend the later half of this chapter for methodologists and researchers.
Kennaley outlines ten guiding principals for a new generation of software development methods. Two key principals among these are: Integrated and Evolving. SDLC 3.0 attempts to establish a new baseline among the configuration nightmare found in today's software processes. This integrated baseline in not the end state but a new starting point, from where SDLC 3.1, 3.2, 3.x, and even a 4.0 will emerge and evolve.
In the book and as can be seen in the history of software engineering methods diagram, there are three significant method streams that need to be consolidated, Unified Process, Agile, and Lean. In chapter five which starts with a picture of the United Nations building, Kennaley uncovers the common ground between these methods and identifies a set of distinct practices that each stream has to offer. This theme is continued in chapter six, where he outlines the significant contributions from Lean, Agile, and UP.
The last few chapters are focused on scaling these consolidated industry practices to meet the specific needs of an organization and how enactment technologies can be used to enable organizational agility. Many of us have heard the term, Agility at Scale, this book lays some of the groundwork required to achieve it. SDLC 3.0 is filled with pictures and diagrams that show practice architectures, value-stream maps, enactment blueprints, digital kanban, and more.
Kennaley describes the role of software development inside the larger enterprise, how various enterprise disciplines should be involved, and how a Lean IT Enterprise should be constructed. He explains what Lean TOGAF is all about, and how software acquisition processes should be constructed. He explores regulations, compliance, and advises those with a fiduciary responsibility how to make the most of their IT investments. This book is an extensive exploration of software methods and gives the reader a holistic view of this space.
Scott Ambler at the end of his foreword gives a great bottom line: "it isn't very often that a software process book comes along that truly impresses me, and SDLC 3.0 is one of the few that has. To put things in perspective, other such books include Extreme Programming Explained by Kent Beck, Lean Software Development by Mary and Tom Poppendieck, Introduction to the Rational Unified Process by Phillipe Kruchten, and Organizational Patterns of Agile Software Development by Jim Coplien and Neil Harrison. So yes, I highly recommend that you read this book."
We've seen the rise and fall of the Waterfall misinterpretation that represents the first SDLC generation. Now it's time to put an end to the iterative method wars of the SDLC 2.0 generation. As new process communities continue to rise, the software industry desperately needs integration. To do this we need a pragmatic centrist platform to unify the process communities, SDLC 3.0 is the vehicle we need to solve the problem.
With over 20 years of commercial software engineering experience, he has a proven record of successful projects across a variety of industries, including finance, trading, banking, defense, healthcare, and automotive.
As a management consultant, he is an agent for change and often works with senior level executives to fine tune their organizations for performance, efficiency, and effectiveness.