Notes: Cloud engineering services in the current economic climate
Notes posts are my observations about the software engineering industry as a whole.
It's clear that the hype around AI and the general economic climate is changing the nature of the software engineering business. Navigating the software engineering services business is getting harder for most of us. Margins are squeezed, promotions are overdue. People are anxious and it's getting harder to sell.
It's even harder for the many companies that have evolved from a body-leasing model with no significant technical expertise or intellectual property of their own. They simply don't have the leverage to differentiate themselves in the marketplace, and at the same time, the strategy of employing engineers loosely attached to the parent company makes their workforce a tasty morsel for talent hunters. The truth is that such service companies have never had to sell their services and develop efficient sales processes, as referrals and the general prosperity of the market have been enough to keep them growing for many years. At the end of the day, many customers are left with nothing more than price as the basis on which to choose a service provider. No easy situation when competing with developing countries with more competitive price differences.
Let's put aside our concerns for a moment and see what new opportunities are available to us today.
Cloud engineering becomes more cross-functional
Aside from advances in AI, the cloud technology landscape has stabilised. Cloud providers continue to monetise on managed platforms and seek to consolidate on public and private clouds. The majority of developers are now familiar with cloud engineering concepts such as containers or infrastructure as code. Setting up another automation pipeline or spinning up infrastructure for the application is not something that requires a dedicated cloud engineering team unless these things are done at scale or aligned with some enterprise-wide innovation programmes. There are still a number of cloud engineers who support other developers in their day-to-day work. But these core skills, once rare and expensive, are now found in every team and department in a typical engineering organisation. That's good, because it gives us more room to deepen our skills in other areas of cloud engineering. So how do we create an edge and stay relevant in the market?
I have several observations here:
An increasingly cross-functional role. With established cloud engineering expertise now more widely distributed, the focus is shifting to cultivating a productive DevOps mindset, rather than creating another functional silo to deliver infrastructure services to software teams. Meanwhile, there's a tendency to overlook other non-functional aspects such as automation, reliability, performance, observability, cost optimization and security. And cloud engineering is well-placed to fill this gap.
Increased demand for software engineering skills. People who know how to code are better able to think about complex distributed systems, while also being able to build the underlying tools and automation for developers. There is still a place for people with traditional ops backgrounds, but they will need to re-focus somewhat towards Site Reliability Engineering (SRE).
Platform engineering as the unifying factor. Emerging on top of DevOps, platform engineering is beginning to be recognised as a solution for enterprise-wide initiatives between infrastructure, developer experience and data engineering. It requires a good track record in the software development lifecycle (SDLC). This is reminiscent of the move from systems administration to DevOps, which required many to upgrade their skills to keep up to date.
Cloud engineering gravitates towards data. In the past, cloud transformation was often the starting point for literally any commercial discussion with an engineering service provider. Now, the majority of these early conversations are about data engineering. Whether it's data analytics platforms, data-intensive applications or AI infrastructure, there's a significant overlap between cloud and data. It's often a challenge for cloud engineers to navigate the data landscape. But the reverse is also true. Bridging the gap between cloud and data is a smart strategic move.
Cloud engineering roles become more customer-facing. Today's problems are not trivial to solve and often have organisation-wide issues, which brings consulting skills into the spotlight. This requires decent communication and writing skills that most developers do not typically have.
Overall, this means that cloud engineering is more domain-specific. Engineers in this area will need to recalibrate depending on the circumstances.
Service companies need to find their focus
For many years, software engineering services companies increased headcount as their margins grew. This approach is no longer sustainable. To increase company value, you need to specialise more. Delivering more distinctive value to customers and building clearer differentiators in the marketplace will become top priorities. Software engineering services companies will do this or slowly go bust.
Shifting to higher-value cooperation models is difficult because it requires different sales approaches, consulting skills and technical or industry-specific expertise. But it definitely delivers a better margin. Competing to be the best at everything no longer pays off. Which leads to the next point.
Engineering excellence: Can companies see through the buzzword fog?
The emperor has no clothes when it comes to some digital transformation claims. However, software engineering services companies are often reluctant to point this out. That's understandable, because it's not in their interest to do so. The bigger the initiatives they sell, the better.
I hear a lot of stories about clients being ripped off by another big consultancy (I won't name names here to avoid unnecessary resentment). They pull the senior people off the project after a couple of months or simply don't deliver on the promise of quality work. It's a fact.
In today's world, customers increasingly expect software engineering service providers to adopt a time-bound enablement model. This means that the customer wants to own the intellectual property (IP) and be self-sufficient once the project is complete. Customers are realising that relying solely on external providers can be risky and are prioritising solutions that they can sustain in the long term. Software engineering services companies need to adapt to this changing landscape by offering enablement-focused services that empower customers to manage their own technology in the future.
Overall, I believe these changes will make a positive impact. Specialised consultancies will guide the client’s organisation on a path of building modern engineering capability. While solving interesting engineering and organisational problems.
Would you agree?