¿Qué modelo sería mejor para la organización que tiene un gran número de equipos de desarrollo de software con diferentes habilidades?

Lo he visto todo en casi 40 años de estar en equipos de desarrollo.

Y de cada modelo diferente que he visto, y he visto casi todos ellos, solo uno se destaca por ser consistentemente exitoso, se llama modelo de Ingeniero Jefe (o Desarrollador Jefe).

La democracia en realidad no funciona muy bien para los equipos de desarrollo, por mucho que todos deseen que lo haga. Los hechos reales son que demasiada “igualdad” es realmente mala para un proyecto. Malo en el sentido de que la productividad real en realidad termina siendo más baja, la calidad termina siendo más baja y los horarios se sobrepasan mucho más y mucho más a menudo. Lo único positivo de “seamos todos iguales en el equipo” es una cálida sensación difusa de que todos estamos siendo “moralmente” correctos de alguna manera al pretender ser iguales. No hace nada por el éxito del proyecto, excepto para hacerlo menos probable.

El ingeniero jefe es la última palabra sobre el proyecto. Dependiendo del tamaño del proyecto y la combinación de habilidades y dominios técnicos en el equipo, el Ingeniero Jefe puede optar por delegar parte de la responsabilidad de las subáreas del proyecto a los desarrolladores senior en los que confían para manejar el trabajo.

Es realmente bastante simple. Lo que decide el ingeniero jefe es qué se hará. El ingeniero jefe puede no ser un “dictador” y permitirle a su equipo cierta libertad creativa, lo cual no es algo malo, pero cuando se trata de tomar decisiones finales importantes sobre el proyecto, la palabra del ingeniero jefe es la última palabra.

Y he visto que este modelo produce proyectos increíblemente suaves y extremadamente exitosos. En realidad, los proyectos más exitosos que he visto en casi 4 décadas se deben al uso del modelo de Ingeniero Jefe.