There are many teories on how to organize and how team to perform best. I would not talk about them all. I just want to point out one of my experiences where I feel most confortable and where I feel that team is most productive.
I had experience with big companies, big teams, small companies again big teams, small company small team etc. That is why I think I have a right to talk about it. So what is best organization? I would vote for small team, actual minimal team. What do I mean by that? Two or three people teams. In this constalation you will have most productive teams. If you have big product with a lot of people, split it to features, and add teams to some major features. But also, it is important to give team a mission and a goal. So people know that they do something very important.
Advantages of small teams
1. Focus – People know what they do, they have complete focus on that. They have cause and mission, and they build team faster, so they are performing faster and more focused.
2. Clarity – in a smaller team, everyone has a line of sight to everyone else. Everyone is aware of the circumstances, the successes, the failures and the expectations.
3. Cohesion – smaller teams have a greater chance to be more cohesive. (The corollary here is they also have a better chance of tearing each other apart)
4. Administration – You don’t need any. Of course only if you have that constalation, that some higher managment don’t want any. But for team management, you don’t need any tool or any reporting. Everyone has track what has to be done and what is done.
5. Interaction – I can interact more easily with each individual and gain a sense of their commitment level
6. Visibility – Since it is harder to “hide” on a small team, I can quickly weed out those who aren’t up to snuff or just aren’t bought in to the program.
7. Energy— The energy in a small team, if you pick the right players (more on that later), can be extremely high and focused. You can all march enthusiastically to the same beat.
8. Flexibility is a must in a small team, which is a huge positive. You don’t have people who must be extremely specialized in one core skill as you have to have in a large team. And because of that, you can really move the team in a new direction if that’s where the market takes you. Larger teams are much more locked into a path that is hard to detour from.
9. Passion — In a small team, you can pick people who are passionate about the direction your team is headed.
10. Personal growth — Allowing people to work on many different things in order to help the team achieve its goals is extremely empowering and allows people to really grow.
11. BEING CLOSE TO EACH OTHER — It’s amazing how important it is to be close to each other when working on a team
When it applies
Of course this does not applies always. This suits best for development of new features, but it does not work great for maintanance. It works if the team that developed feature maintains it, but if you set other people to maintanance of part of software developed by other people, it simply won’t work. Try to keep people that work on some part of product, because they know it best, and they can feel it like it’s theirs child. So they will gradly work to make it perfect, but new developer don’t have motivation of fixing other’s people bugs. It’s all about motivation, and it is almost impossible to motivate someone to fix other’s bad work. Also, don’t mix to engineer’s work. They know their competences the best, and you may just screw project by telling them how to solve problem. Just tell them what is the problem. What is input, what is expected output. They will find best solution.
I would love to hear about your experience when the team was best? When you felt most productive? Please leave a comment.