Engineering practices are key to the next stage of agile transformation
In the first of a new series of articles exploring the current state and future trends in DevOps, Jatil Damania, Director of Delivery for Contino, argues that leaders should empower and energise their teams by emphasising common customer-focused goals and good engineering practices.
In an aim to be more customer-centric, Agile adoption has been central to large enterprise transformations over the past few years. This has generally involved the use of agile ceremonies (like stand-ups, sprints and demos), deploying scrum coaches, and establishing product owners and scrum masters. However, this has not had the desired impact of changing the quality of software delivery or customer outcomes.
One of the main reasons is that the focus on the organisation and macro-level processes has missed a key dynamic — ensuring teams have the micro-environment and skills to be customer-focused. There are several measures leaders can take to ensure engineering teams deliver customer success that is within reach.
First off, engineering craftsmanship needs to be at the core of what teams do. To develop good software requires passion and dedication within teams. Taking an example from the kitchen – you want to make the best cake based on the taste buds of your guests, and be able to work together on the recipe, reproduce it, or even hand it over mid-bake. Too often, teams are hamstrung by a strict process or insufficient or poorly configured tools. The process needs flexibility and team members must be able to leverage tools to full capacity.
The old adage of “we asked to get from A to B, they built a Ferrari, and I just needed a bicycle” holds true here as well
Items like “UAT must have 2 weeks” or “Apps must be deployed this way only” often end up reducing the energy and excitement of the teams. Allow teams to mould their approach, define your requirements for security, uptime, availability, then let the teams be accountable for how they deliver it.
Teams must also foreground the customer. Do the teams know what the customer actually wants and how the project they are working on helps to achieve this? The old adage of “we asked to get from A to B, they built a Ferrari, and I just needed a bicycle” holds true here as well. Development teams are often just working on stories defined by others without understanding how customers will use the feature or their desire to change their behaviour.
Engineering craftsmanship needs to be at the core of what teams do
This is why it is essential to make the problem sets tangible, ensure there’s a dialogue between the engineering team and the customer, and that the work is defined in an effective and understandable way, with a definition of what ‘good’ looks like.
Driving home my recommendations is drive through testing. Concepts like test-driven development are frequently talked about. But to make this successful, the business and the engineering team need to ensure they understand the value of early testing. The upfront investment helps ensure the engineering delivers the intended outcomes, and will reduce rework or testing cycles like UAT. The business should be invested in getting these right.
The teams I’ve worked with that don’t have the above focus have often needed more time to release to functionality, or fell short of expectations. Once leaders allow teams to be empowered and energised by common, customer-focused goals and good engineering practices, this early investment will result in a hockey stick of productivity. The teams will be keen to do more demos, get frequent feedback, and deploy functionality more often.