Logic Fault

Have you considered running your software on a computer?


Enterprise Software Terms: Syntactic Analysis

Ownership #

“If it has multiple owners, it has no owner” indicates a failure of accountability, not a failure in the ownership model.

Fortunately, failures of accountability are so common in software engineering that nobody needs to care about that distinction.

Monolith #

Nobody can agree on what a monolith is other than “a system where things break when we don’t want them to”.

Fortunately, fragile software is so common that anyone can accuse anything of being a monolith and be right, at least by that definition.

Legacy #

Legacy software refers to one or both of two things:

  1. The thing that actually provides revenue to the business.
  2. The remaining un-converted 15-75% of a conversion project that was completed years ago. Both the converting engineers and the original maintainers are usually long since gone.

Engine #

Every time developers start speaking in terms of an “X engine” for arbitrary business area X, they are either overengineering, trying to make themselves sound like mechanics on the starship fucking Enterprise, or both.

“Rules engine” is the apotheosis of this phenomenon: “lots of if/else, but expensive, slow, and broken”. Black box on the architecture diagram go brrr.

Data Lake #

An expensive and inaccurate duplication of some data into a store that simultaneously doesn’t work and is absolutely critical for the business.

“Absolutely critical for the business” is understood to mean “someone wanted to draw incorrect conclusions from this our data without being criticized, and it was easier to give them a REPL running on a burning pile of money than it was to teach them how to do it right”.

DevOps #

The mind-bogglingly advanced idea that software is important when it runs, not when it is written, so people who write software should also run it.

This routinely slams into the reality that people are not very good at running software.

Fortunately, most people are not very good at writing software either, so nobody needs to be concerned about running it well; they can simply claim expected behavior and move on.