Often founders start companies with visions of elegant, beautiful product architectures that will solve so many of the nasty issues that they were forced to deal with in their previous jobs. Then, as their company becomes successful, they find that their beautiful product architecture has turned into a Frankenstein. How does this happen? As success drives the need to hire new engineers at a rapid rate, companies neglect to train the new engineers properly. As the engineers are assigned tasks, they figure out how to complete them as best they can. Often this means replicating existing facilities in the architecture, which lead to inconsistencies in the user experience, performance problems, and a general mess. And you thought training was expensive.
– Ben Horowitz