Theo Sweeny’s Interview with Furqan Hashmi on Cloud Security and Compliance

Lean Accelerate Principles

Let’s break “lean accelerate” into its parts to understand how this process can help accelerate your time to market.



Lean

In its purest form, Lean has extended from the Toyota Motor Corporation's managerial and production system approach. At its core, there are two principles, continuous improvement and respect for people which act as fundamentals in building successful and performance-oriented solutions for organisations.

It does? Well please elaborate. Solution delivery is a social circle involving many people from various parts of an organisation who come together to ensure the success of the solution, from legal, finance, sales, marketing, strategy, operations and technology to mention a few. Business synergy occurs when these various divides hold mutual respect for one another and collaborate seamlessly on the delivery of cloud business solution, thus practicing the lean concept.

Lean Accelerate Consultancy offers business consulting solutions that help businesses merge practices into a common view, streamlining workflows either within departments or across departments so as to help the wider organisation adopt Lean methodology at its core.

What’s the Lean benefit? Lean is a common-sense approach to increase customer satisfaction, decrease costs, and improve the quality of products and services, all in parallel. In order to achieve this, businesses must create full transparency and be clear about what drives their overall performance.

Ah okay - so how do employees participate in Lean?

  • Pick a process to focus on. If you improve the process, you can help to improve the product, by default quality gets built-in.
  • Involve the people who work on your processes, by coming up with ideas for changing the process, they will feel involved, engaged, empowered, trusted and valued.
  • Set up a simple feedback loop so people know their ideas are being considered. It can be a suggestion box or an internal website. But it must be transparent.
Lean
  • Ideas should first be vetted by team supervisors, perhaps as part of weekly team review, only then should they be passed to management for consideration.
  • Employee recognition is the key to priming the pump and keeping the ideas coming.

Great - how do we Get Lean? By following these steps

  • Specify Value - know who your customer is and what they consider value-adding.
  • Map the Value Stream - start with the first touchpoint in your process, and work all the way up to the end customer. Identify the value in the entire workflow. Also, note down, how long does it take to add value. Identify everything else as waste.
  • Establish Flow - remove waste and harmonise the time to produce through workload levelling, thereby producing a new default work standard. Eliminate bottlenecks as they appear.
  • Implement Pull - once the flow is created, start to produce only what is needed to meet customer demand. Do not do extra. Default to quality and eliminate rework.
  • Repeat - work to perfection as a lean journey is never complete. Reexamine, refine, reimplement.

Very good - but what would a Lean cloud solution look like? Lean can manifest itself in many guises when it comes to cloud technology. Early on we mentioned the word “trimmed”, by its own definition, this implies “an ideal amount” and no more.

By way of an example - let’s take a FinTech code delivery pipeline which is regulated under Open Banking PSD2 directive. Their primary objective is to ensure compliance, and they would like to see a Lean outcome. This can be narrated using the Get Lean workflow.

  • Specify Value - open bank compliance XaaS cloud solution.
  • Map the Value Stream - the time taken to add value reflects on the guarantee of no system breaches. Verify the necessary metrics are in place that met this assurance, thus compliant by design.
  • Establish Flow - map the core compliance checks to monitors in the solution pipeline.
  • Implement Pull - reconfirm that all active monitors are fit for purpose and meet the sector, territorial and data type regulatory needs.
  • Repeat - continue refinement to ensure a centralised dashboard for compliance is created that it can dynamically alert operational support teams.

If the above example has gone over your head, a good alternative metric is to use Return On Investment. However - maybe you could challenge this in a world where more employees are seeking sustainability, where it’s not just about the bottom line with the maximum profits that are the ultimate goal, but a wider agenda where the business ecosystem reflects more on the well being of its people. By investing in the organisational culture, this brings you one step closer to a healthier, more sustainable business, thus Get Lean!

And to summarise it up – by adhering to the five-step process and including correct KPI’s to measure progress, your business can reduce waste and increase performance. The key component in the process are the people, make them the prime focus in adopting Lean methodology.

Accelerate

Accelerate’s goal is to replace the fluff with facts by demonstrating the science behind building high performing IT organisations.

High performing means delivering higher quality changes more frequently. This is underpinned by Lean, which creates the foundations for stability and refinement which can then be capitalised upon, by using Accelerate.

