This question is related to another one, "Ideal office space layout - open or offices?", but I think it's worth a question of its own.
There are many voices advocating that developers have to be in private offices in order to reach maximum productivity, being Joel Spolsky probably the most prominent of all them.
A problem of this approach is that it's not very flexible for a growing company. Some approaches you can take and their related problems are:
Changing offices once in a while and "hiring in bulk" after that, not growing in number of employees meanwhile. This approach is far from the optimum in hiring practices. Hiring good employees requires time, and you cannot expect good results with tight hiring schedules. Training difficulties and deficiencies when there are many new employees in the company is another issue to take account of.
Renting more space than needed at the moment, and fill it while growing. The problem with this is, obviously, that having unused offices can be very expensive for a startup.
Turn private offices into shared offices as you grow and change location. This has some problems too: it will be difficult to convince people your approach is really "private offices" when trying to hire and retain employees. It can also create some personal problems as some people would have to share its office while some other people would not have to.
Change offices very often. Changing offices is expensive, especially if you need to adapt them, and every move can be uncomfortable for your employees.
Do you know about other approaches to this problem? Which ones have you used or seen? Which one do you think is the best?
Thanks for your opinion.