top of page
  • Foto del escritorSuris Code Team

Problemas clásicos en el desarrollo de software

Actualizado: 23 feb 2023

La ingeniería de software es una disciplina que lleva años de perfeccionamiento. A lo largo del tiempo los especialistas han recolectado experiencias y aprendizajes en millones de proyectos y equipos de trabajo. A continuación resumimos los principales problemas a los que puede enfrentarse un proyecto de desarrollo software.


1. Estimación de tiempo poco realista

Hacer un buen cálculo de los recursos, tiempos y costos necesarios para llevar a cabo el proyecto es una tarea que a veces no se encara de la forma adecuada. Nadie desea contratar un servicio teniendo en mente un determinado presupuesto de tiempo y costo, solo para descubrir que realmente le tomará el doble de tiempo y los costos se multiplicarán.


Si bien la estimación es un proceso en gran medida basado en la experiencia, también existen técnicas para acercarse bastante a una buena cotización. Por lo tanto, establecer expectativas realistas frente a estos dos temas, gracias a una adecuada planeación y análisis, es fundamental.


Un técnica que nos permite tener una idea de cómo se estimó un proyecto es verificar lo siguiente:

  • ¿El proveedor tuvo reuniones conmigo para realizar un análisis previo?

  • ¿Tuvo contacto conmigo para resolver alguna duda?

  • ¿Me pidió documentación que le ayude a estimar?

  • ¿Expresó lo que necesito, como para verificar si me entendió?

Si alguno de estos puntos no estuvo presente durante el proceso, puede ser un indicio de que tu proyecto tiene cierto riesgo de no estar bien estimado y cotizado.


2. Incorrecta gestión de riesgos

Es vital que se haga un buen análisis de los riesgos del proyecto y de las acciones para mitigarlos, de tal forma que el plan de trabajo no se detenga o se retrase por riesgos imprevistos en el análisis. Se requiere entonces identificar al menos los riesgos conocidos y los predecibles, ya sea que se trate de la tecnología, las personas, el contexto, el mercado, los competidores y/o el gobierno para estar preparados y con un plan de acción, en caso que algunos de los riesgos identificados ocurran.


Hacer este ejercicio de planeación permite alinear las expectativas para que sean más realistas, dependiendo de la posibilidad de que ciertos riesgos sucedan y de su criticidad. Si se identifican muchos riesgos con alta probabilidad de ocurrencia y criticidad es necesario establecer un marco de acción más amplio. Por el contrario, si las probabilidades son muy bajas y su impacto no es muy alto, entonces el plan puede proceder como se estima.


3. Control de calidad insuficiente

El aseguramiento de la calidad es una etapa primordial en tu proyecto de software, pues en esta etapa se permite validar todos los puntos de quiebre y cruciales en la operación de un negocio dado y hacia el cual está encaminado el software.


Es recomendable que se destine al menos un 30% del tiempo total de desarrollo para las pruebas que el departamento de calidad ejecuta. Estimar un tiempo menor no es aconsejable, pues según los expertos no se puede realmente garantizar que el software pueda realizar todo lo esperado de la manera correcta, aún siendo cuando la funcionalidad a validar ya sea por más conocida.


Tú como cliente estás en todo tu derecho de pedir resultados (documentos que respalden su ejecución) de al menos las siguientes operaciones realizadas en esta fase, ya sea en proyectos de cascada o en SCRUM: plan de pruebas, diseño de casos de prueba, ejecución de ciclos de prueba, validación de pruebas integrales y pruebas automatizadas.


4. Deuda técnica

La deuda técnica es la acumulación de atajos de diseño o codificación que pueden causar problemas en el futuro. El problema clásico es que a menudo se ignora o no se gestiona adecuadamente la deuda técnica, lo que provoca un aumento en los costos de mantenimiento, una reducción del rendimiento y una capacidad limitada de escalabilidad. Para mitigar este problema, es esencial identificar la deuda técnica temprano, priorizarla y asignar recursos para pagarla.


5. Gestión de requisitos

Los requisitos son la base del desarrollo de software y gestionarlos es crucial para el éxito del proyecto. El problema clásico es que a menudo los requisitos están mal definidos, son incompletos o cambian constantemente, lo que provoca un alcance imprevisto, plazos incumplidos y costos adicionales. Para mitigar este problema, es esencial involucrar a los interesados temprano en el proceso, establecer canales claros de comunicación y utilizar herramientas colaborativas como historias de usuario, prototipos y maquetas.


6. No involucrar al usuario final o cliente

Su participación es fundamental para que los desarrolladores vayan recibiendo retroalimentación constante que permita hacer ajustes durante la ejecución del proyecto. De esta forma se evita llegar hasta el final, solo para reconocer que hay que reconstruir gran parte. Entre más rápido se detecten aspectos a corregir, menos tiempo y dinero se desperdiciará.


Adicionalmente, el cliente es el que determina el éxito del software, pues si el usuario no lo aprueba o considera que no resuelve la necesidad o el deseo que se identificó, entonces el proyecto ha sido en vano.


Otro aspecto fundamental, no es sólo involucrar al usuario para que el software cumpla su propósito, sino que lo haga de la mejor forma, considerando la interacción que el usuario va a tener con el sistema para que sea la mejor experiencia posible.


7. No comunicar "lo que va a pasar"

Una situación habitual es omitir "contar lo que va a pasar" durante la ejecución del proyecto. Esto atenta contra las expectativas del cliente y puede generar sentimientos de frustración que pueden evitarse. Resulta útil desde un inicio enfrentar lo que comúnmente pasará a lo largo del ciclo de vida de tu proyecto cumunicándolo claramente:

  • Todos los proyectos pueden sufrir atrasos, algunos por motivos del proveedor y otros del cliente. Eso no significa que al final no vaya a ser exitoso.

  • Puede resultarte tedioso que te pregunten repetidamente los detalles de los requerimientos, pero esto es importante para eliminar ambigüedades ("el Diablo mete la cola en los detalles").

  • Tal vez tengas que participar en muchas de reuniones, aún habiéndole contado a tu proveedor todo lo que tiene que saber.

  • Y te va a molestar que en esas reuniones salgan requerimientos nuevos y te comenten que no están dentro del alcance original, demando costos y tiempos adicionales.

Pero si lo anterior no se comunica y se acepta de antemano, se generará seguramente fricción innecesaria por no tener las expectativas alineadas.



En Suris Code ayudamos a nuestros clientes a evitar estas situaciones y obtener una experiencia de proyecto agradable y sin sobresaltos.

228 visualizaciones0 comentarios

Entradas Recientes

Ver todo

Comentarios


bottom of page