Publicado originalmente en The Software Coach.
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.
Las eras en evolución del desarrollo de software
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.
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 2020: 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 GENTE, 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 ciegamente metodologías específicas como XP, Scrum o DevOps.
Desde 2020: la era de las herramientas
La llegada de herramientas de IA generativa ha alterado fundamentalmente nuestra interacción con la tecnología. Sus capacidades son realmente notables. Incluso hemos escuchado 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. Generando la demanda de nuevos productos. Y por supuesto, es mil veces más fácil vender una herramienta que un concepto intangible de disciplina.
¿Qué está pasando realmente?
Mi corazonada es 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 a alinear la demanda externa con la capacidad de producción interna. Y entiendo que esto
es inquietante. Como no recuerdo haberlos observado antes, desde antes de
ingresar a 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 duradero 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.
Top comments (0)