En tres palabras
Cuando te dedicas a desarrollar software, hay días en los que todo sale rodado y solucionas un montón de cosas y días en los que apenas avanzas, en ocasiones porque estás haciendo algo muy complejo y en ocasiones porque estás haciendo algo no tan complejo pero estás en un entorno difícil.
El escenario de estar en un entorno difícil tiene que ver con la deuda técnica y será motivo de otros posts, pero cuando estamos haciendo algo realmente complejo y llevamos toda la mañana sin conseguir un avance significativo yo siempre me pregunto: “¿esto merecerá la pena?”
Hay varios principios en desarrollo de software que creo que están muy relacionados:
- YAGNI (You aren’t gonna need it)
- Evitar la optimización prematura
- KIS (Keep it simple)
- KISS (Keep it simple, stupid)
A mi me gusta resumirlo todo en tres palabras que me repito a menudo, y que alguna vez le he dicho a los clientes cuando hacía labores de gestor de proyecto.
Las palabras mágicas son:
NO TE FLIPES
Y es que es esto del software todos podemos caer en la tentación de fliparnos. El cliente, puede pedir features de más que ni necesita ni le aportan valor, pero simplemente le molan. Hay de nuevo muchas clasificaciones, pero a mi me gusta simplicarlo en tres niveles.
- Funcionalidades esenciales. Son aquellas (muy poquitas) cuya ausencia hace que el sistema carezca de sentido. Son las que deberían ocupar nuestro esfuerzo en las primeras fases y las que deben funcionar siempre.
- Funcionalidades valorables. Son aquellas que aportan mucho valor pero que si no están, el sistema puede existir. Esta suele ser una lista enorme, por lo que es importante priorazarla en base al esfuerzo que necesitan para desarrollarlas, el riesgo y el valor que aportan.
- Funcionalidades que me han molado porque las he visto y las quiero. Esta es una lista interminable de cosas que en mi experiencia es mejor no hacer.
Pero cuidado, los desarrolladores también tendemos a fliparnos. Algunas veces cuando nos emocionamos con los requisitos del cliente y otras veces cuando vemos una charla algo muy chulo que no hemos probado y queremos ver si nos soluciona todos nuestros problemas aplicándolo por primera vez en un proyecto complejo, largo y ajustado de plazos (¿Qué podría salir mal?).
Esto de las cosas que vemos en las charlas y salimos flipados dará para otro post. Normalmente en las charlas hay mucho postureo. En algunas ocasiones se cuentan solo las bondades de las cosas y es muy complicado que aplicar una tecnología o metodología traiga solo consecuencias positivas. Pero creo que esto es para otro post.
En resumen, y por concluir creo que es bueno de vez en cuando poner los pies en la tierra y repetirse a uno mismo:
NO TE FLIPES