Good architecture is necessary to give programs enough structure to be able to grow large without collapsing into a puddle of confusion.