Scalability: A Million Dollar Question

ScalabilityIf you’re anything like my clients, you spend a lot of time trying to do these two things:

  1. Maximize the productivity of your limited staff
  2. Maximize the performance of your software systems

As your business grows, both problems become increasingly difficult – and expensive – to solve.

Right now, I want to address the first point – your team.

Extensive research has shown that productivity drains are a direct result of inefficient processes. Team size does not matter as much as you might think. I’ve seen small teams perform horribly, and big teams move nimbly, all due to their ability to scale up.

So, what makes a team (of any size) scale most efficiently?

The key is to shift focus away from the people and onto the product. I know, this sounds counterintuitive, but stick with me for a minute.

Your product, or more precisely, the code that makes up your software product, can be managed with precision, unlike your people. Focus on motivating your people, not managing them. Ultimately, they will produce more with higher quality. Then, you ship whatever is ready.

Do this early and often. Prioritize instead of planning.

How do I maintain control?

Glad you asked. Here are the ways you still control the process:

  • You own the product backlog, and the prioritization of its items
  • You allocate tasks
  • You set time and budget limits
  • You control the code, feature branches, and acceptance testing
  • You enforce standards

How does this help me scale up?

This process is fast. You release when you’re ready, as often as you’re ready. It also works well with distributed teams. You can add many more contributors without a planning or testing bottleneck.

What do I have to change?

If you’re already a Scrum or Kanban shop, then very little. If your teams are already productive, then they won’t notice much process change. If they are unproductive, then you should give me a call, and we’ll fix that!

In my next article, I will discuss the second point – software performance and scalability.