Understanding Software Delivery Systems

Enabling Continuous Delivery

Successful teams strive to efficiently deliver new value while building or maintaining customer trust in services and products they have already created. Achieving continuous delivery (deploying changes to production daily or on-demand) is proven to accelerate delivery, enhance reliability and boost customer-team satisfaction.

Sequencing the good ideas

While engineering leaders understand the importance of continuous delivery, they navigate a complex landscape of ever-evolving teams, processes, and technologies. The real challenge lies in determining the most effective sequence of initiatives to prioritise, balancing immediate needs against long-term goals.

Based on years of working on continuous delivery with hundreds of individual teams worldwide, we have created a living model to help organisations assess and understand what areas or needs are the best problems to solve in accelerating software delivery performance.

The Hierarchy of Engineering Needs model combines Maslow's hierarchy of needs theory with modern development and operations to acknowledge the following observations:

  1. Some team needs are more basic or fundamental than others

  2. While technologies evolve quickly, the underlying needs a technology supports are more stable

  3. The more advanced a need, the more it depends on lower needs being first met satisfactorily

  4. The importance of any individual need is relative to the context of the team and organisation

  5. If two needs compete for resources, prioritising the lower need(s) is generally more impactful.

  6. Initiatives across people, processes and technology can contribute to multiple key constraints

Hierarchy of Engineering Needs

Five levels of needs

  • What does any team, regardless of age and stage, need to build an application and deploy changes to it?

    From People and purpose to Computing and a Backlog, all software projects need fundamental things in place for the team to succeed. The more the group meets these needs in a self-service experience, the more successful the outcome.

  • What does the team need to make work repeatable and have controls to verify the quality and efficiency of new work?

    The team has begun to agree on standard technical practices. Documentation and information on components and their operational routines are accurate and familiar. Deployment solutions automate the orchestration of quality and compliance checks. The team can invest in controls and tooling for the early warning of failures and abnormalities. Delivery and flow efficiency metrics highlight opportunities for relative improvement within the group.

  • What does the team need to effectively own and operate services already in production, regardless of new development work on those services?

    The team has codified the creation of new services to their agreed standards. Compliance controls are managed and verifiable through change control. Quality of service is monitored, reviewed, and managed proactively.

  • What does the team need to grow and mature on a yearly level? Technical practices have made continuous deployment to production a norm. The engineering team focus more on customer product metrics than on Engineering constraints. Experimentation techniques are embedded for both technical de-risking and customer behaviour hypotheses. The team enjoys a diversity of Engineering talent and experience.

  • Maturity here is marked by being able to work productively over long periods while maintaining, if not increasing, customer trust. Governance and controls for security, privacy, cost, and disaster recovery are in place and regularly exercised. Teams have enough space to run multiple experiments in parallel and proactively learn about system behaviour through chaos engineering. Hackathons and Game days foster innovation by quickly acting on ideas discovered.

Engineering Needs Version 7, September 2023

Applications

At Wires Uncrossed, we use the Hierarchy of Engineering Needs model daily when working with organisations. Through that work, we continue to evolve the model, publishing updates and refinements in response to industry changes and feedback from clients. More broadly, the model has proven effective in helping or simplifying the following:

  • Communication with senior and non-technical stakeholders

  • Informing Strategy

  • Prioritising Engineering Enablement

  • Initiative Prioritisation among Engineering Leadership

  • Shared responsibility modelling

To learn more about modelling your delivery system, book a no-obligation introduction call