Chapter 2. Effective Software Delivery

The architecture you choose generally has to deliver over several different timescales.1

You want to see at least some benefits in the short term, because a large up-front investment with no immediate reward makes people nervous.

In the medium term, you want to reach the sweet spot where your architecture enables you to be effective. For me, effective software delivery means you can:

  • Regularly deliver real business value

  • Maintain appropriate service levels

  • Adapt to change so that you are always working on the most important things

  • Provide people with an environment where they get to spend most of their time on meaningful work

  • Keep risk to an acceptable level

But beyond that, what about the long term? In much of my career, the long term has generally meant a big-bang rewrite and the rebranding of the system as “legacy.” This is, however, costly.

So, can you avoid having to start over?

This chapter will discuss all these aspects of becoming a high-performing and effective software delivery organization, in the specific context of microservices. I will introduce the tools, techniques, and processes that will help you be successful in each aspect, and the ways you can assess—or hopefully measure—how well you are doing.

These are all things I’ve spent the last five or six years wrestling with, first as a Principal Engineer for the content publishing platform at the Financial Times and then as a Technical Director with a focus on engineering ...

Get Enabling Microservice Success now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.