Photo by Amélie Mourichon / Unsplash

Necesito una aplicación: ¿Primera experiencia?

25 de abr. de 2023


Vale la pena que consideremos el escenario de la parte inicial de un proyecto, una primera experiencia de alguien que necesite de una aplicación. Para una gran parte de las personas o empresas (medianas y pequeñas) que deciden utilizar algún tipo de software o aplicación para llevar a cabo algún proyecto, es su primera vez.

¿Qué tiene esto de importante?

Nos lleva a que el desarrollo del proyecto tiene que ir de la mano con una introducción, y una posible inducción rápida a la ingeniería de software. Esto logra acotar las brechas entre quienes trabajamos con tecnología, y nuestros cliente en temas como: entendimiento, comunicación y expectativas.

¿Qué es la ingeniería de software?

No pretendemos responder esta pregunta aquí, existe vasta literatura para estudiarla y describir sus distintos aspectos, pero sí podemos dar una pequeña idea para alguien que necesite desarrollar un proyecto y es su primera vez:

Disciplina que involucra los principios de la ingeniería para desarrollar, mantener y gestionar sistemas de software (aplicaciones).

Tenemos en ella las siguientes etapas, las cuales pueden variar en su profundidad y vinculación, dependiendo de la metodología:

  1. Análisis de requerimientos: ¿Qué queremos hacer? 📐
  2. Diseño: ¿Cómo lo haremos? 🤔
  3. Implementación: Programar 🧑🏻‍💻
  4. Testing: ¿Está funcionando bien? 🧪
  5. Despliegue: Entrega a usuarios 🚀
  6. Mantención: ¿Hay problemas? Solucionemos! 🚨

Requerimientos y diseño: lo más importante

Muchos proyectos son llevados rápidamente por las tentaciones a la etapa de implementación, con la ilusoria idea de ganar tiempo en desmedro de las dos etapas clave iniciales, no dedicando el tiempo necesario y no haciendo las definiciones pertinentes antes de comenzar a desarrollar. ¿A quién no le suena bien comenzar a implementar antes?. Se gana tiempo (de paso $) y entregamos rápido el servicio a nuestros usuarios.

Esto es una cuenta que se paga en el futuro, con planificaciones poco precisas y a un producto que no cumple con las expectativas esperadas. Considerar además, un cuidado especial cuando alguien desea desarrollar una aplicación y está poco involucrado/a con el mundo de la tecnología, siendo inconsciente sobre las capacidades de esta, no conociendo sus limitantes ni capacidades.

Guiar

La idea de nosotros, como ingenieros de software, en estas primera etapas, es acompañar y generar un trabajo colaborativo que nos lleve a conocer lo mejor posible la necesidad inicial que tienen nuestros clientes.

Es crucial describir el problema y que el equipo de tecnología lo conozca al detalle, como expertos podrán llegar a la mejor solución de acuerdo a las capacidades tecnológicas frente a los escenarios y contextos expuestos. Con esto ayudaremos a contrastar y a complementar soluciones preconcebidas por el cliente, las cuales generalmente carecen de consideraciones técnicas importantes, y pretenden tener resultados a veces poco realistas. Este ejercicio llevará a un mejor análisis de los requerimientos y un posterior diseño.

Lo anterior es parte de un proceso que no nos librará de defectos o correcciones a medio camino (nadie está libre de ellas), pero las minimizará y ayudará a que sean de naturaleza anexa y de forma, pero no de fondo con efectos sobre la estructura, ya que a medio camino estos cambios son más costos de implementar.

Finalmente

Vale la pena volver a destacar, que a estas etapas iniciales hay que darles tiempo y maduración, esto implica discutir y generar feedback en torno a los elementos base del proyecto, repasar y conciliar hasta los elementos más evidentes. Un proceso de definición de requerimientos y diseño pobre, tentado por la idea de comenzar a implementar y tener un producto lo rápido nos puede funcionar, pero será más una cuestión de suerte. Esto también alineará las expectativas de los involucrados en el proyecto, haciendo converger las concepciones del producto que se tiene planificado realizar.