Desarrollo de Software: Estrategias y Decisiones Clave

Clase 3 de 42Curso de Tecnología para Gerentes y Directores

Resumen

¿Cómo planificar el desarrollo de una aplicación?

Es vital comprender que crear una aplicación no se asemeja a la construcción de una casa, sino más bien al cultivo de un jardín. Aunque algunos piensan que se pueden dibujar planos detallados y seguirlos al pie de la letra, la realidad del software es diferente: es un ecosistema vivo y en constante cambio. A medida que los usuarios interactúan con el software, surgen necesidades y mejoras que impulsan la evolución de la aplicación. Entonces, antes de decidir si contratas a alguien externo, usas servicios ya construidos o desarrollas in-house, es fundamental entender el viaje que tomará tu idea.

¿Cuál es la diferencia entre el desarrollo de software y la construcción tradicional?

Mientras que la construcción de una casa sigue un plan casi inquebrantable, el software requiere una mejora continua. Reflejando el ejemplo de WhatsApp, que ha evolucionado con funcionalidades como llamadas de voz y videollamadas, un software se mantiene a través de iteraciones. Este proceso permite incorporar mejoras sin tener que reconstruirlo desde cero, al contrario de una casa, donde cada cambio puede implicar una renovación completa.

¿Qué considerar al desarrollar una app como Uber?

Crear una app como Uber involucra múltiples capas de complejidad. No es solo una interfaz donde aparecen taxis; requiere integrar GPS, mapas, transmisión de datos en tiempo real y plataformas de pago. Además, las aplicaciones para conductores tienen sus propias necesidades, como sistemas de recolección de dinero, navegación autónoma, y áreas de tarifas dinámicas. Cada una de estas funciones debe ser cuidadosamente planificada y continuamente actualizada.

¿Cómo decidir entre externalizar, comprar servicios o desarrollar internamente?

Uno de los errores comunes es asumir que un único enfoque es el correcto para todos los proyectos. En realidad, la decisión depende de varios factores:

  • Costo y presupuesto: A menudo, crear un equipo interno puede resultar costoso si la empresa no se dedica al software.
  • Tiempo: Servicios ya existentes pueden acelerar el tiempo de llevar una idea al mercado, frente a desarrollar todo desde cero.
  • Control y propiedad: Desarrollar internamente ofrece más control y personalización, aunque puede requerir más tiempo y recursos.

En última instancia, la elección depende de la capacidad de reconocer la naturaleza cambiante del software. Un entendimiento profundo de esta dinámica permitirá tomar decisiones informadas sobre cuándo externalizar, cuándo desarrollar internamente y cuándo utilizar servicios preexistentes.

¿Qué debo evaluar al contratar ingenieros?

El éxito en el desarrollo de software depende también de la elección adecuada del equipo de ingenieros. Debemos considerar:

  • Especialización: Identificar qué habilidades son necesarias para el proyecto específico.
  • Experiencia en iteración continua: Involucrados en proyectos donde han tenido que implementar mejoras regulares.
  • Capacidad de comunicación: Los ingenieros deben poder comunicar de manera efectiva tanto con el equipo técnico como con el equipo de negocio.

Comprendiendo la importancia de la iteración en el desarrollo de software

El curso mencionado pretende capacitar para comprender y aplicar el concepto de desarrollo iterativo. Durante el trayecto, aprenderás a identificar qué partes del software son cruciales para mantener en evolución continua y cómo estimar los alcances del proyecto de manera realista. Además, aunque no requieras conocimientos previos de ingeniería, te equipará para hablar el idioma de los ingenieros, facilitando una comunicación clara y efectiva.