We were in DC a couple of weeks ago visiting with some friends in the area, one of whom is a landscape architect. I’m always curious to learn more about architecture, though I know next to nothing about it. In particular I’m interested in the overlaps between the architecture of buildings and landscapes and the architecture of software systems.
I asked my friend how much of his designs cover all the little corner cases that may come up in the building process versus how much needs to be tweaked once the builders are working. He told me that a lot of the design is guesswork and the builders (developers in my world) need to make a lot of small decisions about the implementation once they’re in the trenches. I asked how often they come back to the architect to confirm whether their decisions are correct. “Not very,” he said. It’s all about the architects trusting the builders to make these kinds of choices on their own, and the builders trusting themselves to do it right.
This is very similar to the software world. You can’t possibly think of everything in the design phase, so the developers end up making lots of small executive decisions about implementation along the way. And there just isn’t time for them to come back to the architect (or the client) for every little thing. That having been said, if there are some major gaps or flaws in the design, the developers do need to check in with the designers (and the designers with the client) before they proceed. Knowing where the line is between small executive decisions and big is what separates the good builders from the bad.