A pesar de sus beneficios, el modelado de software tiene mala fama. Que si no es ágil (falso), que si es perder el tiempo, que si me basta con un asistente inteligente para crear el código directamente,… Y aunque aproximaciones pragmáticas al desarrollo basado en modelos contribuyen a reducir esta mala fama, modelar sigue siendo mal visto por muchos en nuestra comunidad.

Pero, en mi opinión, la discusión acerca de si modelar el software es bueno o malo no es realmente la que toca. Más que nada, porque siempre modelamos el software que vamos a desarrollar. Como dice Antoni Olivé,  el modelo siempre existe, la única opción es decidir su forma: puede ser mental (existir sólo en la mente de los diseñadores y desarrolladores) o explícita.

Por lo tanto, la discusión real es consiste en decidir si invertir nuestro esfuerzo en dibujar de forma explícita los modelos vale la pena o no. Es decir, en calcular el retorno de la inversión (ROI, por sus siglas en inglés) del tiempo que pase el equipo en crear los modelos. Como siempre, calcular el ROI es complicado.

Factores que afectan el ROI del modelado:

  • ¿Qué hacemos con los modelos? Generamos el código (aproximación low-code) ¿o sólo sirven como documentación?
  • ¿Qué herramienta utilizamos? Hay herramientas que son más fáciles de usar y otras con las que modelar es casi un tormento. Ver también la diferencia de soporte entre herramientas de dibujo y herramientas de modelado.
  • ¿Es para un único proyecto o muchos? ¿Hay que entrenar el equipo? El tiempo de formación es caro sobre todo si no se puede amortizar a lo largo de varios proyectos
  • ¿Cuánto vas a modelar? Demasiado poco y los modelos serán inútiles (no habrá suficiente información para que las herramientas, ej. generadores de código, pueden hacer nada interesante con ellas). Demasiado modelado y habrás perdido el tiempo en un montón de detalles irrelevantes
  • ¿Vais a crear todos los modelos a mano? ¿O vais a usar algún tipo de estrategia de low-modeling para acelerar la creación de modelos?

Dependiendo de estos factores, verás si te interesa más o menos invertir tiempo en crear modelos (y de qué tipo y granularidad). Pero en todo caso los modelos siempre van a estar ahí. De una forma u otra.