Un gerente mío hace muchos años me dijo que solo hay tres variables en la creación de software: funcionalidad (lo que hace), recursos (personas, $) y tiempo (cuánto tiempo lleva). Dijo que el cliente puede elegir dos, pero el desarrollador debe insistir en elegir el último. Esta fórmula casi funcionó hasta que profundicé y me di cuenta:
1) El cliente casi NUNCA sabe realmente lo que quiere. E incluso si lo saben, cambiará y cambiará y cambiará nuevamente. Entonces, la regla aquí es que los requisitos cambiarán constantemente durante la vida útil del software. Cuando los requisitos dejan de cambiar, el código está efectivamente muerto. SO … esto significa tambalearse gradualmente hacia la claridad con frecuentes construcciones parciales. Haga que algo funcione rápidamente, incluso si es solo una demostración de lo que está por venir. Cree su software para que pueda cambiar con los requisitos cambiantes. Mira lo que el tío Bob Martin tiene que decir sobre esto.
2) Olvídate de sitios web, bases de datos y redes. Son artefactos que no tienen nada que ver con la funcionalidad subyacente de lo que está construyendo. Una versión de línea de comando que toma entrada y produce la salida correcta te lleva al 80% del camino. Luego puedes usar un sitio web y una base de datos. Vienen al final, no al primero.
- Con una permanencia promedio de 2 años en la industria de la tecnología, ¿cómo logran establecerse los ingenieros de software?
- Como ingeniero / desarrollador de software, ¿cuál fue el problema más difícil que enfrentó y cómo lo manejó, y cuál fue el resultado?
- ¿Dónde encuentro los requisitos del usuario y los requisitos del sistema para un megaproyecto, de acuerdo con la ingeniería de requisitos de software?
- ¿El ingeniero de software necesita practicar o recordar las matemáticas?
- ¿Cómo es el día típico de un ingeniero mecánico?
3) Plan para fallar. El fracaso es cómo usted (y yo) aprendemos. Falla temprano y falla a menudo. De esa manera aprendes lo que no funciona. El cliente puede ver el fracaso como una debilidad, pero lo contrario es cierto. Un cliente que no está preparado para fallar es un almacén de explosivos que espera un partido. Si el cliente tiene miedo de fallar, enséñele que el fracaso es realmente un éxito. Muéstreles cómo el fracaso de un enfoque le enseña a hacerlo mejor. Y eso lleva a la conclusión:
Mejores triunfos rápidos. Mejores triunfos baratos. Mejores triunfos en casi todo, así que cada día, hazlo mejor.