We have taken a ‘team-first’ focus for the book – with techniques and practices that work for teams rather than just individuals – because in our experience many organisations struggle with the team aspects. This will be the first of a series of books on aspects of software systems with planned titles including: Software Testability, Metrics for Business Decisions, and Build & Release Engineering.
We are busy adding significant new chapters and practical examples based on our recent work with organisations in the UK and Germany. Oh, and we have a nice new cover for the book too. Follow us on Twitter for updates: @Operability.
Matthew Skelton & Rob Thatcher, authors, ‘Software Operability’
The run book (or system operation manual) is traditionally written by the IT operations (Ops) team after software development is considered complete. However, this typically leads to operability problems being discovered with the software, operational concerns having been ignored, forgotten, or not fully addressed by the development (Dev) team. If the software development team writes a draft run book or draft operation manual, many of the operational problems typically found during pre-live system readiness testing can be caught and corrected much earlier. Because the development team needs to collaborate with the operations team in order to define and complete the various draft run book details, the operations team also gains early insight into the new software. Channels of communication, trust, and collaboration are established between the traditionally siloed Dev and Ops teams, which can help to establish and strengthen a DevOps approach to building and running software systems.
Do not carve the run book in stone; focus instead on the collaboration needed to write the draft.
Using the term ‘non-functional requirements’ to describe aspects of software systems which are invisible to the end-user but essential for effective service operation is counter-productive; we should instead use ‘operational requirements’ or ‘operational features’, and schedule these for delivery alongside end-user features.