What delivery managers need to do to ensure quality software is delivered at pace
Delivery managers are an essential part of the software engineering journey, particularly in the context of a technology services business. They play a crucial role in how a product is delivered, taking it from idea, to build, to launch, by leading the team and implementing agile principles.
However, just as no two product requirements are the same, the skills and capabilities of delivery managers also vary. The biggest difference is often found in their level of technical expertise.
While all delivery managers should have some knowledge of technology, those with a deeper understanding of technical tools and processes are far better suited to software production environments. Here's why.
The difference between delivering discoveries and delivering software
We can think about agile software engineering as an expedition, taken on by a team of experts hand-picked for their specialist skills (user researcher, designer, business analyst, software engineer etc) who are each called on to navigate specific points in the journey. The expedition leader, with ultimate responsibility for getting the team from the start (the beginning of the project) to the end (the point of value realisation or the delivery of effective working software), is the delivery manager.
Without a good level of technical expertise, the delivery manager won't be able to take the team successfully from A to B. They might get through the earlier stages of the life-cycle, delivering Discovery or Alpha solutions really well and in a way that satisfies the client. But there's a big difference between this and the core of the journey - delivering working software in a production environment to support mission-critical services.
A lack of software engineering understanding is the metaphorical 'roadblock ahead' sign, the landslide across the trail, which means the journey can go no further after Discovery or Alpha.
It's an indication that the delivery manager (and therefore the team) simply doesn't have the capability to deliver the product to live, iterate it, and support it. They can't plot a route ahead.
The do's and don'ts of a delivery manager
The delivery manager is a critical role that can make or break a team environment and significantly impacts a team's ability to deliver effective working software. To that end, here are some guidelines as to what is - and isn't - required of a delivery manager.
What a delivery manager must do
- Be empowered to say no to unrealistic client requests
- Focus on delivering value early and as often as possible
- Create an environment where everyone works in the open
- Promote agile excellence and adapt the process through short feedback loops
- Build a high-trust environment where engineers feel safe and happy
- Emphasise the need to deliver high-quality, robust, and secure software
- Act as a coach to the engineers but also to the client team and organisation
- Connect with engineers at a human level and show them that you care
- Facilitate direct communication between the customer and the engineers
- Be honest about estimation and pivot towards early and regular releases
- Facilitate regular retros and identify and action improvements
- Understand and embrace modern software engineering practices
- Promote direct lines of communication between the team and the customer
What a delivery manager mustn't do
- Say yes to every unrealistic client request to "keep the client happy"
- Use estimates or sprint velocity as a tool to pressurise engineers
- Discourage or fail to consider quality practices as important
- Make important client decisions without input from engineers
- Repeatedly ask engineers to work harder and faster
- Pass client pressure directly onto engineers
- Expect waterfall thinking to blend seamlessly with agility
- Willfully ignore the agile principles and focus on “the plan” and deliverables
- Behave like “a boss” and prescribe what everyone does in detail
- Micromanage engineers - failing to trust them to give their best
- Passively accept how the client likes to work without challenge
- Treat engineers as disposable resources
- Take engineer feedback personally and disregard it if you don’t agree
- Neglect to tackle technical debt on an ongoing basis
- Act as a “go between” with the client stakeholders and the team
Delivery managers prove their worth
There's no shortcuts for experience, and all good delivery managers will have cut their teeth on a range of technical projects. They need to be equally skilled in managing interpersonal relationships - both within their team and with the client, enforcing technical excellence, and keeping everyone focused on the task in hand.
Good delivery managers are hard to find, but they prove their worth time and time again. If a piece of software exists that is user-focused, technically excellent, and was built quickly and cost effectively, then you can bet there was a talented delivery manager behind it.
At Foundry4 we have the technical and engineering capabilities to deliver end-to-end solutions, not just prototypes or design experiences, but working software that is well engineered and easy to use. This is the very essence of agile delivery approaches. Get in touch and we'll be happy to discuss how we can meet your needs.
Ready to discuss your next software engineering project?
Stuart is a strategic and innovative CTO with strong leadership, technical, and delivery skills with broad and deep experience across a range of different sectors and cloud technology platforms.