Basic economics tell us that in the evolution of a business, a company changes its fundamental nature from one where it is making money by doing whatever it does to losing money by not doing whatever it does. As an example, consider a business grooming dogs. Initially you may open a cheap store front and work by yourself. If you have five customers a month, you cover your rent and other expenses. Since five a month is not hard, most of the time any work you do is making you money. As you grow and get more customers, you have to hire extra people to groom dogs. Eventually you have to hire people who are not directly related to dog grooming. A receptionist, an accountant, ''et cetera''. You move to a fancier location with much higher rent. You get a fancy neon sign that burns power. You need better phone service to handle customer calls. Now if the business shuts down for a day, you lose money due to the overhead burned whether or not you are open. In essence your company has changed it nature from one where you want to stay open to make money, to one where you must stay open to meet expenses. I suspect that this phenomenon has a significant effect on software development. Initially software developed provides benefits for those who pay for its construction. For example, it reduces time needed to do billing. As the software progresses, though, it comes to the point where if the software doesn't work, you can't do billing. The software has made the transition. So software undergoes a transition from software you want successfully developed, because it makes you money, to software that must be [maintained] or you lose money. It is my opinion that the majority of software failures fall into the latter category. -- ThaddeusOlczyk, [AnonymousDonor] ''References? Many businesses do not develop this way. For example, a hairdresser's salon, dental clinic, or restaurant business grows by expanding to new premises. As the business grows, the accountant's fees reduce as a proportion of turnover, and the benefits of his advice increase. Many of the differences for software companies are benefits. They don't need neon signs, up-market location, or more than a small proportion of non-technical staff. Some of the technical staff can work from home, avoiding time wasted on travelling.'' ---- Good insight. My wife has a business that works because it 1 follows the line of your second paragraph (small, low client count) 1 allows people who want to expand to do so without having to plunk down for office+furniture+receptionist+phones+equipment+lights+heat/cool+etc. She accomplishes what secretaries and receptionists and executive assistants do, but from 2,500 miles away. Having her sit in Nevada and do this stuff from her home/office costs her East Coast clients way less than the infrastructure buy-in needed to support that same function in Boston. ---- Another perspective is presented in OrganizationTrumpsIndividuals.