Can your company release a software update in hours?
Have you released a software update this week? If you wanted to release one by Friday, could you? If your service went down now, would it be back online before customers noticed?
If you answered “yes” to all three questions and your organisation does software engineering with functional silos, congratulations, says Craig Cook, Chief Engineer at Agile consultancy Catapult, now pull the other one.
One of the characteristics of a highly successful software company is that it can rapidly progress from having an idea to getting a finished, bug-free release in front of customers. How long this takes varies between businesses, but the best software companies can do it in a matter of hours.
In many companies, however, product releases may take months. Long lead times lead to long feedback loops and, all too often, customer demands have changed by the time the release is live. Worse still, you might realise it's not even what the customer wanted in the first place.
Rapid releases
To increase the frequency of releases, any barriers that slow work down must be removed. While working with functionally siloed set up organisations, we often find managers and C level executives are surprised by the speed at which we get results using DevOps practices. We’re told that similar projects at the organisation took longer, cost more and achieved less.
Unfortunately, functional silos in software engineering are very common, to the point where it's considered the traditional way of doing things.
For example, a company might have separate teams for development, testing, operations, infrastructure and security. This means that the same work is passed around an organisation, with each team handing it to the next team.
Even if each team only spends one day on a project before immediately passing it on to the next team, in a business with five separate teams the timescale is a week at best. Add other team priorities, existing commitments or multiple concurrent projects to the mix and the timescale becomes weeks, months or even years.
Organisations require a different approach to deliver a release in under a day. DevOps breaks down functional silos by bringing development and operations teams together to work on the entire software development lifecycle. This improves communication and collaboration, as teams have a better understanding of each other's needs and can work together to resolve problems more quickly and efficiently.
Customer centricity
“Speed to market is important, but it's even more important to release software that customers love,” says Louise Cermak, Principal Consultant at Catapult. “Too often, when helping clients that are experiencing issues, we see developers that have never even met a customer or know what type of customers the company serves. How can you give the customer what they want without a good understanding of their needs?”
Implementing DevOps means shifting team focus from functions like infrastructure or security, to the customer and a value stream for that customer. Ideally, for every point the customer interacts with the business, there is a team aligned behind that interaction.
For example, a bank could have a team dedicated to online banking, which contains a mix of people from each of the traditional silos. Focusing on the specific online banking customer, rather than a functional area, makes it easier to respond to customer demands.
That way, if customers ask for a new feature, it can be prioritised and then launched quickly and any subsequent issues that could lead to downtime can immediately be resolved. Ultimately, using customer input to iterate and improve the service helps companies retain existing customers and recruit new ones.
Implementing DevOps can seem like a daunting change from a traditional set up, but if you want to answer “yes” to those first three questions, compete with your competitors and keep an evolving customer base happy, it’s the way to go.