All I want for Christmas is speed and reliability

Photo Credit: FlyD via Unsplash

What were your Christmas lists like as a child? Were they modest requests for improving books and educational toys? Or were they, like most Christmas lists, an extravaganza of wishes, containing toys and sweets and games . . . and possibly a dragon and a unicorn?

It sometimes feels like our requirements for software development are like a Christmas list written by a very small child that wants everything at once. We’d like the ERP package to have world class embedded processes, but we’d also like it to customise it to meet our every need. We’d like the cloud platform to give us capacity on demand and pay as we go, but we’d also like it to be on-premise because we’re worried about security. We’d like an AI system that predicts our customer’s needs, but we’d like to do it without using our data.

And being a project manager or a product owner can feel like a harried parent who can’t possibly afford everything on the list, and is worried that Christmas morning is going to be a disappointment. If I give them all the customisations they want, then we can never take the upgrade. I can give them security on cloud, but they’ve got to understand the shared responsibility model. I can build them an AI model, but not unless someone’s prepared to share the data.

Fortunately, I believe that there are gifts that we can ask for which we can have at the same time, and which unlock the potential for many more gifts. I think that anyone sponsoring, building or running software should have speed and reliability at the top of their list, ahead of other more visible features: speed in the sense of being able to make frequent releases, and reliability in the sense of services that don’t go down in the event of routine failure. Unfortunately, many organisations would benefit from these features fail to put these gifts at the top of their list, for two reasons.

First, they have convinced themselves that speed and reliability are in opposition to each other. They regard speed as a priority of the development team, and reliability as a function of the operations team. Rapid change from the development team is seen as a threat to operational stability, and controls to protect production services are seen as a brake on change. This story feels as old as some of our Christmas stories, and the answer has now been around for a long time too: organisations in this situation should ask for some DevOps in their Christmas stockings.

Second, many organisations simply fail to value speed and reliability. They see them as invisible properties of their systems, far less tangible than features that they can see and touch. They optimise the front end over the full stack, without realising that the full stack is what makes the front end possible. Such organisations are heading for a Christmas morning of shiny toys with flashing lights - but no batteries included.

The solution to the second problem is harder than the solution to the first (not that implementing DevOps is easy - if it was, then it would be implemented everywhere and we might not be talking about it any more). It requires a shift in perception and priorities, an understanding that software is infinitely flexible and malleable, and an appreciaton that features come and go, while platform properties persist. When we get it right, it’s as if the genie in the Christmas pantomime had relaxed their rules, and allowed the hero to wish for more wishes.

If we put speed and reliability on our Christmas list we can have both - and everything that they make possible. But we must be very, very good.

Wherever you are, however you mark this season, best wishes to you all.

Previous
Previous

Embrace the gift of boredom this Christmas

Next
Next

Precision is not pedantry; clarity is not cynicism