Fuente: Photo by Lynn Jordan on Unsplash
Indagando sobre cómo mejorar la producción de Software, encontré un trabajo de Anthony Finkelstein denominado Capability Inmaturity Model.
Fue, aparte de relajante y realista, un llamado de atención, pues mostraba que mucho se hablaba en esa época de que había que certificarse con el Capability Maturity Model, pero nadie se preocupaba de cuan lejos se estaba de un primer nivel 0.
Con mucho sentido del humor, y bastante conocimiento de causa, Anthony Finkelstein indicaba que hay organizaciones que no han alcanzado siquiera el nivel 1 de CMM (en el qué, aunque sea de modo heroico, se comienza a producir software).
Por esta razón, Finkelstein proponía que existen niveles negativos o de inmadurez.
Este «Modelo de Incapacidad e Inmadurez», que fue refinado posteriormente por Tom Schorsch, incluye tres niveles de lo que se llamaría idiotez de la producción de software.
Finkelstein, proponía/propone:
0 Tonto. Organizaciones negligentes. Impiden cualquier desarrollo de software con éxito. Su gran preocupación es la reutilización del software.
-1 Estúpido. Organizaciones obstructivas. Imponen procesos contra-productivos para impedir cualquier avance. Se concentran en desarrollar entornos de desarrollo y repositorios.
-2 Lunático. Organizaciones desdeñosas. Desprecian cualquier institucionalización de buenas prácticas. Su gran objetivo es la programación automática.
El trabajo Torsch añade más niveles y proponía/propone:
0 negligente o de indiferencia. El mismo que Finkelstein.
-1 Obstructivo o contraproductivo. El mismo que Finkelstein.
-2 Despectivo o de arrogancia. El mismo que Finkelstein.
-3 Campo minado o de sabotaje. Organizaciones que viven con situaciones de riesgo, en lugar de dar soluciones plantean acciones que en el fondo son minas para la organización.
-4 Sicótico. Organizaciones alejadas de la realidad, la única realidad es la suya.
-5 Sociopático. Organizaciones que no están en contacto con el entorno social e industrial.
-6 Ritual del sacrificio humano. Todo vale para salir adelante.
-7 Equipo-programador-Jefe. Todo centralizado en el jefe, quien dirige, coordina y 'dictatoriza'.
Habría que pensar cuánto de estos modelos son validos hoy en día.
Mirando los niveles, algunas cosas son muy visibles en los equipos de desarrollo y en las organizaciones de software aún hoy en día.
O algo más arriesgado, cuánto se oculta en metodologías recientes como eXtremme Programming, o métodos Ágiles que conforme permite formalizar un desarrollo de software, no es menos cierto que incluye elementos centralizadores -por ejemplo-.
Si alguien desea saber algo más, simplemente coloque en un buscador "Capability Inmaturity Model".