Anyone who writes code is always interested in the capacity (or load) that their system can handle. For some, including this author, it’s a matter of pride and bragging rights. However, there is a different type of capacity that is normally overlooked. When was the last time you estimated your team capacity?
Your team capacity is as equally as important as system capacity. Team capacity determines how much work you’re getting done and, at the end of the day, how much value you’re giving to your customers. I think that most folks automatically assume that their team capacity is some magical number calculated based on the number of people that work on the team multiplied by a ‘hours per week’ number. Although this isn’t entirely incorrect you might be short changing yourself.
So to start, let’s talk about what factors go into team capacity planning. There’s the obvious, availability of the team. You can’t factor forty hours a week if your team is also dedicated to other tasks. What about complexity of the tasks? There are methodologies out there that can help you plan for that. What’s missing from the equation? Simple, budget, talent and infrastructure. Let’s take a brief dive shall we?
Budget
Most projects have budget constraints. However, you need to weigh your available budget with time. I think most people think that if you have 5 FTE’s (Full-time employees) working for six months on a project and it takes up the entire budget you’re probably doing better than most. What if you have 2 FTE’s and 3 contractors that complete the work in 4 months but still fit within your budget? What about 2 FTE’s and 3 contractors and it still takes six months? Is it worth it? Now you have freed up 3 additional FTE’s! You now have just added to your team capacity. You actually end up retaining intellectual property because of your FTE’s, but get the work completed by augmentation. The pitfall is that typically a contractor will always cost you more. So you need to figure out what the difference is between time and cost in order to take advantage.
Infrastructure
Infrastructure is the key to making budget and talent work. When I talk about infrastructure I’m talking about your team’s ability to ramp up an outside resource. You need to ask questions like: How long does it take to setup our environment? How long does it take for them to understand our architecture? What software will they need to complete the work? I’ve seen a lot of talent and budget wasted on this over the years. If you want to increase team capacity you should focus on the ramp up. And not just for augmentation, but for your own team as well. Either way a solid infrastructure adds to your team capacity.
Talent
Talent is probably the most important aspect when considering team capacity. I’ve spoken about budget and infrastructure. However, if you don’t have the talent to manage ‘additional capacity’ then you might as well have stopped at paragraph one. If you follow budget and infrastructure than you need someone to help you manage the additional ‘capacity’. This is where you need to invest in the team. Based on my experience, a good senior level technical person can manage three to four staff augmentations (read contractors). Again, the benefit is that you keep the intellectual knowledge in-house, but increase capacity at the same time.
Conclusion
So what is your true team capacity? By factoring in talent, budget and infrastructure you can dramatically raise your team’s ability to meet your goals.