An earlier article linked from HN posits that software that has become big has failed. Many here argued that there are naturally big problems -- for example, powering Amazon.com -- that must be solved with big software. Others counter that it still becomes a mess and causes high turnover and lower innovation.
What are the principles in building very large systems over long periods of time, such that they remain easy to maintain and improve upon?
What are examples of companies with very big problems needing big software solutions that have done this successfully?
What architecture is used? Is there an optimal class of languages to use?
If you were the CTO of a big company dependent on a massive technology infrastructure, how would you build it?