Embracing Automation: The Key to Transforming Your Development Process and Boosting Confidence

TL;DR

Embracing automation in testing, deployment, and validation is essential for faster, more reliable software delivery and increased team confidence. The Azure DevOps team drastically reduced feedback loops and technical debt by shifting to automated, efficient testing and empowering developers with local testing tools. Prioritizing automation and quality builds trust both within teams and with customers, so development managers should focus on automating as much as possible to enable continuous delivery and rapid improvement.

14 January 2025
Written by Martin Hinshelwood
4 minute read
Subscribe

When it comes to developing complex products, one of the most significant steps we can take as developers and engineering teams is to embrace automation. In my experience, this is not just a best practice; it’s essential for success. Alongside reducing the size of our backlog, essentially making our deliverables smaller so we can iterate more frequently, automation becomes a cornerstone of our development process.

The Power of Automation

Automating everything is crucial for instilling confidence in our engineering teams. Here’s what I mean by that:

  • Automated Testing: This is non-negotiable. We need to ensure that every piece of code we write is automatically tested. This not only saves time but also helps catch issues early in the development cycle.

  • Automated Deployment: Continuous deployment to production hinges on our ability to automate the deployment process. The more we can automate, the more frequently we can release updates.

  • Automated Validation: Collecting telemetry data from our products allows us to validate our assumptions and decisions automatically. This feedback loop is invaluable.

A prime example of this can be seen in the Azure DevOps team. When they transitioned to deploying their cloud version of the product, they faced significant challenges. They were accustomed to biannual releases, but suddenly, they were aiming for three releases every week. This shift required a complete overhaul of their approach to automation.

Tackling Technical Debt

The Azure DevOps team had to confront their technical debt head-on. They were dealing with poor-quality code and a testing infrastructure that was, frankly, terrible. Imagine waiting 48 hours to find out if a code change was successful! Their regression suite took even longer, up to a week. This was simply unacceptable.

To address this, they focused on reducing their cycle time, the time it takes to learn from an idea to deployment and back again. They identified their testing infrastructure as a major bottleneck. By converting long-running functional tests into short, efficient unit tests, they flipped their testing pyramid. Over four years, they transformed their testing strategy from 80,000 long-running tests to an impressive 880,000 short tests. This monumental shift reduced their feedback loop from 48 hours to just three and a half minutes.

Empowering Developers

One of the key changes they implemented was enabling developers to run command-line calls to set up the necessary components for local testing. This meant that developers could have a local copy of the system running, allowing them to test their work in real-time. This empowerment not only boosted individual confidence but also fostered a collective sense of capability within the team.

Building Customer Confidence

As we improve our internal processes, we also enhance our customers’ confidence in our product. When things go wrong, and they will, it’s crucial to own up to mistakes and rectify them swiftly. Customers who have faith in our ability to fix issues will be more forgiving when problems arise. They’ll understand that mistakes are part of the journey, especially when they see our commitment to quality and improvement.

The Importance of Quality

In complex systems like Azure DevOps, confidence must permeate every level of the organisation. Each team member needs to trust that the components they rely on from other teams will meet the necessary quality standards. This trust is built through a shared commitment to quality and attention to detail.

Conclusion: The Path to Continuous Delivery

In summary, the journey towards continuous delivery is paved with automation. There should be no room for manual testing in our processes. While we may need temporary solutions, like the Twitter sentiment bot that monitored negative feedback during deployments, these should only serve as crutches while we work towards full automation.

By pushing the boundaries of what we can automate, we not only improve our code and quality but also enhance our engagement with customers. The road may be long, but with dedication and a focus on automation, we can achieve remarkable results. Let’s keep pushing forward, embracing the challenges, and striving for excellence in everything we do.

Subscribe

What to read next

Video Engineering Excellence DevOps

Unlocking the Future of Software Development: Why Automation is Your Key to Success

Explores how automation boosts software development by reducing errors, speeding up deployments, and ensuring consistent, high-quality …

Watch video
Video Engineering Excellence DevOps

Unlocking the True Power of Continuous Delivery: How Automation Transforms Software Development

Explains how automation in continuous delivery improves software reliability, reduces risk, and enables faster, safer deployments through …

Watch video
Video Engineering Excellence DevOps

Why Embracing Automation is Essential for Reducing Human Error in Software Development

Explores how automation in software development reduces human error, improves reliability, and streamlines workflows, using real-world …

Watch video
Video DevOps Engineering Excellence

Stop Hoping for Quality: Why Automated Pipelines Are the Only Way to Deliver with Confidence

Stop relying on memory for quality. Discover why automated pipelines beat manual checks, and how embedding quality gates ensures trust, …

Watch video
Video Product Development DevOps

Is Your Project Ecosystem Truly Agile?

Explains why true agility requires end-to-end automation and short feedback loops, not just Agile teams, to maximise value and efficiency …

Watch video
Article Engineering Excellence DevOps

Stop Hiding Behind Complexity and Start Delivering Continuously

Continuous delivery is achievable for any software, regardless of complexity. Success depends on investment in automation, quality, and …

Read article