¿Qué se entiende por «escalabilidad» en ingeniería de software?

La "escalabilidad" *normalmente* (o más apropiadamente) se refiere a la carga que un sistema puede manejar. Es decir, a medida que la carga aumenta (más usuarios, más archivos, más lo que sea), el sistema puede manejarlo de forma natural o ajustarse para manejarlo.

De forma similar, cuando la empresa habla de si un proceso escala bien o no, se refiere a lo mismo. A medida que el proceso se extiende a audiencias más grandes (por ejemplo, la adición de más equipos), usted podría encontrar que el proceso no escala bien porque cuanto más grande es la organización, más difícil es gestionar el proceso. Por lo general, el problema es que faltan roles o procesos intersticiales, o el proceso en sí mismo no se escala bien.

En la conversación, la "escalabilidad" puede referirse a algunas cosas diferentes dependiendo del contexto, ya que la palabra se lanza mucho, especialmente con los desarrolladores:

A veces, cuando los desarrolladores lanzan la palabra por ahí, en realidad se refieren a la capacidad de mantenimiento de la aplicación. Es decir, ¿cómo de fácil es trabajar en el código? Si la arquitectura de la aplicación no es correcta, cada vez es más difícil tener a mucha gente trabajando en ella, no es escalable.

A veces, cuando los desarrolladores lanzan la palabra, en realidad se refieren a la extensibilidad. Es decir, ¿se puede ampliar fácilmente un sistema o está demasiado hecho para el propósito y es difícil añadir nuevas funcionalidades? Si no podemos añadir nuevas funcionalidades sin un riesgo excesivo, es posible que el sistema no esté escalando bien.

Así que, en realidad, la palabra se lanza para describir una situación en la que el sistema (software o personas) está recibiendo más de algo. Más usuarios, más código, más procesos, más lo que sea. La escalabilidad describe lo bien que el sistema maneja el aumento de la carga.