Scaling opens great opportunities for growing businesses but can also become a constant uphill battle. Challenges can either come from the teams that are delivering their high-quality products or from the IT systems that drive the business demand. Left unchecked, both these areas can drive costs uncontrollably, increasing resources without cost consideration or through over working our systems so that they become un-performant.
To avoid this, you need a better way to observe teams and systems holistically to ensure you can meet business demand while remaining in control.
In a horizontal scaling architecture new nodes or machines are added to the infrastructure to cope with new/increased demands. In this sense, scaling teams this way adds more team members.
Scaling horizontally can give your teams the much-needed resource that they require to complete day to day tasks such as delivery. Freeing up the teams’ time allows them to pursue more avenues of work like pushing delivery into a different area, improving services, optimising resources and discover new improvements.
Usually, this is the case for teams with key roles in all areas, allowing them to grow horizontally - but what happens if that is not the case?
This situation can cause delivery teams to split their focus off delivery and onto training – this can cause delivery to suffer as more time is being spent training new stakeholders up to the standards required for delivery. In this situation the attempt of horizontally scaling fails at its objective. Teams produce less work and there is a reduction in quality. One other area where this type of scaling can fail to achieve its goal is within the team’s morals, resulting in an increase in stress on the delivery teams as they have more responsibilities with less time to do them.
While horizontal scaling an architecture adds additional machines or nodes, vertical scaling adds more resources to existing machines. In this sense, scaling teams vertically improves the already existing teams without the need for additional members.
Vertically scaling a team can add to it: increased experience, knowledge, and ideas. It can also bring in more governance and ensure quality control of a product or teams’ delivery. It will allow the experienced team to find new areas of work or of development while voicing the concerns of the team and their achievements – an area that can be overlooked if the delivery teams does not have the support.
However, vertical scaling is not always all singing and all dancing.. What it fails to address is the increased workload, as more senior members of the team should be managing or strategising, and not be so involved in the delivery If they find themselves in such a situation then vertical scaling could have failed.
A key observation in teams scaling vertically is increasing workload or promising workload that is unattainable with the current number of delivery team members.
Well, it is not quite that simple. It is about creating a balance of the two – horizontal scaling will take more time invested to achieve the delivery standards of the current work force whose story can be conversed to stakeholders through vertical scaling. The issue here however is vertical scaling can cost teams budgets while horizontal scaling can cost a company’s resources.
Depending on where you are within the team structure you may see things from a different point of view. All of these have validity to their objectives and points:
Although all 3 examples are a valid solution you need to take a step back to understand what the issue is and how you can allow teams to keep up with increasing demands. This shows us that not all situations are the same, therefore our understanding needs to be challenged to ensure the best outcome.
Of course, it is easy to say that a team is much like a system, they both have a capacity of work they can achieve and a throughput of work governing their daily capacity. Each team members could also be seen as a system, in their own right, with individual capacity and daily throughput demand.
If we apply that same observation around your position in the team structure to systems, we can see that;
Again, a holistic approach here is needed, that will allow teams to Scale, Serve and Save – driving business growth. Tackling this issue without a holistic approach may lead to short term improvements but what has been observed is that the entire system is not considered leading to instability, poor scalability and even poor team moral. All these catches may be risks that business are willing to move ahead with, but each risk should be known so that an informed decision can be made.
Uncontrollable costs are also a factor on why there needs to be governance across the teams. Without someone to guide teams into best decisions costs will rise quickly and with very little explanation. Many of the cost improvements are small in the cloud and therefore each small decision can add up, like team growth and cost.
A simple rule for scaling a system is that the cost increases should have a linear relationship with the growing business demand – if you find yourself increasing scaling four-fold while demand increase is doubled then we will have opportunity to save costs within the system.