While I’ve been researching my articles over the past week, one thing that struck me was how much we seem to have diverged from a scientific approach to IT development and switched to a world that can probably be best described as being driven by fashion. At the extreme, advocates for new methodologies or tools reach levels of passion usually reserved for religion or politics with much noise, but little rationality.
The scientific approach is based on a gradual accumulation of knowledge, with each addition being challenged through rigorous skepticism, experimentation, setting up hypotheses and then systematically trying to break down those hypotheses until we are certain that they are true. Isaac Newton’s quote of “Standing on the shoulders of giants” captures the ethos so well.

Scientists strive for an incredibly high level of statistical proof (see five sigma) before a theory or new approach is accepted, but in the IT world it seems that nothing more is needed than a couple of apps before we are at “beginning of the new era”. Moreover, suddenly everything that has gone before is now defunct and irrelevant, and anyone questioning the new approach is immediately dismissed as “just not getting it”.
Over the years, I’ve encountered this numerous times, and each time it has taken many years for the innovation to be correctly evaluated and fitted into the larger body of IT knowledge – we get there in the end, but we make the process of assimilating new knowledge and ideas far too expensive, and painful.
So, a few examples.
In around 2011, I met with a CIO who was told me that certain that databases were dead and that everything would move to Hadoop. Just 8 years later, Hadoop itself has already been obsoleted, and even its Spark replacement is failing to fulfil the early promises of the big data evangelists and the hype has moved on to Artificial Intelligence. Meanwhile, every company continues to run primarily on database technologies, and rotational databases run the world’s transactions.
A second example is the recent infatuation with blockchain. Again, I was informed numerous times by “experts” that blockchain was the future and that databases would be wholesale replaced by blockchain technology within years. This time, the hype as almost laughable with companies who changed their name to include “blockchain” (and doing nothing else) saw huge increases in their share value.
Of course, real experts knew that this blockchain was not a panacea, and that while it is a brilliant technology and has some excellent use cases, it is still quite specialised and only really delivers value in a limited set of use cases. There’s an excellent decision tree for Blockchain published on the World Economic Forum website- it’s worth reading if you are thinking of using blockchain.
I’m sure that you can think of more examples – the latest fashions being Microservices Architecture, Artificial Intelligence and Quantum Computing. The problem isn’t that all new technologies are bad, it’s that they are over-hyped by vendors and often used way outside their sweet spot.
But, we as professionals in the industry should be more circumspect, and perhaps be a little more thoughtful in what we publish and how we talk about new technologies.
I’ll just mention one example from Microservices Architecture – where I have been doing a great deal of research recently. I came across “The Ten Commandments of Microservices” Witten in January 2016. Bear in mind that this was a mere Four years after the approach had even been given a name.
To me, the term “commandments” is hugely problematic. It suggests that there is a right way and a wrong way to build microservices (there isn’t). This is exactly the approach that gets us into trouble. Architecture is about principles and guidelines, not about religiously applied rules. What is good for one situation and organisation may be the worst for another. There’s a business problem to be solved and how you use technology to address the problem needs to be flexible, not constrained by an artificial set of “commandments”.

Sometimes the statements are simply wrong. “Prefer Polyglot over Single Stack”. This one is patently ridiculous. The principle of Occam’s Razor is perhaps one of the most fundamental of all in science and technology (arguably in life in general too), but here we seem to be mandating (remember it’s a commandment) unnecessary complexity. Of course, technology choices should be appropriate to solve the problem in hand, and a religious single stack commandment would be equally wrong – but we should never add a new technology, programming language or database just to become polyglot.
But enough of the rant, in other aspects, the article actually has some good advice, but that’s all it should be presented as – guidelines and advice, not “commandments”, and perhaps a little more circumspection about whether microservices is really more of an evolutionary change rather than the start of a bright new era – microservices is much more like SOA than most advocates will admit. In my own mind, microservices is “SOA done right”.