Enfoque: La razón por la que el desarrollo es difícil

enfoque

La única razón por la que el desarrollo de software es difícil

Es una cuestión de enfoque. No es su falta de habilidades de codificación o de pensamiento crítico.


¿Le resulta difícil el desarrollo de software? Bueno, no está solo. Enfoque, enfoque y más enfoque.

Se puede culpar al lenguaje, a los principios y metodologías contradictorios. Culpe al panorama tecnológico en constante cambio. Tal vez sea la empresa la que no sabe lo que quiere. Tal vez le resulte demasiado difícil conformarse con una pila de tecnología. Si lo desea, culpe a la documentación obsoleta de la biblioteca.

 

El desarrollo impulsado por supuestos es la razón más importante por la que el desarrollo de software es difícil.

 

¿Cuántas veces ha pensado para sí mismo o escuchado a un colega decir: “Eso nunca puede suceder”, “Sé que los datos están estructurados de esta manera”, “Soy consciente de todas las entradas posibles” o lo contrario “Necesito considerar todas las entradas posibles”, o simplemente “He hecho esto antes”, solo para que se demuestre que está equivocado.

Dejar que sus suposiciones lo guíen inevitablemente le afectará a usted y a todo el equipo. A menudo es demasiado tarde una vez que la burbuja estalla y usted (o alguien más) se da cuenta de que todo el trabajo terminado tiene fallas fundamentales.

La programación basada en supuestos puede manifestarse de muchas formas diferentes, pero normalmente encuentro estos puntos en común:

  1. De repente, las tareas simples son difíciles de completar o incluso de comenzar
  2. El código se vuelve demasiado detallado
  3. Se utilizan innecesariamente técnicas y diseños elaborados
  4. Estimaciones tremendamente inexactas, en términos de tiempo y esfuerzo
  5. Está pensando demasiado en la solución, sus corner-cases, el camino feliz, etc.

¿Existe un antídoto para sus propias suposiciones?

Sí, y afortunadamente uno sencillo.

Hacer preguntas. Todo el tiempo. Mientras más, mejor. Cuanto más rápido valide sus suposiciones, mejor.

¿Qué hacer cuando no comprende la descripción de una historia de usuario? Pregúntele al propietario del producto. ¿Qué sucede si no comprende por qué es necesaria una función? Pregúntele al propietario del producto. ¿Tiene dudas sobre cómo abordar algunos ajustes de código? Pregúntele a su desarrollador senior o al experto en idiomas.

Meterse en el cerebro de los demás no es suficiente a veces, porque pueden proporcionarle respuestas basadas en suposiciones. En ese caso, tendrá que comprobarlo usted mismo.

¿Le dicen que los datos están organizados de cierta manera? Abra DataGrip o SSMS y escriba esas consultas SQL verificándolo.

Sacrifique su ego por adelantado para cosechar la gloria y la fama más tarde. Créame, la gente preferirá responder la misma pregunta dos veces que rehacer una tarea dos veces.

Lo mismo ocurre con el trabajo en equipo basado en supuestos.

Lo más probable es que coordine su trabajo con otros, a menos que sea un emprendedor en solitario o simplemente codifique por diversión sin ninguna colaboración interpersonal.

Garantizará trabajo adicional si asume que otros saben exactamente cómo completar una tarea, qué es necesario, qué condiciones considerar y requisitos no funcionales que cumplir.

Claro, todo esto podría haberse aclarado por adelantado en la descripción de la historia del usuario, la documentación, la wiki o lo que sea. Sin embargo, la realidad es que no todas las historias de usuarios están perfectamente refinadas, discutidas, o quizás no todo se sabe al momento de escribir este artículo.

Trate de adquirir el hábito de comunicarse con sus co-desarrolladores si eligen una tarea en la que usted tiene muchos conocimientos. Sin duda será de gran ayuda. No asuma que otros tienen la misma cantidad de conocimientos que usted en una tarea determinada.


En resumen…

No confíe en sus suposiciones. Tampoco debe confiar en las suposiciones de los demás.

Si algo es difícil o no tiene sentido, probablemente se deba a que sus suposiciones erróneas le están jugando un truco.

Haga preguntas y verifica las cosas por sí mismo.

Recent Post