Small teams can be highly effective at creating big systems. In this "Behaviorially Speaking" feature, Bob Aiello explains how to be successful in a small team environment and also handle the growth often necessitated by success.
Small teams can be highly effective at creating big systems, and there are published studies describing the many ways in which high-performance teams achieve their amazing levels of success.  I have enjoyed being the build and release engineer for a number of small and very successful teams, often in the most demanding trading environments. I have also seen previously successful small teams lose their effectiveness as they have grown. Small teams may add a member or two, only to have their previously high-performance team structure disrupted along with their effectiveness and productivity. Read on if you would like to be successful in a small team environment and also handle the growth often necessitated by success.
Most of us would not want to find ourselves in a battle where the opposing army has superior numbers. Law enforcement uses omnipresence to prevent crimes, and when cops get into trouble, their first step is to call for backup. Clearly, there are times when you want to be in a very big team.
So, why would a small, elite team be more effective in some situations than a larger group? The first reason might be as simple as the psychology of being a member of a small group that faces an overwhelming task. When a group fears for its very survival, the group members may bond together and accomplish amazing things against all odds. Small startups may find themselves in exactly this situation with “survival”—continued employment for workers—at stake each and every day. It's not hard to understand that everyone in a successful startup would need to expend significant discretionary effort covering many different roles that, in larger companies, would be handles by other employees . It is also not hard to understand that members of a very successful team will likely reap significant rewards. These rewards can include stock options and the experience reaped from playing a wider role.
Many hedge funds are known for paying their team members a lot of money while demanding and receiving superior performance—monetary motivation. While being in a successful hedge fund may be very profitable, these rewards do not come without their own set of risks. Many hedge funds also stumble and go out of business. Interestingly, the members of the team often find themselves working together in another organization. I have worked with many of my own colleagues across two or even three different organizations.
Small teams must use the most efficient software methodology methods, or they won't be successful and they won't survive. A rapid build, package, and deploy system is a must have for any high-performance technology team. This means that you need to establish effective source code management procedures so that your build server can pick up the correct baselined release. Usually, small teams don't require complex branching and merging, although being able to fix a bug in production does require at least a bugfix branch. Your build automation is probably written in Ant, Maven, Make, or MSBuild, and you most likely have some supporting scripts to automate the entire process. I usually set up a simple continuous integration server in these small teams and fully automate not only the build but also the deploy to the test environment. Setting up the right tools and process is important, but the CM guru in a small team often wears many other hats, too.