DEV Community

Honey Moon
Honey Moon

Posted on

Capacity Planning as a Way to Minimize Unforeseen Business Expenses

In June 2020, an enterprise provider of wireless telecom services T-Mobile failed over 100,000 customers during an outage. The company had a routing issue that affected voice and text messaging.

What caused it to happen? High traffic volumes overwhelmed network resources, resulting in delays and packet loss. This issue is particularly prevalent in networks lacking adequate capacity planning or experiencing sudden traffic spikes. To prevent such occurrences, capacity planning and load testing, as a part of it, should not be neglected by the companies.

Part of Capacity Planning in Software Development

Capacity planning helps to forecast resource requirements at a particular stage of software development, which allows engineers to compare the required and available resources. A great tool of capacity planning is load testing, which can help to determine performance issues at a certain stage of software development or deployment.

When discussing capacity planning from a project management perspective, let's focus on when, during the development process, the lead should plan load testing to avoid unforeseen expenses in the future.

Capacity Planning and Load Testing in Agile Project Management

Let’s differentiate what Agile is. Agile methodology is an approach to project management that involves breaking down a project into phases, as well as continuous collaboration and improvement. In this approach, teams follow a cycle of plan, executing, and evaluating it within a defined time.

Agile is a better choice if a team has unclear requirements and if stakeholders are willing to actively participate in the development process. This approach also creates the right environment for teamwork and promotes transparency. All these features of Agile determine the areas of its application, and it is extremely popular in software development.

So, when to put load testing as a part of capacity planning for Agile methodology? Using Agile methodology, the Scrum-master or lead should conduct load testing at the stages of planning, execution, and review of software development.

Also, continuous load testing during sprints enhances application quality while reducing cycle times in agile environments. This is achieved by integrating tests into teams’ continuous integration process and running load tests with each sprint.

By utilizing smaller teams, companies can communicate more efficiently and effectively, leading to quicker turnaround times and the ability to thoroughly test software through complete testing cycles.

This approach to load testing within Agile teams helps determine if the current software can handle expected traffic. It saves significant costs on expensive AWS and GCP servers by identifying the appropriate size and capacity required for each application.

Capacity Planning and Load Testing in Waterfall Model of Software Development

The Waterfall model is suitable for large projects with extensive timelines, sizable teams, and complex functionalities: such as intricate systems in the banking sector, large e-commerce platforms, and projects with a vast number of users, and so on.

The specifications for such projects can run into thousands of pages, but this process is virtually ideal for developers: everything is described, reviewed, and approved, ensuring a thorough understanding of how the system should operate.

The Waterfall approach yields high-quality results due to its strict adherence to the order of operations and the absence of changing requirements.

As we mentioned before, the Waterfall approach works exceptionally well when the requirements are well-defined upfront and there is minimal uncertainty in the work. It is ideal for projects where something similar has already been done, such as developing a new interface using existing patterns.

Benefits of Load Testing in Capacity Planning

It's crucial to view capacity planning as a continuous endeavor. Traditionally, companies conducted formal capacity planning exercises annually. However, given today's environment characterized by uncertainty, digital transformation, and the prominence of agile methodologies, adopting a continuous planning approach proves advantageous. This approach allows for the integration of changing priorities and strategies proactively whenever feasible.

Using load testing at an early stage helps prevent any unplanned breakdowns and unexpected failures, safeguarding businesses from revenue loss and brand damage.

In conclusion, T-Mobile agreed to pay $19.5 million as part of a settlement with the Federal Communications Commission due to a 12-hour nationwide outage in 2020, which resulted in thousands of unsuccessful 911 calls and financial losses.

Top comments (0)