Estar abrumado por la complejidad. Puntos dobles si resulta ser una complejidad innecesaria.
El software es bastante diferente a los ladrillos de lego. No es algo en lo que pueda escribir “la línea que acepta pagos”, luego escriba “la línea que muestra los productos”, luego escriba “la línea que actualiza el inventario”.
Muchos no programadores piensan que es así.
- Soy un programador de sofware. ¿Cómo puedo ayudar a las personas (sociedad) usando mi habilidad?
- ¿Cuáles son las diferencias entre un especialista de TI y un programador (desarrollador web o de software)?
- ¿Cuántos programadores se necesitan para este tipo de proyecto?
- ¿Cuál es el proceso o técnica de entrevista de desarrollador de software más confiable?
- Como hay muchos tipos de desarrolladores de software, ¿podría contarme sobre su área de especialización?
En realidad, trabajamos muy, muy duro para asegurarnos de que cada parte del sistema tenga el menor impacto posible sobre el resto del sistema.
Pero a veces fallamos. Y mete las cosas en un lío. Entonces, cuando cambia la parte de “pago”, de repente, los productos dejan de aparecer. Y nadie puede entender por qué. No debería suceder.
Un eje del dolor es que el software se puede escribir de muchas maneras diferentes para hacer lo mismo. Algunos de ellos son más fáciles de entender y modificar que otros. En el extremo lejano (malo), puede escribir código de espagueti ilegible que no se puede cambiar de forma segura. Esta es la complejidad del código . Pero aún funciona correctamente, ¡así que todos están felices! Y a veces es más rápido preparar este tipo, ¡tan rápido y más barato! ¡Hurra!
Y los profesionales jóvenes a veces escriben así. Los gerentes inexpertos son seducidos por el “más barato, más rápido”. Al menos, hasta que los picaron en la línea.
Esto es frustrante: pasar un mes para descubrir que la dificultad se debió simplemente a una mala redacción del software, nada más.
El otro eje del dolor es la complejidad del problema .
Algunas áreas son inherentemente difíciles.
La matemática detrás del procesamiento de imágenes para un escáner CT médico es realmente difícil. Incluso si codifica ese software perfectamente, será difícil de entender. Porque el problema es difícil de entender.
Por el contrario, escribir una aplicación de lista de tareas es fácil. Nada de eso es difícil de entender.
Entonces tenemos una matriz de dolor:
Si los codificadores profesionales quitan algo de lo que yo digo, es ” por favor, quédese a la izquierda “.
El software es lo suficientemente difícil, sin escribirlo de manera difícil.
Elige fácil. Cada vez.