Software Operability: a DevOps cornerstone

Free eBook: ‘Making software work well’ in this dynamic, interconnected world is the focus of Software Operability

Sign up to receive our weekly Top 10 links digest

Download our free 6000-word eBook and join our free webinar!

The practices and approaches known as DevOps – strong collaboration between development and operations teams – have helped organisations to re-align their business and technology goals towards sustainable delivery of valuable, working software. One of the key goals of DevOps is to ensure that software runs well in the Production environment, especially in the context of regular changes (deployments).

Mallorca Train

Electric trains in Mallorca, Spain, built in 1929 by Siemens and still running in 2014: an example of a physical system with good operability [Photo Copyright © Matthew Skelton 2012]

One of the driving forces behind DevOps is the increasing prevalence of complex, distributed software systems which calls for a substantially different approach to building ‘business’ software systems: an approach that anticipates and expects failures, transient behaviour, emergent states, and unpredictability; and ensures that failure responses are gradual, graceful, and graph-able.

‘Making software work well’ in this dynamic, interconnected world is the focus of Software Operability. If you lead a team or department in the development or operation of modern interconnected software systems, and want to understand why and how to make your software systems work better, then you should download our free 6000-word eBook entirely dedicated to the topic.

Quickstart recommendations for better operability

In order to improve the operability of software systems, our eBook recommends that you:

  • Recognise that distributed, interconnected software systems need elevated skills
  • Add ‘hooks’ into software components for operational checks
  • Have software development teams write a draft Run Book
  • Avoid a ‘production-ization’ or ‘hardening’ development phase
  • Avoid expensive Production-only tooling
  • Avoid the term ‘non-functional requirements’; use ‘operational features’ instead
  • Ensure that failure responses are gradual, graceful, and graph-able
  • Treat logging as a first-class concern and a means of communication
  • Have the Product Owner and developers on call for Production incidents
  • Make operations activities more visible: server restarts, load-balancer work- arounds, etc.
  • Treat software operations as a high-skill, value-add activity

Lots more details about the above in the eBook, go get it now and join our free webinar! 🙂