7

Agile method

KEY LEARNING POINT

Discover how to adopt a learning-driven approach that delivers results early and allows for improvement.

Agile is a learning-based methodology and a routine of small incremental improvements with time to repeat, reflect and learn regularly recommended. It is an approach that trusts we learn from experience, and we need to provide ways to identify and embed this learning.

When we want to get something done, generally we decide on our goal, define exactly what we want to do, develop that and then deliver it. We try to do this often as a linear process, deciding everything upfront before we design and build, achieving something as good as possible before releasing it.

In software this is known as the waterfall model, first described in 1970 by Winston W. Royce (see Figure 7.1). When carrying out small and well-defined projects, one visit to each stage in a linear flow is sufficient.

If there is an element of unknown and the solution required is perhaps uncertain, large or complex, then one pass simply is not enough to reach a satisfactory result. Additionally, this model provides no scope to engage with the client other than at the start and end of the process.

The reality is that change happens during development and requirements may have to be rethought and revisited, but the waterfall method does not account for rework. This can lead to scope creep, when changes must be made, and that can lead to delays and increase in costs and resources.

c07f001

Figure 7.1 Waterfall model

c07f002

Figure 7.2 Success/failure optimism

In order to create an agile state of mind, we need to approach problems with the recognition that it may take more than one attempt to solve the problem, and that the more we know about the problem, the greater equipped we are to find an effective and lasting solution.

The optimist in us all likes to believe that we will get it right first time (see Figure 7.2).

Realistically, when we are doing something we have not done before, it will take us a few attempts at least to achieve the result we are seeking. It may be that we have to continue to revise the solution to get the benefits and value we require.

In order to achieve the best performance possible there is a cycle of practice and rehearsal that we must undertake to form the habit and allow ourselves to get used to doing things a particular way.

The more we do something, generally the better we get at it; we are able to automate ourselves and even carry out tasks without any conscious effort, such as driving a car or riding a bike. It becomes second nature and easy to replicate without much conscious effort.

Interestingly, though, often the reason activities become ineffective or stuck over time is because we have become too habitual and not stopped to review and change our ways in order to maintain performance.

Each time we repeat the action we refine and hone it and get closer to success until, finally, we reach a point where we are satisfied with the result. In this sense, it is not really failing if the result gets us closer to success and we continue to experiment until we reach a satisfactory outcome.

There is no such thing as failure if we choose to learn from it in order to be successful at a later date. The journey to success can feel like a game of Snakes and Ladders: there will be shortcuts and setbacks along the way, which we need to identify and respond to, and we cannot predict them all. Agile provides a method to adopt a learning attitude, which allows us to harness our natural ability to navigate a journey to success through reflection and learning (see Figure 7.3).

c07f003

Figure 7.3 Journey to success

Satisfaction does not necessarily mean literal perfection, but it does mean it is good enough to satisfy the requirements. We may need to refine this further, tweak and develop again further along in time, but a good enough solution is often as much as is needed.

Agile takes this journey into account to provide a method that builds in change and makes it easier to work towards a goal in unfamiliar, uncertain and changing situations.

book_icon Conservatory drip challenge

A few years ago, around November time, I decided to put a new carpet down in my conservatory ready for hosting a family Christmas. The conservatory had a minor leak that meant a slow drip appeared if there was very heavy rain between where the conservatory joined the main house.

The journey was mapped out: remove the old carpet, remove facia to find out where the leak is, use silicon to seal the leaking area, clean and fit new carpet. With a deadline six weeks away and the scope of work being around two days in total, the job seemed very doable within the constraints given.

The actual journey was really rather different and resulted in the conservatory not being completed until February. There were are number of issues which led me to under estimate the scope of work, due mostly to a lack of skill, knowledge and a number of optimistic assumptions.

When I took up the old carpet, I found the floor was significantly wet and damp and would need to be replaced; when the facia was removed, it was clear the roof had multiple leaks. I was out of my depth as far as my DIY skills were concerned, so I contacted a roofing contractor. The first roofing contractor managed to stop two of the leaks, the second conservatory contractor managed to stop another two, but the final leak in one corner persisted. Each time a leak was fixed, I would have to wait until it rained to see if it was fixed or not.

Eventually, after a lot of watching, thinking and application of silicone in a number of locations, the final leak was stopped, the roof and floor began to dry out and the new floor and carpet could be fitted. The complete elapsed time was three months and the total active time and cost was around five times longer and higher than expected.

The reality is that until you have started a job and investigated the problem properly, any assumptions you make about the size and complexity of the problem and the nature of a satisfactory solution can be wrong. Especially if you have little experience and little understanding of the job.

Traditional practices like the waterfall approach aspire, unrealistically, to achieve a fixed specification from the start and success in one pass with a fixed amount of resources and time. These practices seek to fix and control each component of the solution and limit variance; they do not have the flexibility to change and alter course so, if this occurs, the solution is unable to change to adapt with the evolving environment.

Agile and lean practices work in small incremental improvements, expecting change, building flexible solutions that are continuously managed and resource- and time-committed, based on the value delivered. The more valuable a solution becomes, the more resource and time is assigned to it to build on this success or, alternatively, if the solution is not progressing as desired, resources can be reallocated.

Small incremental improvements

