Historically, technology solutions and systems were designed and built to last. I remember my first project after graduating, where we designed and built a system to last unchanged for 25 years. One of the key points were to have engineers calculate the amount of necessary spare parts for the servers needed to be procured and stored to be able to run the servers for 25 years. It is doable!
An even more impressive quest was the space shuttles. First put into operation in 1981 and taken out in 2011. That is 30 years of operation on basically the same hardware. And remember to add the time it took to design, build and test the shuttles!
In fact, the entire methodology for designing and building software was oriented toward getting all requirements defined, specified, and agreed to. The worth of the solutions and systems were oftentimes judged on how well they endured and how little they changed. Further, “change” was an exception, an event that would occur from time to time that had to be planned, managed, priced, tested, scheduled, etc. Not only is this far from the paradigm or principles of today’s business technologies. It is also in contrast to the environment in which today’s solutions, systems, and platforms are built is characterized by just the opposite set of attributes.
Image source – with Creative Commons from Gnome icon artists, Mark Skipper, fdecomite, mikkelbg
The environments in which enterprises operate today and in the foreseeable future, are highly volatile, uncertain, complex, and ambiguous. In short, VUCA. How do we expect our business technology response to this to be stable, certain, definitive, predictable, or lasting? Perhaps counter-intuitive, but the approach to solutions, systems, and platforms will be: Build to change, to evolve, to adapt, to respond, etc. And to do so with speed, agility, security, and certainty. I suggest an approach to architecture and software engineering that is aligned to and coherent with a VUCA business environment and a time of intense and rapid emerging technology introductions, innovations and discontinuities.
The ability to architect for change and to engineer for continuous adaptation, new requirements, efficient integration, and frequent releases will become a new core competency. It will drive the enterprise closer to a software-company operating mentality. And it will provide the kind of speed and agility needed to survive in today’s competitive business landscape.
Certainly, techniques including open- and inner-source development and DevOps are quite relevant here. Utilizing public cloud technology is a must – probably PaaS and SaaS – for heavily regulated or very large companies private cloud could also be used.
New techniques and technologies are not enough though. You also need to view things differently e.g. tackle complexity not by subdividing but looking at a bigger picture.
Changing the organization
And do not forget organizational change management when making such profound paradigm shifts. You need to ensure that you have your employees backing the change – and not least all layers of management.
All of this are particularly relevant to ensure that the overall transformation of the IT function and capabilities within the enterprise progresses and even accelerates. IT governance, leadership, talent, process, work environment, tools, methods, automation, and technologies, to name a few, are prerequisites for creating the necessary operating conditions in which VUCA architecture and software engineering can take root, can deliver, and can be sustained.