12

Continuous delivery

KEY LEARNING POINT

Learn how to change to a rhythm that works to sustain and manage performance.

Continuous delivery is a concept developed by Kent Beck (the developer of Extreme Programming). It is a software development method that encourages frequent releases and continuous improvement. By working in small rapid delivery cycles, we are able to achieve a state of continuous delivery. Value is delivered early and improvements are integrated continuously through testing and feedback. A small, but valuable, solution is delivered as soon as possible and then the solution is extended, deployed and adapted as needed in small incremental improvements (see Figure 12.1).

In essence, there is no start and end to an agile project or improvement process; the activities continue and evolve from one stage to another, based on the value and return they are delivering.

The idea is that something is never finished because the world continuously changes. For example, a website may change on a daily basis, features can be added or the whole site may be migrated to a new platform, but the project and process is an ongoing one: a business is unlikely to be planning a time where their website will end and not exist anymore. Of course, things do end. Everything has a life cycle. Continuous delivery is about bringing in new features and fluid change that keeps momentum and flow consistent. If the process or activity no longer serves a purpose or delivers value, it is likely to morph into something new. Agile allows us to navigate this change and carry over learning and assets of old systems, instead of starting from scratch each time.

c12f001

Figure 12.1 Continuous delivery

Continuous development

Rather than thinking of something as having a beginning and an end, we need to think of them being part of one continuous development of an inter related system, like a cog in a clockwork mechanism. There may be periods of inactivity or snoozing, but the development remains open, unless it is actually closed down or ended. However, even in cases where it appears that something is coming to an end, it actually may take a new form or be passed to a new owner, in which case agile can help with this migration or exit.

Continuous integration

Most activities are linked to another in some way, so changing one workflow can cause an effect in other areas and, therefore, impact on others’ work as well as our own. Continuously integrating our work in progress at regular intervals can help to identify these dependencies, ensuring they are considered and coordinated as part of the solution.

Continuous testing

Testing regularly provides the opportunity to measure the success of work in progress, to test assumptions and perceived value. By testing early we can identify if information is correct, that things are working as expected. This allows us to identify early if our solutions are likely to work and helps to de-risk. Outcomes provide feedback to gauge whether work is on track and fit for purpose.

Continuous feedback

Testing regularly provides rapid feedback on progress and performance against the goals and objectives. Acceptance can be evaluated by observing behaviour and levels of satisfaction. Feedback works both ways and keeps others informed of what is happening, what they can expect, allowing familiarity with the solution before they need to work with it or use it. Continuous engagement additionally helps to build trust and confidence in the solution, improving the likelihood of buy-in and acceptance of the change.

Continuous improvement

Using the feedback and insights gained, we can improve our approach continuously to the solution, taking into account the knowledge and experience we have gained from previous cycles of development.

Achieving continuous delivery and releasing work early for feedback provides us with a test-driven approach to achieving results. By monitoring results and progress regularly and engaging with the wider environment, the solution is developed and maintained.

 

Being agile and agile thinking outline the characteristics and benefits of an agile approach, and the iterative structure of learning, action and reflection to create agile behaviour. The next sections provide the tools to take workload practically and organise it into an agile structure, using and building on the notes that you have already created in previous exercises.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset