flâneur

Systems analysis through postmortems – Increment: Software Architecture

increment.com · saved by 1 readers

If software is a “system of systems,” a nested hierarchy of components layered on top of each other, then software architecture is a model of that hierarchy and the interactions between its components. Crucial to designing successful architecture is knowledge both of the software itself and the world it serves—but this knowledge is at best incomplete and out of date. All software is a best-effort model of the world, constrained by the limits of the hardware, the companion software with which it’s interacting, and the skill of its implementers. “All models are wrong, but some are useful.” In 1976, statistician George E.P. Box coined this succinct reflection on the difficulty of designing systems that mirror the complexity of the real world. While Box was talking about statistical models, his maxim also applies to software models. All software is a best-effort model of the world, constrained by the limits of the hardware, the companion software with which it’s interacting, and the skill

saved by