Posted on Sun 11 June 2017
Definitions:
A policy is an organization’s stated objectives and methods for accomplishing a goal.
Sustainable means a model of a system that easily fits into a person’s head and can be used as an accurate prediction of how another person accomplished a goal.
So a sustainable software policy is a set of objectives and methods for accomplishing software lifecycle management that can be easily documented, understood, and consistently applied with a minimum of surprise.
I find it most desirable to reduce cognitive burdens and risks of manual error by automating every policy mechanism that can be so automated. That means that once a human decides what a machine is supposed to do, properly stating and committing that decision causes the rest of the setup, configuration and expected process execution to take place.
(See A Musical Analogy, in particular “Systems administration is conducting an orchestra of computers.”)
In that analogy, programs are musical scores; computers are players; classic ‘hands on’ systems administrators are composers; devops is choreography for automated systems administrators. A software policy, then, addresses the way that we write that choreography. Once you know the policy, you can figure out how the choreography for a particular symphony should go. Because this is moving towards engineering rather than towards art, it is possible and desirable to critique the choreography on how close it comes to being a consonant expression of the policy as well as the fundamental criterion of how well the system accomplishes the goals.
That is, quality matters.
to be continued…