Agile ensures that there is scope to change by not committing everything upfront: agile breaks down the work into deliverable chunks and plans to undertake multiple cycles through the process. Agile aims to deliver early, often and consistently to satisfy changing requirements long term. The first cycle looks to validate needs and deliver something of value early, if possible, against the goal and scope (see Figure 7.4). Rather than including everything from the start and aiming to take the waterfall approach to completion in one linear start-to-finish project, agile accepts that often there is no ultimate finish line or ending, and that work will be added along the way, especially if performance is good and growth in demand for work increases.

c07f004

Figure 7.4 Incremental improvement cycle

By working in this way, not all the resources and time are used to get to the first and only solution. Agile allows time and resources to be flexible and incremental, based on early results, leaving capacity to revisit our decisions and designs, build a number of versions and deliver value earlier in the process, which has the benefit of enabling us to gain feedback and learn, to help understand and improve as part of the process.

An agile incremental approach allows us to build momentum and traction towards a solution that delivers value early and then continues to improve and scale incrementally.

So, rather than a linear process, it is an iterative cycle. An iteration is a repeated cycle of recurring improvement where, each time we cycle, small incremental improvements are made. Solutions are formulated, built and tested incrementally, using short cycles of activity that are interwoven with time to think, reflect and learn.

Eat cake!

Projects are like eating a cake! A cake that is made up of layers: at the bottom an integration layer of sponge, then a layer of jam for testing, another sponge representing build, some cream filling for design, another layer of sponge for the scope, and the icing on top is the goal.

Think about how you might eat that cake: you will not eat the cake layer by layer, instead you cut slices from the cake; the cake gets eaten slice by slice rather than layer by layer. Think of your project as a cake and tackle it by eating it in small slices.

Model the solution a little, define the way forward, build and develop a proportion of the solution and then deliver it for feedback before deciding what to do next. Then move through the cycle again, defining activity, doing some work and then delivering this again for review and feedback, and so this continues until we reach a solution that is fit for purpose.

If our goal is not viable in the existing environment, we need to establish this as quickly as possible with the minimum of cost. Agile embraces the reality that we do not have all the answers when we start, and that the best solutions are developed when we can determine our actions in real time as the environment evolves and changes.

Agile thinking knows the reality that a number of versions may need to be created before success is reached, and it is a journey of learning that needs to be navigated and refined to find the best solution. By making changes incrementally rather than in bulk this limits the number of changes that are made at one time, so that the impact of those changes can be measured and controlled.

We need to have a conscious acceptance that making mistakes is ok when we are trying to solve a problem. Understanding that it will take a few attempts to get it right means that we are willing to make mistakes to expand our knowledge and accelerate us towards the answer, or a better solution.

Learn – act – reflect cycle

Agile works in small incremental cycles of action, interleaved with time for reflection and learning (see Figure 7.5). (Based on reflective coaching models and technology start-up models, such as build – measure – learn, as defined by Eric Ries in his book The Lean Startup, 2011.) Improvement and change is embedded in day-to-day activity rather than as a separate activity.

c07f005

Figure 7.5 Learn – Act – Reflect cycle

Learn

  • Agree goals and objectives.
  • Metrics and measures are established to measure success.
  • Map existing reality.
  • Establish scope and requirements.
  • Estimate activities and rank activities.
  • Identify options for next cycle of activity.
  • Consider previous action and reflection to establish key learning points.
  • Identify future learning needs.
  • Decide and plan next activities, based on learning and reflection.

Act

  • A period of action and development of a set amount of work.
  • Work prioritised by reflection and learning.
  • Activity is tracked and measured to provide defined metrics.
  • Limited change to scheduled work during current batch of activity.

Reflect

  • Test, release and gain feedback from those dependent on activity.
  • Review and reflect on last cycle of activity and results.
  • Reflect on what has gone well and what can be improved.
  • Review progress and outputs through metrics and measures.
  • Reflect on overall direction and progress.
  • Identify options and ways forward for next cycle of work.

book_icon Feedback-driven delivery

A team wanted to improve the service they were delivering to clients and increase customer satisfaction. The business surveyed clients on completion of work to gain feedback on their service and to find out how satisfied the customer was with the work, asking if the customer would recommend them to a friend.

It was felt that the customer experience could be improved further, but how to do this was not clear. The business began to collect feedback early from the customer and, one week into the service, a survey was undertaken. This survey asked the customer how satisfied they were with the initial service; it also asked:

  • what the business was doing well;
  • what could be better;
  • if there were any issues or priorities they would like to flag.

These questions enabled the business to gain early feedback and establish what the priorities of the customer were: for example, a customer may be pleased with progress, but wish to change priorities. Using this individual information, the team were able to feed this back to the delivery team and they could adapt their focus to concentrate on the issues most important to the customer.

The business continued to gather feedback from the client at the end of the service and those that had been asked early for feedback reported a higher level of satisfaction in the service. They appreciated the ongoing engagement and the opportunity to focus on their priorities, making them more likely to recommend a friend to the business.

Gathering feedback early works to improve the customer experience by highlighting areas that can be improved. By acting to improve the customers’ experience, this highlighted areas of service and improvements to current systems and processes that also could be used with future customers.

By gathering feedback early from the customer, the business was able to learn and focus its service to better fit the customer and their needs. Rather than surveying at the end, when no changes could be made as you would with the waterfall method, the early information enabled the technicians to act accordingly during the early phases to improve the experience for clients.

  • Learn – continuous learning helps us to understand, gain clarity and continuously improve.
  • Act – small sprints of action are sustainable and enable us to regularly review and adapt our direction.
  • Reflect – reviewing and measuring our progress can help us to learn and inform us on the best direction to take.
c07f006
..................Content has been hidden....................

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