2011/06/19

Proyectos como sistemas biológicos

Los proyectos de software no salen tan bien como se quisiera.

Un programador solitario, con talento, puede hacer código muy bonito, hasta cierto punto.
Cuando el proyecto llega a cierto tamaño o complejidad, es cada vez más difícil continuar.

Varios programadores, con talento, formando un equipo, pueden hacer algo muy bueno, muy por encima de lo que serían capaces con sus talentos individuales, hasta cierto punto.
Cuando el proyecto llega a cierto tamaño o complejidad, es cada vez más difícil continuar.

Los proyectos exitosos son aquellos que alcanzan ese punto límite no tan lejos de la meta que se proponían.

Pero la mayoría lo alcanza mucho antes.

Tratando de explicarse esto, hay quienes culpan a la gente. Pero sucede incluso en equipos compuestos de gente talentosa.

Parece que la respuesta es la organización.

La forma en cómo se organiza a las personas, las reglas o normas que siguen, de algún modo, van tejiendo una trama que, eventualmente, ahoga el proyecto.

Quizás haya un modo de lograr una organización sostenible.

Por lo pronto, se ha visto algunas cosas que funcionan mejor que otras.

Algo visible es más fácil de corregir. Algo simple es más fácil de ver. Algo modular es más simple de hacer. Algo descentralizado es más modular. Algo libre es más descentralizado. Algo que podemos corregir es más libre.

Cada ser vivo puede considerarse un tipo de sistema. Cada ser vivo tiene una vida, corta o larga, con un patrón de nacimiento, desarrollo, apogeo y remisión. Quizás sea propio de cada sistema. Quizás cada sistema está condenado por la complejidad que es capaz de alcanzar. El apogeo sería el aviso de la remisión inminente. Y la remisión el preámbulo de un nuevo nacimiento.

Quizás debamos dejar de comportarnos como si pudiéramos diseñar proyectos eternos, que muchas veces conducen a intentos efímeros, y diseñar proyectos con ciclos de ascenso y remisión, que inspiren y exhalen, que corran y duerman. Y todo eso, mientras evolucionan.

Más artículos