For instance, my team starts with just me. I needed to push a fullstack web app out the door. Then we got more money and the team grew to 4. I can't be the same generalist anymore or else I will work myself into a bottleneck.
I still require everyone on my (web) team to be generalists or know the fullstack. This way, no one can be a bottleneck and everyone can solve problem or implement a new feature independently.
The problem is "integration", or when the projects become too big for just 1 person. In those instances, we solve a lot of frictions by having a final "dictator" for technology decisions and a "team manifesto" in term of best practices.
So far so good. Now, if I can get a ops guy to help me then I can sleep with both eyes closed :)
-V.