Towards Continuous Delivery

Peter Wong
Travelex Tech Blog
Published in
2 min readMar 23, 2017

At Travelex engineering, we implement continuous delivery in order to provide frequent business values.

What do I mean by continuous delivery and how can we provide frequent business values? I will dissect this into Meeting business values and Time to market:

Meeting business values

How do we know our services meet any business value? This is through a well-defined way to trace requirements all the way to service deployment and operation, that is, software delivery.

How do we provide such a trace? Traceability lies in product management and engineering working together on defining and agreeing on business test cases. These are high-level test cases are both functional and non-functional and must be understandable by all stakeholders.

The test cases are defined during planning. At Travelex engineers work together with product owners to define such test cases.

Changes to a service are validated via testing according to the newly-defined test cases to ensure it meets requirements and thereby the required business value. Changes are also validated against existing test cases to ensure there is no regression.

Time to market

There are two measures on time to market, they are lead time and cycle time:

  • Lead time is the time it takes from a requirement being documented in the product backlog to the delivery of the functionality on that requirement.
  • Cycle time is the time it takes from starting working against a requirement in the product backlog to the delivery of the functionality on that requirement.

The aim is to reduce time to market, hence delivery’s lead time and cycle time. At Travelex Engineering we aim to maintain a short cycle time by the following principles around:

  1. Each backlog task should be broken into smallest releasable changes
  2. Services should be deployable locally
  3. Test execution should be automated
  4. Test execution should be fast, reliable and repeatable
  5. Deployment pipeline should be automated
  6. Deployment pipeline should be fast, reliable, idempotent and reversible

These principles form the basis of continuous delivery that drives shorter cycle time. With regular prioritisation exercises, lead time can also be reduced.

Summary

In summary, In order to implement continuous delivery, our teams are constantly improving their software engineering craft such that we

  • only make changes the production environment that can be mechanically traced back to requirement
  • continuously improving our engineering process to shorten our time to market

--

--