Recovering from the "hero coder" mentality is huge as the company grows. Many small companies want low overhead and don't want a lot of process. They can often achieve a lot very quickly from scratch with few people. Marketing makes crazy promises to customers because they have to and developers pull off feats of hacked-out brilliance at the last minute to save the company.
But then legacy costs and technical debt catch up as the company becomes more entrenched in their market. Progress becomes slower. Much slower. The code is abysmal. The developers are burnt out all the time and bitter. Promises made to customers stop being met. People play the blame game.
Transitioning out of the knee-jerk, fire-fighting, expecting feats of brilliance culture to one that maintains some semblance of sanity and planning can be a difficult and painful culture shock for small companies.
They say the "fast"fast beat the "slow"slow but eventually you're worn out from going so fast that you become slower then the slow. Everyone knows the tortoise ultimately beat the hare :)