Recientemente compré un libro que recomendaría encarecidamente a cualquiera que desarrolle software. Se titula «Una filosofía de diseño de software» de John Ousterhout y planeo escribir publicaciones de blog durante el próximo mes utilizando temas planteados en él. El libro comienza con una definición práctica de complejidad que establece que la complejidad es cualquier cosa relacionada con la estructura de un sistema de software que dificulta su comprensión y modificación. Si nunca has lidiado con código de software que se ha vuelto demasiado complejo, puedes dejar de leer aquí mismo.
Ok, veo que todavía estás conmigo... jeje. No puedo decirte cuántas discusiones he tenido con clientes que comenzaron con «Tenemos este sistema de software y necesitamos hacerle cambios, pero ha llegado al punto en que cualquier cambio adicional, por pequeño que sea, tarda una eternidad». Este es el primer síntoma de una aplicación de software que ha crecido demasiado compleja y se manifiesta en lo que se llama Amplificación de Cambios. La Amplificación de Cambios ocurre cuando incluso los cambios relativamente simples requieren numerosas modificaciones de código.
El segundo síntoma de que tu software es demasiado complejo es la carga cognitiva del desarrollador. La carga cognitiva ocurre cuando un desarrollador tarda una eternidad en simplemente comprender cómo se escribió el código. Los ejemplos aquí incluyen API con muchos métodos, comentarios deficientes (o nulos), inconsistencias y dependencias entre módulos. Antes de que un desarrollador pueda cambiar el código, necesita comprender cómo hace lo que hace.
El síntoma final de la complejidad son las incógnitas desconocidas. Este término, popularizado por un exsecretario de Defensa, se relaciona con el hecho de que puede no estar claro qué partes del código deben modificarse para realizar un cambio con éxito. Esta es la peor situación a la que enfrentarse, ya que simplemente puede no haber forma de saber cuántos lugares de código pueden estar ocultos y necesitar modificación.
Mantente atento, ya que a continuación cubriré qué causa la complejidad y qué puede evitar que la complejidad se filtre en tu aplicación.
No hace falta decir que Plataforma de decisiones El entorno de desarrollo gráfico sin código ayuda a las organizaciones a evitar la complejidad. Si deseas discutir el estado de tu aplicación compleja actual, contáctanos en o ¡hoy. ¡Nos encanta hablar de estas cosas!


