Bienvenida la era de las herramientas

Esta publicación ofrece una perspectiva sobre el estado actual del desarrollo de software, visto a través de una lente histórica.

Primero, reconozcamos algo: El desarrollo de software es una tarea compleja.. Si bien los puntos de función pueden no ser la unidad de medida más de moda hoy en día. sin importar cómo se mida el tamaño, la siguiente afirmación sigue siendo válida: “desarrollar un sistema de software con 100.000 puntos de función es uno de los proyectos más complicados que un equipo humano puede emprender” (citado desde mi memoria a Caper Jones).

Durante medio siglo nos hemos esforzado por superar esta complejidad. Y sigo siendo optimista. Creo que ahora poseemos todos los componentes necesarios para afrontar eficazmente este desafío y ofrecer de forma consistente un software excepcional. Sin embargo, un elemento crucial en esta ecuación es que el problema debe abordarse con disciplina. Y esto no es tan simple como soplar y hacer botellas.

Mi perspectiva sobre la evolución del desarrollo de software se basa en la tríada de mejora de procesos: las PERSONAS que desarrollan el software, el PROCESO que organiza su trabajo, y el HERRAMIENTAS ellos utilizan.

Las tres eras del desarrollo del software

Décadas de 1980 y 1990: la era del proceso

Quizás a partir del trabajo de Royce empezamos a entender el desarrollo de software como una PROCESO. Este entendimiento maduró, lo que llevó al desarrollo de varios modelos de procesos como CMM-CMMI, SPICE y estándares ISO.

Sin embargo, para muchos, estos modelos de proceso se volvieron difíciles de manejar. Las malas interpretaciones llevaron a que se convirtieran en fines en sí mismos, en lugar de medios para lograr un mejor software. La atención se centró en el resultado previsto y se pasó a una adhesión rígida a marcos a menudo engorrosos.

Desde finales de la década de 1990 hasta la década de 2000: la era de las personas

Marco el comienzo de esta era en torno a OOPSLA 95, una confluencia de ideas que finalmente condujo a la firma del Manifiesto Ágil.

Agile puso un énfasis significativo en las PERSONAS, y la industria adoptó este cambio. Los principios de la década de 2000 fueron un período de importante aprendizaje e innovación (también en herramientas, inmediatamente pienso en XJunit y tecnologías relacionadas). 

Sin embargo, una vez más, fracasamos en el desafío de una implementación consistente y correcta, sustentada en la disciplina. Con el tiempo, para algunos, el enfoque en las personas disminuyó y “hacer Agile” se convirtió en sinónimo de seguir metodologías específicas (XP, Scrum o DevOps, cualquiera sea el nombre de moda en el momento).

Desde 2020: la era de las herramientas

La llegada de herramientas de IA generativa ha cambiado nuestra interacción con la tecnología (Ojo, me encantan y es notable lo que puedo hacer con ellas). Pero, junto con la venida de esta era se escuchan voces de la industria que sugieren que estas herramientas son tan avanzadas que los desarrolladores podrían quedar obsoletos (un sentimiento que recuerdo haber escuchado con el surgimiento de Visual Basic – antes de comenzar la universidad -, por lo que sigo siendo escéptico). Los informes de Google indican que una parte significativa (alrededor del 25%) de su código ahora es generada por IA.

Como en épocas anteriores, la industria está impulsada por la moda y las tendencias. Los proveedores están incorporando estas herramientas a nuestros IDE y sistemas operativos (de forma que se hace dificil no verlas o no usarlas). Generando asi la demanda de nuevos productos. Y por supuesto, es mil veces más fácil vender una herramienta que un concepto intangible como la disciplina.

¿Qué está pasando realmente? Yo siento que, probablemente por primera vez, la sinergia de nuestros aprendizajes de épocas anteriores, combinada con el impacto transformador de las herramientas de inteligencia artificial, está acercando a muchas organizaciones de desarrollo de software al punto en donde la demanda externa es inferior que la capacidad de producción interna. Y entiendo que esto es inquietante. Tanto es asi, que no recuerdo haber observado esto antes. Desde antes tener mi primer trabajo en la industria, el desarrollo de software ha sido la industria del desempleo CERO. Por lo tanto, los gerentes carecen de experiencia previa con un sistema donde el cuello de botella está fuera del interior de su organización. Sin embargo, anticipo que la demanda aumentará en un futuro próximo. A medida que las industrias aprendan los casos de uso de las tecnologías modernas, la demanda regresará a las organizaciones productoras de software y absorberá esta nueva capacidad. Y como lo ha demostrado la historia con las “Edades” anteriores, las herramientas por sí solas no podrán resolver el problema de entregar sistemas de software grandes, complejos e interconectados.

Esta “Era de las herramientas” también pasará. En última instancia, saldremos en una posición más fuerte para afrontar el desafío de desarrollar software de alta calidad. Habiendo navegado por las edades de PROCESO, GENTE, y ahora HERRAMIENTAS, con suerte llegaremos a un centro más equilibrado y consciente.


Su organización no necesita esperar a que estas tendencias se desarrollen por completo. Cada uno de los períodos que he descrito ofreció ideas valiosas. La clave es adoptar y aplicar selectivamente estas lecciones dentro de su contexto específico. Aproveche el potencial de las nuevas herramientas impulsadas por la IA: ofrecen ventajas significativas pero no son la bala de plata!

La estrategia que produce resultados consistentemente es un enfoque equilibrado. Esto implica potenciar a sus PERSONAS, organizándolas con PROCESOS que se alineen con sus objetivos y políticas organizacionales, y apoyándolos con la capacitación adecuada y la HERRAMIENTAS que se adaptan a sus herramientas tecnológicas.

Si bien es fácil de articular, implementar esta estrategia equilibrada requiere disciplina constante y esfuerzo sostenido. Aquí es precisamente donde el coaching basado en evidencia puede cambiar las reglas del juego, acelerando su viaje hacia ganancias de productividad sostenibles. Estaría encantado de explorar con usted cómo un enfoque equilibrado y consciente que respete sus necesidades y contexto organizacionales únicos puede ayudarlo a entregar constantemente software de calidad que deleite a sus clientes y que sus equipos de desarrollo disfruten construyendo.


Discover more from The Software Coach

Subscribe to get the latest posts sent to your email.

Leave a Comment

Your email address will not be published. Required fields are marked *