What does software scalability mean?

Asked

Viewed 17,491 times

24

I hear a lot if I talk about what software needs to have scalability in applications. Searching on 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, which indicates your ability to handle an increasing portion of work evenly, or be prepared to grow.

Example of the use of the word Scalability:

scalability in startups is a way to accelerate the growth of a company, with small costs and very fast.

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

Source: http://www.dicionarioinformal.com.br/significado/escalabilidade/13286/

  • 2

    For this question, there is nothing else that needs to be improved. I have accepted the answer.

2 answers

33


Scalar means to climb. 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 software itself we’re talking about having a code and an architecture that’s easy to maintain, to increase its functionality, to have multiple people work on it.

Eventually we can use the term to indicate that the software can be used by a large number of users (customers). In the sense of persons or enterprises.

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

There are numerous techniques to enable better software scalability.

Some software works very well with low amount 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, scale well. Problems occur when software grows and needs grow exponentially. That is, the increased need generates a proportionally larger capacity increase. It is a geometric progression.

Of course, the ideal would be to have a logarithmic progression, so each increase in need requires an increase in capacity in a much smaller proportion. But it is rare to achieve this in all software, except in one-off things of software.

Read more about this at Big-O (in English much better).

Probably the term is used in more software contexts.

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

Scalable software is more vulnerable to attack.

Wikipedia article. In English much better.

  • Scalability as synonymous with maintainability (its first definition of the term) does not appear on Wikipedia. But I understand why they’re being traded. The thing to be climbed can be so much that we may well be talking about software maintenance, not just the work it performs.

  • The term can be used in many contexts even outside our area. We can talk about scaling a project, say that 10 sub-projects with 10 professionals scale better than 1 with 100. It is often said that procedural code does not scale well (which is not true if done well), that dynamic languages do not scale well (which is true, but exaggerate). That such algorithm does not scale well. Anyway, you can find a lot of example.

3

An example of scalability:

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

For example, tax calculation, issuance of tax notes with Cpf, etc, are changes that the system should behave without major problems.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.