What is software scalability?


I hear a lot if you talk about what software needs to have scalability in applications. Researching the subject, I found the following definition:


Meaning of Scalability:

     In software engineering, scalability is a desirable feature throughout the system, in a network or in a process, that indicates its ability to handle a growing portion of work evenly, or be prepared to grow.


Example of the use of the word Scalability:


Startup scalability is a way to accelerate a company's growth at small cost and very fast.

In my view, this concept has not yet been clear. So what does software scalability mean? How to apply this in practice?

Source: link

asked by anonymous 02.10.2015 / 16:06

2 answers


Climbing means climbing. So scalability in this context is the ability to increase the size of the software or its use.

When we talk about the scalability of the software itself, we are talking about having a code and an architecture that is easy to maintain, to increase its functionalities, for several people to work on it.

We can eventually use the term to indicate that the software can be used by a large number of users (clients). In the sense of people or companies.

The scalability of use has to do with the ability to increase memory consumption, processes, meet demands for high processing requirements and possibly access competition.

There are numerous techniques to enable better software scalability.

Some softwares work very well with low amounts of data or access, but when this increases, it has problems. No use for more and better equipment. It would be a palliative solution.

Some things grow linearly and this is good, it scales well. Problems arise when software grows and needs grow exponentially. That is, the increase in need leads to an increase in capacity proportionally higher. It's a geometric progression.

Of course the ideal would be to have a logarithmic progression, so each increase in the requirement forces a capacity increase to a much smaller extent. But it is rare to achieve this in all software, except in one-time software things.

Read more about this at Big-O .

Probably the term is used in more software contexts.

We often use the term referring to the solution as a whole and not just the software. There scalability has to do with the ability to serve the need well by adding infrastructure. There are cases where the software is not prepared for this. Adding below will bring other problems that the software does not handle. Scalable software adapts to this.

Little scalable software is more vulnerable to attack.

Wikipedia article . In English much better .

02.10.2015 / 16:26

An example of scalability:

You have a company and want to prevent changes in laws, increase consumption and data generation. So you architect your system to meet these changes with the least possible impact. Also enters the concept of parameterization.

For example, calculating taxes, issuing invoices with cpf, etc., are changes that the system should behave without major problems.

02.10.2015 / 16:27