You have hand-picked every single member in your team. Every single one of them is a fully competent one man army. When you ask them to do something, things get done.
Your organization is growing faster than you think. There is more work around than your team can possibly complete in years. You tell yourself that you need more people. More small teams like this one.
You scale up.
You hire more kickass programmers.
It is time. You ask your team members to step up, grow and lead their very own teams.
You continue working with your current team. Each of them now has their very own team which in turn is running a module or an entire project. All of these teams are highly effective and getting their job done.
You now have what they call - an organizational structure of self sustaining teams - in the management world.
Collectively, these teams are getting more done than you ever thought was possible.
You are living in a paradise.
Now unless you are seriously lucky, chances are, that you are going to snap out of your dream really fast.
It will happen when a young recruit you placed in one of these teams last year is going to walk up to you one fine morning and say in very clear words that his team culture is nowhere close to the culture you wanted to promote in your team. He might, for example, tell you that he is being micro-managed, bossed around or being pressured to work late three days a week.
It will hit you. Really hard. The realization that some of the core values that you worked really hard to push in your team may not be flowing through to rest of the organizational structure under it.
Jack is a very effective programmer. During his course of working with you, you developed strong respect for his talents and a strong friendship with him. You wanted to help him grow and hence the decision of letting him manage his own team. Now you have a young and budding engineer working under Jack telling you loud and clear that Jack, is not a very good manager or for that matter a very good leader.
Accepting that, dear reader, is going to be a painful reconciliation.
Confronting the issue and doing something about it is going to be even more painful. Your mind will trick you into telling yourself amazing stories in favor of Jack - Maybe his team members are bitching unnecessarily. Maybe he needs more time. His team is effective; maybe it is just the fact that his management style is different. His team is effective - he is getting things done - his team members will eventually get used to his working style.
Put simply, you can either confront the issue or tell yourself stories to avoid it.
What you are doing, dear reader is, making a choice. A choice between whether your organization will live by its core values that got it so far or it will grow big and lose its soul.
Go ahead, cut through to the bone. Confront the issue. Look at Jack in the eye and ask him to make a choice between passing on the core values, happiness and freedom that he receives from you, over to his team or stepping down and letting someone else lead.
That, dear reader, is your own chances at letting your organization retain the magical touch of being small as it grows and letting it retain its soul.
I wish you good luck.