Why is writing business software so hard?

A series of essays about building business software: why it is so hard, and what we trade away when we try to make it easy.

  1. 01Fifteen hundred classes and no visible shapeDoing everything right produced fifteen hundred classes, fifty packages, and a two-week change to add one column.
  2. 02Between deployment and dataWe have durable ways to draw where software runs and what it remembers, and only temporary ways to draw what happens in between.
  3. 03Drawing the transactionThe transaction is a design object we use constantly and almost never draw.
  4. 04Yeah, but does it work?What the Test Pyramid stopped telling us about business software.
  5. 05Why does it only fail in production?Why transaction bugs look intermittent, and why hiding the transaction makes them harder to understand.
  6. 06Why does modularity stop at the database?If information hiding matters in code, why do we so often expose the entire relational representation underneath it?
  7. 07Why can't I build a simple business screen on my own any more?What did we trade away when rapid application development became web development?