InfoQ Homepage Articles Software Architecture and the Art of Experimentation
Being wrong is frustrating, wasteful, sometimes embarrassing, and yet… inevitable. Especially with respect to software architecture, If you are never wrong you are not challenging yourself enough, and you are not learning. But being wrong is psychologically painful enough that most people avoid it, primarily by never checking their work.
Some people think that they can’t test the architecture of a software product without building the whole thing. But a software architecture is not a single thing, it’s the result of lots and lots of decisions, each of which can be isolated and evaluated through experimentation.
And while we can’t avoid being wrong some of the time, we can reduce the cost of being wrong by running small experiments to test our assumptions and reverse wrong decisions before their costs compound. But here time is the enemy: there is never enough time to test every assumption and so knowing which ones to confront is the art in architecting.