This sounds wonderful, tell me more! This can be achieved with directly observable metrics and inferred metrics. By adopting Accelerate into cloud solution delivery it requires a focus on the following metrics -

  • Lead Time - the time it takes to go from a customer making a request (solution sign off) to the request being satisfied (XaaS solution live).
  • Deployment Frequency - smaller batches correlates with higher deployment frequency. Represented as a percentage and creates the metric for “how often does code reach a certain point in the pipeline”.
  • Mean Time to Restore (MTTR) - This metric is represented as a mean duration. It is the answer to questions like "how long does it take you to restore service during a failed deployment".
  • Change Fail Percentage - a measure for quality throughout the process.It is the answer to questions like “what percentage of changes break builds?” and “what percentage of deployments result in a service outage?”.

Apart from these metrics does Accelerate have anything else to offer? Yes, there are an additional 24 capabilities that can be looked at that improve software delivery capabilities, but rather than considering all of them here, let’s pick one of them which has been a pain point, trunk-based development Vs feature branch development. One of Accelerate’s Continuous Delivery success factors is trunk-based development.

Who knew we could make you smile? So for those of you who have not been afflicted with the need to produce software code, and to use a code repository tool such as Github the comparison is, do we take the easy approach or go down the pain route, which initially instils fear in most developers and product owners. Let’s dive deeper.

Feature branch development implies each developer branches off the main line of code and works on implementing our new features on their own branches. When they are done, there is a deploy process involving multiple merges through testing and staging environments before finally getting the code live and consumed by customers.

Feature-branch-development

This process seems like an obvious winner, giving the confidence to developers to work on their own tasks in isolation and allowing thereby controlling the quality of the code going live. However, maximising individual productivity over team productivity leads to arduous merges with lots of conflicts, and code reviews that are very error-prone and did we mention it, time-consuming.

Trunk based development is where all of the developers commit their changes directly to the mainline of code. In Git, that is called the master branch. In Subversion, it is the trunk, and in Mercurial, it’s the head. The mainline must always be kept in a releasable state, meaning that at any point it should be able to be built and released.

Trunk-based-development

Developers will, therefore, break their work into small incremental chunks, which make small, encapsulated changes to the overall system. Each developer will push their work to the mainline frequently, which ensures they will constantly communicate their work to the rest of their team and release the content to their customers more quickly.

Trunk based development aligns with Accelerate, as it is effective at cultivating a smoother release strategy within development teams, and it encourages more collaboration, ultimately helping us to release high-quality content and better engage with our customers.

Hang on, you did say there would be fear in trunk-based development? Yes, we did say this, it has to do with the fear of a single code commit breaking the entire system, but with the right processes in place, in particular around a tightly integrated CI / CD pipeline with safety nets, where the app developers are giving the right tools to build, deploy and test their code, this fear is mitigated.

And more importantly, the Accelerate benefits of trunk-based development are considerable -

  • The inventory of features, which are developed but not yet released to your customer, is cut down, providing the end-user with new features more quickly.
  • The feedback loop between all of the developers and between the business and its end users is reduced due to releasing code more frequently.
  • The risk involved with pushing to the mainline is greatly reduced when pushing smaller chunks of code more often.
  • When using the feature branch development, there are many tasks that are required, such as making a branch, merging, rebasing, making pull requests, and deleting the branch, and also the time for the pull request reviews. Each of these distracts developers from the work set out for them to do.

Lean Accelerate  Conclusion

“If we have data, let’s look at data. If all we have are opinions, let’s go with mine.” (Jim Barksdale).

This sums of much of what has been covered, metrics are a key to developing an efficient Lean process, driven not only from an Accelerated technology and solution delivery model but through the ability to develop synergy between teams and employees to participate more, in the overall improvement of an organisation or in part. Thereby producing the stability and bedrock on which high performing IT organisations are built. All of which will significantly enhance your solutions time to market.

References

  1. Image 1
    [Internet], Available from https://blog.wavesplatform.com/progress-and-synergy-a4ecb54118c1 [Accessed 11th December, 2019]
  2. Image 2
    [Internet], Available from https://drugfree.org/wp-content/uploads/2017/03/hands-raised-get-involved-square.jpg [Accessed 11th December, 2019]
  3. Image 3
    [Internet], Available from https://openexpoeurope.com/wp-content/uploads/2019/03/DEVOPS-ANALYTICS.jpg [Accessed 11th December, 2019]
  4. Image 4
    [Internet], Available from https://stxnext.com/media/filer_public_thumbnails/filer_public/d4/41/d4414c91-483b-4904-9c1b-fc92c899678c/gitflow.png__1011x520_q85_crop_subsampling-2_upscale.png [Accessed 11th December, 2019]
  5. Image 5
    [Internet], Available from https://paulhammant.com/images/mainline_vs_trunk.png [Accessed 11th December, 2019]