Why today’s tech stack is a matter for business
You’d be more than forgiven for tiring of the relentless trends in enterprise software today. It seems there’s something new and “revolutionary” to consider every week. VC dollars pouring into new enterprise startups means there’s cash flowing freely from the investor pockets to marketing departments — and from there, as noise to your inbox. And from the big vendors, there’s always a new iteration of functionality you might need to pay attention to.
There’s a lot going on — and in the fine detail, something that only the most focused tech folk can pay attention to. But under that noise, some important shifts have taken place that business must attend to. Why should business care? Because the new models we have for developing and running software reach into the key areas of productivity and economics.
No CEO can responsibly leave themselves uneducated about modern technology.
If I were to sum up the entire benefit of the modern tech stack, it would be in one word: agility. The working methods, software, and data center technology are all adapted to flex and grow with new demands.
We have the massive web businesses of Google, Facebook and Yahoo! to thank for a lot of the change in the tech stack, but the benefits aren’t just for these companies. It was their need to take control of the tech in conditions of massive growth that changed the game, but now they’ve rewritten the rules of software, everyone can share in the benefits.
The new tech stack includes these characteristics:
- Elastic cloud computing: whether the cloud is public or private, the notion of a “computer” is disappearing, replaced by on-demand access to computing power in the cloud.
- Based on open source: powerful modern software, freely available, has accelerated the pace that higher-value system can be built. Even competitors collaborate by contributing to a shared open source technology base. Open source is now a guarantee of longevity.
- Scale-out systems: the needs of the web, mobile and big data mean applications have escaped their bonds to a single machine, and instead scale with growing demand.
The combination of cloud and scale-out, open source, software yield strong agility benefits in two different areas: in resourcing, and in application development.
Let’s look at resourcing first:
- Linear scale-out cost: elastic cloud solutions have a more or less linear increase in cost base as demand increases. They don’t hit the ceiling of compute capacity, nor does more demand tip you into a vendor’s whole new licensing cost tier and associated bureaucracy.
- Moving opex to capex: paying for compute resource as an operational expense is liberating for speeding development. You’re not stuck with assets that are outpaced by technology, and somebody else is taking care of data center operations. Experimentation becomes much easier: if you want to use 10,000 CPUs to mine your data, you can shut them down again when you’re done. That kind of investigation was never open to you before.
- Ease of purchase: when all you need to do is put a credit card in a form to get immediate access to compute resource, it makes everything go quicker. The barrier to innovation is much lower if you don’t need to wait around. I once asked a CIO who had just started using Amazon Redshift why he made that choice — was there a technical benefit? I got the reply, no, but it meant he didn’t need a 3 month negotiation with his database vendor’s sales rep.
What about the other aspects of today’s tech stack, that for application development?
- Architectural agility: the feeling of having painted yourself into a corner is familiar to enterprises — IT systems that end up constraining future growth. Cloud, open source and scale-out systems can help a lot. As infrastructure becomes programmable, it can be evolved rapidly. The era of big data means it’s easier to avoid data silos and dead-ends. And the faster execution speeds we get from scale-out systems open new opportunities for real-time business. For better or worse, your own internal IT will take on that evolving nature from the rest of the marketplace, continually able to flex to meet new business challenges.
- Developer agility: contemporary culture in software development has changed the game — programmers don’t just wait for whatever their vendor hands them, but invent and share answers to their own problems. This new generation is educated on open source and cloud, and gravitate towards tools that make them productive, and that are fun to use. Happy, productive, programmers make it easier to move faster and iterate systems to the business needs. Recognizing and embracing the best software development ecosystems will help you attract and retain talent.
To adopt, you need to understand
All these advantages over resourcing and development are great: but they don’t come for free, either. There are inevitable culture, management and recruiting consequences. This is why the conversation needs to be at the level of the whole business: to effectively leverage today’s technology is also to effect a change in culture and process.
As business digitizes, every company becomes a software company, and every business leader needs to understand how the changes in today’s tech gives them opportunities to compete, lower costs, and empower their workforce. And the opportunity is even bigger than that: if leaders’ strategic thinking can incorporate the new technology potentials, then radically new ways of doing business become feasible.