Technology has developed unprecedentedly since the Information and telecommunications revolution started in the 1970s. Punching cards, assemblers, higher generation languages, frameworks, middleware, platforms, cloud… everything is in the service of creating new levels of abstraction. Layer after layer, abstractions relieve engineers from known low-level concerns and enable them to focus their efforts where it truly matters.
The speed at which technology advances is incredible. Finding a single number that measures this speed is impossible, but one good proxy metric is the number of repositories in GitHub. Over the years, the number has steadily grown in tens of millions of repositories per year, reaching over 372 million in 2023. Even if only a tiny fraction of these repositories carried an innovation, the absolute number would be huge.
Technology is more available than ever. Open source community is blossoming, and practically every type of software is available in its open-source variant today. The software has become fully democratized. Anyone can download a piece of software, try it out and, what is even more important, contribute to it or fork it in a completely new direction. Driven by the invisible hand of a genetic algorithm, new software versions come up, better versions survive, and others die out. Proven technology becomes standard over time, and nobody mentions it anymore. It is just assumed that it is there.
If we were to put technology on a Wardley map and introduce a time dimension, we would notice the increase in speed at which technology moves to the right and becomes a commodity.
Moreover, educational resources are getting even more available. Open source brought software to the masses, and with it came a plethora of documentation, tutorials, blog posts, YouTube education, etc. With the pandemic, even once physically unattainable conferences turned online and suddenly became available in real time to people on the other side of the world. Knowledge has long outgrown arbitrary geographical boundaries.
And finally, there is a Generative AI tidal wave that we still don’t know where it will take us. As revolutionary and exciting as it sounds, it is again “just a tool” available to everyone.
For years, Technology consulting companies have based their value proposition on mastering a particular technology and providing those specific services to their clients. Following the Economies of scale, wise were the companies that mastered the technology in demand and used that knowledge to consult as many clients as possible. This approach yielded the largest revenue (multiple consulting engagements) for the least cost (one-time learning effort). However, the proliferation of technology and the speed at which it’s happening is sending that approach down the drain.
Technology and knowledge are now freely available, and given enough time, everybody can master any technology. If everybody can leverage technology, does it mean technology has stopped being a differentiator?
It’s too harsh to say that technology is not a differentiator anymore. After all, every new technology unlocks another piece of value that was considered impossible before.
A real differentiator today is the capability to navigate the vast amount of new technology and embrace what is needed when needed. The proliferation of technology we’re witnessing today is staggering and can only be compared to water gushing from a fire hose. So it’s only appropriate to say that the skill differentiating successful companies today is proverbial “drinking from a fire hose.” Those companies that learn to drink from a fire hose will survive, while others will die of thirst. This is true for all companies, especially so for Technology consulting companies.
What does “drinking from a fire hose” consist of?
1. Recognizing new technology – keeping up with trends and technical novelties.
2. Understanding where it fits – not every technology is fit for every company. The fitness function should consider the business value the company is trying to achieve and other relevant system characteristics, the so-called -illities such as usability, reliability, testability, etc.
3. Critical thinking – even if the technology is trendy, a fair amount of critical thinking is necessary to challenge its value in the particular context.
4. Leveraging it end-to-end – “It’s a long way from a Jupyter notebook to production usage.”, said my colleague Krešimir Musa. New technology can yield benefits but is useless until fully integrated into the existing system. This integration step requires a Systems Thinking approach and an excellent understanding of how enterprises work. Many companies fail in this step, mastering individual technologies but failing to put all the puzzle pieces together.
Leaving out any of these steps means your company is not successfully drinking from a fire hose. Therefore you can expect severe dehydration. And the speed at which your company is iterating over these steps indicates how well your company will perform in the long run.
How does a company learn to drink from a fire hose?
Enabling Teams is a well-known mechanism for supporting company learning processes, as described in Team Topologies.
Enabling teams help stream-aligned teams pick up new skills, for example, when a service would benefit from a reactive programming model to increase performance. The reactive programming model is not trivial and requires a shift from the traditional programming mindset. Stream-aligned teams would take considerable time to learn this new programming model, explore available frameworks, pick the appropriate one, and learn how to use it. And all the while delivering new features to the customers. This is where Enabling Teams jump in. Like reconnaissance platoons, Enabling Teams explore the path in front, look for new technologies and approaches, and share this information with stream-aligned teams helping and enabling them to move faster.
Enabling Teams is how companies learn to drink from a fire hose.
Writing this piece in 2023, another phenomenon is present in the world. The financial crisis hit the world already wounded by a three-year pandemic and a war in Ukraine, causing severe layoffs in the IT industry. Some companies are benefiting from this situation by employing good engineers in large numbers. Those companies will need to strengthen their learning and onboarding mechanisms to make new engineers productive as soon as possible. Guess what helps? Enabling teams.
Companies investing in their Enabling Teams will do better in volatile times. It has always been important to be a learning organization. Nowadays, with uncertainty increasing, the capacity for learning and adapting could be the most critical capability of every company.
Technology consulting companies not skilled in drinking from a fire hose will have nothing left to offer to their clients and will eventually stumble and drop out of the race.
We can see similar messages from relevant people in the industry. The most articulate is Kelsey Hightower saying:
A career in tech is less about learning a specific tool as it is the willingness to learn a different tool when the time comes.
— Kelsey Hightower (@kelseyhightower) March 16, 2022
Kelsey points out that we shouldn’t tie ourselves to a specific technology (nor should we base our business model on it, for that matter) but be ready to embrace new technology when needed.
How can a Technology consulting company help its clients?
Like a skillful coach, a Technology consulting company bounces between the roles of a teacher, mentor, coach, and advisor, depending on the client’s skill level in software architecture, distributed systems, cloud environments, automatization, testing, team collaboration, product management, etc.
Modern Technology consulting companies are not experts in just one niche field. They cover the whole product delivery lifecycle, starting with skills necessary to understand customer needs, design an MVP product, suggest the appropriate software architecture, build automation and security, test the solution, and iterate over this process in an agile manner. The reason is simple – a client can get stuck in any of these areas, and a Technology consulting company should provide support in all of them. Providing support in only one of these areas demonstrates the lack of understanding of the end-to-end process and proves the inability to apply a Systems Thinking approach. Such Technology consulting company can not truly understand the client’s problems and consequentially can not provide help other than suggesting a local optimization in one area. And we all know that a holistic approach eats local optimization for breakfast.