Software is the fabric of the information age. It is eating the machine age. In the end it might even eat itself! Software is so successful, so pervasive, so adaptable that code, and the ability to code, are devaluing. Software is the commodity of our age and software development the occupation of the new working class.
Enterprise Architects should just get over being precious about software… and architecture, enterprise architecture, strategic planning etc.
Architecture is a metaphor that had relevance when software could be funded and managed like other capital investments. Software — unlike concrete, the fabric of capital investments — never ‘sets’. It is mostly open and freely shared. Software to do just about anything is a few clicks away for everyone with an internet connection.
Software never goes to the presses, to be set in hot metal, to be printed on paper, for all time. When software made large capital investments, Architects were needed to do the ‘town planning’, quality assurance and gate-keeping. Because software was an expensive, proprietary commodity.
Software written today is not quite the same as the software of the big capital projects era. It manipulates components, in frameworks, on platforms, and is just disciplined, structured writing. Like poets, we try hard to write less of it, not more. We no longer measure our worth by ‘Lines of Code per Day’. And if we throw bits away from time to time, we dont fret. Like all good writers, we should be prepared to ‘Kill our Darlings’.
Now that software is a commodity — open, and everywhere, people formerly known as ‘Architects’ (Enterprise or other kinds) have a new role.
Enterprise Architects should support Agilists to deliver services at a rapid rate. The Agilists will accumulate a bit of technical debt in the process. But relentless business demand and change will preserve the Agile capability. Paying down the kind of technical debt that matters will happen.
Enterprise Architects should work out how to influence the demand side (The Business) to drive Agile delivery capabilities to deliver outcomes for clients and customers first. Then indirect customer benefits second (such as business efficiency).
Technical debt minimization is important but it is not Enterprise Architecture’s raison d’être .