Skip to content

Instantly share code, notes, and snippets.

@ntalbott
Last active December 31, 2015 13:29
Show Gist options
  • Save ntalbott/7993100 to your computer and use it in GitHub Desktop.
Save ntalbott/7993100 to your computer and use it in GitHub Desktop.
Operable Software

Operable Software

What does it mean to make software that doesn't just run, but is operable?

Good question! This represents some current thinking on the topic; there's tons of details in each of these things, so this list is expected to change and get more detailed over time.

Operable Software seems to involve (at a minimum) thinking a lot harder about and making sure there is a strategy (and code where appropriate) for:

  • Metrics
  • Logging
  • Backups
  • Alerting
  • Deployment
  • Migration
  • Security
  • Admin
  • Reproducibility
  • Documentation

There are also aspects that seem to warrant thought before deploying into production, even if the answer is "do nothing for now":

  • Scalability / Capacity Planning

YAGNI

What about "make it run, make it right, make it fast"? This doesn't really change that; rather it is a modifier on the definition of "right", where now that doesn't just mean "well designed" but "operable" as well. And this should be implemented within an iterative feedback loop; the tricky part is that many of the things on this list are actually themselves a form of feedback.

So: apply with experience.

Related resources:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment