En el mundo de la tecnología no se trata sólo de la velocidad, se trata de dirección.

Imagina que estás en una carrera de Mario Kart, a toda velocidad pero golpeando todas las cáscaras de plátano de la pista.

Velocidad alta, progreso cero.

Ese es el punto de la cuestión. La velocidad en el desarrollo de software no sólo consiste en programar rápido, sino también en programar de forma inteligente, sabiendo hacia dónde te diriges y asegurándote de que cada sprint te acerca más a la línea de meta.

Y yo creo que existen seis obstáculos para esto:

  • Complejidad: Es como intentar desenredar unos auriculares que llevan demasiado tiempo en el bolsillo. El mundo es complejo, y el desarrollo de software también. Simplifica todo lo que puedas.
  • Ambición: ¿Sueñas con construir el próximo Google en quince días? Reduce la escala. Apunta a la luna, pero empieza con un dron antes que con un cohete.
  • Retos de programación: Es difícil, como intentar resolver un cubo de Rubik en la oscuridad. Reconócelo, planifica y acepta la dificultad.
  • La comunicación: Simplifica la comunicación para reducir las malas interpretaciones. ¿Has jugado alguna vez al teléfono descompuesto? Pues eso, pero con los requisitos del proyecto.
  • Aversión al riesgo: No hace falta llevar coderas, rodilleras y casco sólo para caminar. A veces, hay que aceptar los riesgos para poder seguir adelante.
  • Planificación: O la falta de ella. La planificación en el desarrollo de software suele ser tan precisa como el pronóstico del tiempo. Intenta mejorar esta práctica.

Pero no todo son problemas.

Supera la inercia: el entrenamiento del ingeniero de software

  • Simplifica: No conviertas el proyecto en una máquina de Rube Goldberg. Cuanto más sencillo, mejor.
  • Modestia en los objetivos: Establece hitos alcanzables. Es un maratón, no un sprint.
  • Minimice las necesidades de comunicación: Utiliza herramientas y métodos para reducir las reuniones innecesarias. La comunicación asíncrona puede ser tu mejor aliada.
  • Asume riesgos: pero riesgos calculados. No lances la casa por la ventana, pero sí una galleta o dos.
  • Planifica sabiamente: Utiliza métodos como el del camino crítico. Es como Google Maps para la gestión de proyectos. Debes conocer tu ruta y tus alternativas.

Ajusta tu actitud

La velocidad es algo más que una métrica: es una mentalidad.

Piénsalo como si fueras el DJ de la fiesta. Tienes que interpreta la sala (proyecto), ajustar las canciones (planes) y, a veces, cambiar el ambiente (estrategia) para que la fiesta (desarrollo) no decaiga.

Que buena analogía 😂

  • Aprende a decir "no": A veces, decir "no" es la forma de mantener las cosas en movimiento. No todas las reuniones requieren tu presencia, ni hay que implementar todas las tecnologías de moda.
  • Empieza pronto, aprende rápido: La agilidad no es sólo una palabra de moda; es un salvavidas. Empieza a programar pronto, adáptate en función de los comentarios y evoluciona. Piensa en ello como si estuvieras repitiendo tus pasos de baile en función de la reacción del público.
  • Herramientas y técnicas: Las herramientas no resuelven todos los problemas, pero pueden hacer que el camino sea menos duro. Utilízalas sabiamente.
  • Estructuras de comunicación: Optimiza los canales de comunicación.
  • La planificación es clave: No te limites a enumerar tareas; comprende tus dependencias, establece prioridades y adáptate.

Para finalizar

Como ingeniero de software, adoptar la velocidad como actitud significa ser proactivo, adaptable y estar siempre dispuesto a aprender del último sprint.

Pero recuerda, aunque la velocidad es crucial, no sacrifiques la calidad por la rapidez.

Nos vemos en la edición #24

Recuerda, a nadie le gusta una comida apresurada, ni tampoco el software. Brindo por una programación más inteligente, no más difícil.

Recuerda que si quieres hablar de algo en particular puedes sugerir el tema respondiendo este correo.

Hasta pronto 👊🏼

#23 6 Obstáculos en el desarrollo de software y cómo superarlos