Delivery Practices
Visualisation
โWhat is it
- Visual Management Tools use visual aids like boards, charts, and graphs to represent work items and their status. These tools enhance transparency, track progress, and change the conversational tone into action oriented conversations.
- Good visualisation is designed to be understandable at a glance. Visual collaboration and management tools need good planning and management to be effective. 4 guiding rules are: meaningful in its purpose, accurate in what it shows, easy on eye for fast assimilation and efficient in its ongoing use by the team.
๐ Key Benefits / Why is this important
- Human brains are designed to process images quickly - visuals can be processed 60K times faster than text
- Visual representations helps us explain complex things quickly, enabling a common understanding to be reached across a wide audience
- A well organised visual workflow board radiates information to frame where, why and what conversations with stakeholders
๐ Techniques supporting this practice
Value Prioritisation
โWhat is it
- The practice focuses on assessing and ranking features, tasks, or requirements based on their perceived value to ensure that the most valuable items are addressed first. The idea is to optimize valuable outcomes, by focusing on the needs of users, stakeholders and the organisation.
- The candidate items to be prioritised should come from a single, consistent source, the work/product backlog.
- Identify and define how value is being represented. Please see Value Definition practice for how to do this.
- Choose a technique to apply prioritisation. It is strongly recommended to either use Effort/Value or Cost of delay technique to achieve this.
๐ Key Benefits / Why is this important
- Transparency and demonstrable rationale for how items are being considered more valuable than others in the work backlog.
๐ Techniques supporting this practice
- Cost of delay
- Effort / Value 2*2 matrix
- OKR mapping
- Value definition (practice)
Backlog refinement
โWhat is it
- Ensures there is enough work in the backlog that is defined, understood and estimated to meet the definition of ready for the team to accept it as a candidate in an upcoming sprint.
- Refining the backlog is lead by the product manager. They identify the highest priority candidates to take forward in the next one or two iterations.
- How many items should be fully refined and ready is usually agreed within the team, recognising there is a balance to maintain between developer effort expended in refinement and delivering the current sprint goal.
- As part of refinement, product managers should regularly review the whole backlog to identify the most valuable outcomes to work on. This on going activity should also see the product manager close backlog items that are no longer relevant
- For items sitting near the top of the prioritised backlog, each item is refined by completing these activities: defining the user story including acceptance criteria, collaborative discussion with developers likely to be involved with the user story to understand its value and requirements, estimation, splitting the story if deemed too large.
๐ Key Benefits / Why is this important
- Helps ensure that the team understands the backlog items and is ready to start work on them in the next sprint planning meeting. It leads to more efficient sprint planning sessions and helps the team maintain a steady, sustainable pace of work
๐ Techniques supporting this practice
- Cost of delay prioritisation
- Effort / Value 2*2 matrix prioritisation
- 3Cs
- Planning poker
- User story splitting
- BDD
- User story writing
Estimation
โWhat is it
- Agile estimation practices are typically used to plan sprints, which are short, time-boxed periods of work. Estimation may occur during validation and delivery phases of a delivery lifecycle. Some recommendations on this practice include:
- Choose an estimation approach that is aligned with the level of confidence and understanding of the scope of work in question - t-shirt sizing may be a better approach to use during earlier phases of an initiative, with associated lower levels of understanding and greater number of assumptions and unknowns.
- Key guidelines include breaking large items down so that they are easier to grasp and assess, use any historical data as an empirical reference to guide the activity, involve multiple developers knowledgeable in the type of work required, revisit estimates v. effort undertaken and identify aspects that can be improved for the future.
๐ Key Benefits / Why is this important
- Improving the consistency of estimation can help teams to plan and manage their work capacity more effectively
- Ensures stakeholders and the team have a higher degree of confidence when making decisions
- Builds confidence within the team to better manage their capacity in future sprints
๐ Techniques supporting this practice
Incremental Delivery
โWhat is it
- Incremental Development involves creating a product in small, successive steps, with each step building on the previous one and adding to the product's functionality.
- This approach allows teams to deliver value to stakeholders frequently and gather feedback early and often.
- Each increment should have a clear goal, e.g. sprint goal, attached to it, articulating the value outcome on release to the end user. Therefore each increment should deliver a workable solution that can be consumed by users in a production setting.
- An outcome based roadmap and associated release plan helps to visualise the sequence and impact of each increment, ensuring alignment with the team and stakeholders.
๐ Key Benefits / Why is this important
- Frequent feedback from end users which provides early validation that the usersโs needs are being met
- Reduced risk of effort expended on features that may not deliver
- Flexibility to quickly adapt to end user feedback or changes in their needs
- Increased speed to value. Value is only realised once the service enhancements or new features are in the hands on end users
๐ Complementary techniques practices and frameworks
- CI/CD
- Scrum framework
- User story splitting
- User story mapping

