From chaos engineering to cloud stickiness: The essential IT trends of 2019
The world of software development is fast-paced, and it can be challenging for leaders to determine which new technologies and techniques are worth investing in. There are a variety of technologies that in 2019 will continue to generate buzz (from machine learning to blockchain and service meshes) but in reality, some of the best IT solutions to consider in this new year are tied to technology and practices that have been used by teams for years.
It’s also important to keep in mind there won’t be one silver bullet solution to the business challenges you’re looking to solve this year. As one resource for IT managers wrestling with decisions for 2019, my team at ThoughtWorks published the latest edition of its Technology Radar, a biannual report assessing the top trends in IT and critical factors of emerging technologies to consider. See below for a few of our top trends for 2019.
Cloud Providers Get Stickier
The cloud marketplace will be more competitive than ever in 29019, which is both a blessing and a curse. The main cloud providers have reached basic parity for core functionality and are looking to differentiate themselves with advanced capabilities, which means customers now have a broader set of options and can pick the provider who best aligns with their strategy, usage, and geographic footprint. It also opens up the option for a polycloud strategy of leveraging the best of each cloud for different workloads.
There are however a few traps to avoid: taking a lowest common denominator approach to enable cloud portability means missing out on the differentiating benefits offered; while going all-in on a single provider needs careful weighing of the trade-offs between time to market versus lock-in.
We recommend a risk-commensurate strategy of evaluating criticality to your business and difficulty of porting, should the need arise, to decide how much lock-in to accept. This is becoming important because AWS, GCP, and Azure have different strengths depending on how you prioritize feature richness, developer experience, ML workloads, hybrid options, and regulatory needs in different jurisdictions.
Renewed Focus on Core Engineering Practices
Over the past few years, there has been an influx of emerging technologies for engineering teams to take advantage of. However, we’ve seen our fair share of cautionary tales, where teams get carried away with the new technology without maintaining foundational practices such as continuous delivery and testing. We are seeing a renewed focus on adding the required automation, testing and deployment rigor needed to be successful with the new enablers such as ML, container orchestration and infrastructure automation.
While embracing new technology can provide advantage, in 2019 we expect to see IT leaders recognizing the growing evidence that speed and stability need not be in conflict and that high performing businesses are driven by high performing technology organizations who focus on core engineering practices such as building quality in, working in small batches, pervasive automation and the relentless pursuit of continuous improvement.
Rise of Chaos Engineering
One of the best ways to prevent failure within your systems is to deliberately engineer for it to happen, helping you better understand how your system reacts. This approach is referred to as “chaos engineering” and it is a practice that is being used for more and more aspects of software development, with security being an important one. Through the process of chaos engineering, teams will learn what their system is resilient to and what types of failures need more work.
While it may sound easy enough, practicing chaos engineering can be extremely risky if your organization isn’t set up to handle these types of self-inflicted failures. Before engineering for failure, you must be sure your techniques are sound, confirm you’re able to perform non-destructive dry-runs and prepare your team and systems.
Finally, it’s important to practice chaos engineering early on in your development process. As your systems become larger and more complex, it becomes more challenging to retrofit these processes.
Lingering Enterprise Antipatterns
As new and shiny technologies come into the enterprise on the wave of hope that “this time it will be different” we continue to see age-old anti-patterns rearing their heads, just wearing new clothing. As API gateways or Kafka clusters become all the rage we see organizations recreating the tight coupling, siloed teams, and unmanaged complexity typical of historic ESB implementations.
As teams create microservice architectures to improve their throughput and provide more maneuverable ecosystems we see them shooting themselves in the foot by imposing unnecessary layering and all the friction that goes with that.
Much of this boils down to the tension between isolation and coupling: teams will often isolate components to make development more manageable, but then a level of coupling or coordination is required to interact with other components in the system and ensure the tech can solve business challenges. Unfortunately, this can lead to organizations findings new ways to repeat old mistakes.
Teams will continue to face lingering enterprise antipatterns in the year ahead but the best way to combat these problems is a continual focus on evolving your architecture and engineering organization to keep it simple as well as mirroring the contours of the key business challenges you’re looking to solve (versus jumping to add new architectures, tools, and technologies into the mix.)
To recap, in 2019, lT leaders should avoid chasing the new shiny toys and instead focus on embedding fundamental engineering practices and continually improving the speed and reliability with which they are solving real business problems.
For more insight into how to cope with the trends 2019 will throw at you, you can review Thoughtworks’ l Technology Radar, which provides more information on the themes I’ve outlined as well as a wealth of other IT considerations to keep top of mind for the year ahead.