CI/CD Continuous Integration / Continuous Deployment
โWhat is it
- This practice represents a modern methodology in software development that focuses on shortening the development cycle, increasing the automation of testing and delivery, and ensuring software can be reliably released at any time.
- When we talk about CI/CD, we often refer to the CI/CD pipeline. This is the automated process through which code changes go, from the initial code commit through to the final deployment in production. A typical pipeline might look like this:
- Code Commit (to a version control system like Git).
- Automated Build and Unit Testing (Continuous Integration).
- Automated Integration Testing.
- Deployment to a Staging or Pre-Production Environment.
- Automated Acceptance Testing.
- Deployment to Production (Continuous Delivery or Continuous Deployment).
๐ Key Benefits / Why is this important
- By integrating regularly, you can detect and address errors more quickly and reliably
- Increased frequency of releases
- Increased code quality
- Makes the process of releasing software more efficient and reduces the risk associated with the release.
๐ Techniques supporting this practice
- Automated Testing (practice as well as a technique)
- Static Analysis
Source Control
โWhat is it
- Source control, also known as version control or source code management (SCM), refers to the practice of tracking and managing changes to codebase over time. It allows multiple developers to work on a project simultaneously, helps in tracking changes, and provides mechanisms to merge changes and resolve conflicts. Source control is a foundational practice in modern software development.
- Attributes associated to this practice include:
- History & Accountability: Every change made to the codebase is tracked, providing an audit trail.
- Collaboration: Multiple developers can work on the same project without interfering with each other's work.
- Branching: Developers can create branches, enabling work on separate features or experiments
- Merging: Once work on a branch is complete, it can be merged back into the main codebase.
- Rollback: If a bug is discovered, developers can easily revert to a previous state of the code, ensuring stability.
- Backup & Security: Source control systems serve as a backup, storing all versions of the code.
- Distribution: Distributed version control systems, like Git, allow every developer to have a full copy of the entire codebase.
- Integration: Modern source control tools integrate well with other development tools
๐ Key Benefits / Why is this important
- Covered above within attributes
๐ Techniques supporting this practice
Automated Testing
โWhat is it
- An automated test is written in code so a computer can execute it. It might test the validity of a single piece of one system, or of several systems working together. Automated tests are written using specialized tools that simulate program or user behaviour.
๐ Key Benefits / Why is this important
- Unlike manual testing, automated tests can be run quickly and frequently, which is crucial for DevOps environments. In a CI/CD pipeline, code changes are automatically tested before they are merged with the main body of work or promoted to a live environment.
- As the codebase evolves, automated tests act as a safety net, allowing developers to verify that new code changes haven't broken existing functionality.
- Tests can be used to ensure consistent behaviour as well as to validate some non-functional requirements. Some testing tools can simulate thousands of users interacting with a system at once, stressing it to prove there is no performance degradation.
๐ Techniques supporting this practice
- Unit Testing
- System Testing
- TDD
- Stress Testing
- Failover Testing
- Chaos Engineering
Release Management
โWhat is it
- A core component of DevOps, release management is the process of controlling the deployment of software into its execution environments. Release management ensures that software changes are delivered to users in a reliable manner.
๐ Key Benefits / Why is this important
- In most organisations there are multiple execution environments, including testing and live production. Release Management ensures that code is promoted through these environments in a controlled way. Example: Developer Test Internal QA External QA Live
- Release management requires:
- Version control system. Branches or tags are created to mark code thatโs ready to be deployed. Semantic versioning is often used in this process.
- CI/CD pipelines automate code compilation, testing and feature toggling.
- Infrastructure as Code. This ensure the delivery environment is configured correctly to receive the code.
- Effective release management includes planning for failures. Automated rollback strategies allow for quick reversal of changes where failures are detected. One such strategy is blue/green deployment.
- Blue/green deployment uses two separate live environments (slots) where one is serving user traffic and the other is inactive and can accept new versions of the software. When new versions are made live, rolling back is as simple as swapping back to the old slot.
- Auditing capabilities, often built into release management tools, enable organizations to track who deployed what and when, aiding in both compliance and debugging.
๐ Techniques supporting this practice
- Source Control
- CI/CD
- Automated testing
- DevOps
- Semantic Versioning
- Blue/Green deployment
- Auditing