Quién, por qué y cómo de la gestión de proyectos en el desarrollo de software

Publicado: 2022-11-02

Te estás aventurando en el desarrollo de software. Tiene una idea preparada para el futuro, requisitos detallados, suficiente experiencia técnica y un equipo capacitado. Solo te falta un gestor de proyectos experto. Con dichos dados, ¿cuáles son las probabilidades de que completes el proyecto?

La triste verdad es que las posibilidades de éxito no son tan altas. Varios estudios sugieren que las causas principales de las fallas en el desarrollo de software están ligadas principalmente a una mala gestión de proyectos.

Los errores comunes en la gestión de proyectos de desarrollo de software que están provocando que fracasen son los objetivos cambiantes del proyecto, la comunicación inadecuada, la gestión de cambios deficiente, las estimaciones de costos imprecisas, los riesgos no identificados y otros.

Por lo tanto, para asegurarse de que su proyecto no se salga de control, debe hacer de la gestión de proyectos saludable una prioridad. A continuación, compartimos nuestra experiencia en el desarrollo de soluciones de software empresarial, respondiendo preguntas agudas sobre la gestión de proyectos de desarrollo de software.

¿Qué tan importante es la gestión de proyectos para el éxito del proyecto de desarrollo de software?

En resumen, muy.

Los proyectos de desarrollo de software suelen ser muy complejos. Para que un proyecto se considere un éxito, debe cumplir con los requisitos y garantizar una alta calidad de ejecución, mientras se completa a tiempo y dentro del presupuesto. Y de eso es de lo que es responsable un gerente de proyecto.

Los beneficios de contratar talento dedicado para gestionar proyectos de desarrollo de software, por lo tanto, abarcan:

  • Riesgos reducidos
  • Un director de proyecto es responsable de la gestión eficaz de riesgos. Al comienzo de un proyecto, mapean, documentan y priorizan los riesgos potenciales, así como también diseñan una estrategia de respuesta al riesgo.

Cuatro formas comunes de responder a los riesgos abarcan:

  • Evitar: eliminar o renunciar a una amenaza.
  • Mitigar: reducir la probabilidad o el impacto de una amenaza.
  • Transferir: asignar o mover una amenaza a un tercero
  • Aceptar: reconocer una amenaza y optar por no resolverla, transferirla o mitigarla.

Para idear una estrategia adecuada de respuesta al riesgo, un gerente de proyecto puede organizar sesiones de lluvia de ideas con el equipo, recurrir a guiones gráficos o entrevistar a personas de todas las partes de las operaciones. Con la estrategia de gestión de riesgos a la mano, se vuelve más fácil para el equipo del proyecto prever los riesgos y prevenirlos oportunamente.

  • Mejor control sobre los costos del proyecto
  • Los sobrecostos son comunes en la gestión de proyectos de desarrollo de software. Como no solo afectan los márgenes, sino que también dificultan la capacidad de ejecutar el proyecto, un PM experimentado presenta un enfoque óptimo para la gestión de costos.
  • Estiman, presupuestan y controlan los costos a lo largo del ciclo de vida del proyecto, con el objetivo de mantener los gastos dentro del espacio aprobado. La gestión de costos saludable también ayuda a establecer expectativas para las partes interesadas, controlar el avance del alcance, aumentar el ROI del proyecto y monitorear las tendencias de costos a largo plazo.
  • Utilización óptima de los recursos.
  • La gestión saludable de proyectos en el desarrollo de software ayuda a garantizar que todos los recursos del proyecto, que abarcan personas, sus habilidades, tiempo, herramientas, equipos y servicios, se coordinen y utilicen de manera eficiente.
  • Durante la fase de descubrimiento del proyecto, un PM estima, asigna y planifica los recursos necesarios, además de distribuirlos según las prioridades. Durante el desarrollo, el PM realiza un seguimiento de la utilización de los recursos y elimina cualquier cuello de botella que pueda dificultar la finalización del proyecto.
  • Mejor control sobre el alcance del proyecto
  • Un problema común en la gestión de proyectos de desarrollo de software, es mejor evitar el desplazamiento del alcance. Los cambios no controlados influyen en el cronograma, el presupuesto, los costos y la asignación de recursos del proyecto, además de comprometer la entrega de hitos.
  • Al abordar la gestión de proyectos en el desarrollo de software, un PM establece un procedimiento de solicitud de cambio y se asegura de que se siga para cada nuevo requisito. El objetivo es evitar el aumento incontrolado del alcance y asegurarse de que el proyecto se entregue a tiempo y dentro del presupuesto. Una vez que la nueva actividad se aprueba y se agrega al alcance, el cronograma del proyecto y las líneas base del presupuesto se actualizan en consecuencia.

¿Qué es la gestión de proyectos en el desarrollo de software?

La gestión de proyectos en el desarrollo de software es el arte de planificar, programar y realizar un seguimiento de las actividades del proyecto dados los recursos y las limitaciones disponibles.

Como se dijo anteriormente, los proyectos de desarrollo de software son bastante complejos e incluyen múltiples etapas. Un gerente de proyecto planifica y supervisa la ejecución del proyecto a lo largo de estas etapas.

Según el Project Management Institute, hay cinco etapas clave en un ciclo de vida de desarrollo de software desde el punto de vista de un PM.

  • Concepción del proyecto

El objetivo clave de la etapa de concepción del proyecto es determinar los objetivos centrales del proyecto, definir las necesidades comerciales y redactar la declaración de trabajo. Este último debe incluir, sobre todo, los requisitos de la futura solución y un calendario de entrega del proyecto. La concepción del proyecto generalmente requiere una estrecha colaboración entre todas las partes interesadas del proyecto, con un analista comercial y un gerente de proyecto a la cabeza.

  • Planificación de proyectos

La etapa de planificación del proyecto es un esfuerzo cooperativo de un gerente de proyecto y un equipo de proyecto. El equipo del proyecto diseña la arquitectura técnica de una solución y crea su apariencia. Un PM, a su vez, diseña un plan de proyecto, elabora una estructura de desglose del trabajo y prepara un cronograma del proyecto. El objetivo final de la etapa es obtener una comprensión clara del alcance del proyecto y establecer la base para el seguimiento y control del desempeño del proyecto.

En esta etapa, un PM también configura herramientas de comunicación y seguimiento del progreso, así como planes para implementaciones futuras, definiendo criterios de aceptación.

  • Lanzamiento y ejecución del proyecto.

Mientras un equipo de proyecto se dedica a diseñar y probar la solución futura, un director de proyecto supervisa el rendimiento del equipo, elimina los cuellos de botella que pueden dificultar el trabajo del proyecto, facilita la comunicación entre los miembros del equipo y las partes interesadas del proyecto, documenta el progreso del proyecto, realiza un seguimiento de los factores desencadenantes de riesgos e informa. al cliente o a la alta dirección.

  • Aceptación del proyecto

En la etapa de aceptación del proyecto, la solución o un conjunto de entregables se implementa en un entorno de prueba, donde se prueba en versión beta. El equipo de desarrollo proporciona los zorros necesarios, si es necesario. El PM se asegura de que la solución se entregue por completo y a tiempo, así como también garantiza que el software entregado cumpla con los criterios de aceptación acordados. Otra parte de la gestión de proyectos en el desarrollo de software en la etapa de aceptación del proyecto se ocupa de la preparación de guías de usuario, instrucciones de instalación y otra documentación del proyecto.

  • finalización del proyecto

Una vez que se completa un proyecto, un gerente de proyecto realiza una revisión retrospectiva, donde evalúa y documenta los altibajos de todo el proyecto. También aseguran que el alcance completo de los entregables se entregue al cliente/propietario del producto, incluido todo el código fuente, la documentación del software, el entorno de desarrollo y más.

Estas etapas esenciales pueden seguirse linealmente o permitir una mayor superposición, según el enfoque elegido para gestionar proyectos de desarrollo de software.

Gestión de proyectos en el desarrollo de software: metodologías populares

Las metodologías de gestión de proyectos de software más utilizadas incluyen Scrum, Kanban (ambas pertenecientes a la familia Agile) y Waterfall.

Otros enfoques menos populares para la gestión de proyectos en el ámbito del desarrollo de software: el modelo de desarrollo incremental, el modelo en espiral, PRINCE2 y Rational Unified Process (RUP).

Melé

Scrum, uno de los enfoques más populares para la gestión de proyectos en el desarrollo de software, divide el proceso de desarrollo en sprints, de dos a cuatro semanas cada uno. Los sprints suelen ir precedidos de una planificación minuciosa. Una buena opción para proyectos con un alto nivel de incertidumbre, Scrum se basa en equipos multidisciplinarios autoorganizados y adopta la idea del desarrollo incremental basado en la observación y la experimentación.

La gestión de proyectos basada en Scrum en el desarrollo de software es un poco diferente de la gestión tradicional, ya que no existe un PM como tal. En cambio, las responsabilidades de uno se comparten entre un Product Owner y un Scrum Master.

Kanban

La peculiaridad de Kanban es que no hay iteraciones definidas explícitamente. Es un enfoque simplificado para administrar proyectos de desarrollo de software que ayuda a visualizar el alcance del proyecto, limitar el trabajo en curso y garantizar un flujo de trabajo fluido. La metodología utiliza tableros kanban físicos o digitales que representan el proceso de trabajo único del equipo.

Debido a su naturaleza, el modelo es una buena opción para proyectos de soporte y mantenimiento.

Otra peculiaridad de Kanban es implementar un límite a la cantidad de trabajo en curso. La metodología apunta a equilibrar el alcance y los recursos. Las tareas se extraen según lo permita la capacidad disponible, en lugar de insertarse en el proceso cuando se solicita.

Las responsabilidades de administrar un proyecto de desarrollo de software generalmente se comparten entre dos roles esenciales para Kanban: un administrador de entrega de servicios y un administrador de solicitudes de servicios. El primero se encarga de aumentar la eficiencia de los flujos de trabajo, mientras que el segundo se dedica principalmente a interpretar las necesidades y expectativas del cliente.

Sin embargo, no es necesario contratar miembros adicionales del equipo para cumplir con las reglas de Kanban. En realidad, un PM experimentado suele ser adecuado para ambos roles.

Cascada

A diferencia de la familia Agile, la gestión de proyectos basada en Waterfall divide un proyecto en distintas fases secuenciales.

Tradicionalmente, una nueva fase comienza una vez que la anterior se completa por completo. Sin embargo, los proyectos Waterfall modernos permiten cierto grado de superposición. Es bastante común que un equipo de prueba, por ejemplo, comience a verificar características individuales durante el desarrollo.

El enfoque Waterfall para administrar proyectos de desarrollo de software funciona bien para proyectos con un alcance predecible; aún así, puede dejar a los equipos de desarrollo desprevenidos e incapaces de adaptarse más rápido que la competencia.

Dado que existen peculiaridades en la gestión de proyectos en Waterfall y Agile, profundicemos en las diferencias clave.

¿Cuál es la diferencia entre la gestión de proyectos Waterfall y Agile?

Veamos ahora con más detalle cómo difieren las prácticas de gestión en los proyectos Waterfall y Agile. Estamos comparando los dos porque son más comunes que otras metodologías de gestión de proyectos y existen diferencias significativas en cómo se organiza el trabajo del proyecto en ambos. Este último influye en el rol y las responsabilidades de un gerente de proyecto (o un rol respectivo en Agile).

Planificación de proyectos

En Waterfall, es imposible avanzar sin una comprensión profunda de lo que está construyendo y por qué. Es por eso que la elaboración de una especificación de requisitos de software exhaustiva es la prioridad número uno en los proyectos Waterfall. Por lo general, el SRS lo escribe un analista de negocios. Pero en ausencia de uno, un gerente de proyecto puede hacerse cargo.

Agile, por otro lado, permite una mayor flexibilidad. Introducir mejoras de productos y procesos sobre la marcha es la esencia de las metodologías ágiles. Las actividades de planificación suelen llevarse a cabo con un sprint de antelación. El backlog se crea durante el llamado sprint cero.

Durante el sprint cero, el equipo presenta una cantidad mínima de historias de usuarios para convertirlas en un producto viable y, opcionalmente, configura la infraestructura para el desarrollo. El sprint generalmente se mantiene ligero y de alto nivel.

Gestión y presupuesto del alcance del proyecto

En Waterfall, el alcance de la solución debe permanecer intacto a lo largo de los proyectos. Las solicitudes de cambio se gestionan a través del procedimiento de Gestión de Cambios y se facturan por separado. La gestión de proyectos en el desarrollo de software Agile ofrece más flexibilidad en términos de gestión del alcance, pero dificulta la evaluación del impacto de los cambios de alcance en los costos finales del software. Esto afecta el enfoque de la presupuestación del proyecto.

En Waterfall, el presupuesto es de arriba hacia abajo, controlado y basado en un caso de negocios detallado. Este enfoque hace posible dar una estimación de costos realista una vez que se han obtenido y analizado los requisitos. El principal inconveniente es que este enfoque no funciona en entornos volátiles, inciertos y ambiguos, como suelen ser los proyectos de desarrollo de software.

La forma ágil de administrar los costos de los proyectos de desarrollo de software responde al cambio. Y eso es tanto una ventaja como una complejidad. La presupuestación ágil está alineada con la estructura y el cronograma del proyecto. Y dado que también sigue la estructura de sprint, es más fácil para el equipo adaptarse a las circunstancias cambiantes, sin que eso afecte todo el presupuesto del proyecto. El director del proyecto simplemente vuelve a calibrar los gastos en la siguiente ronda de planificación.

Proyectos Deliverable

Al seguir la ruta Agile, las empresas obtienen un incremento de la nueva funcionalidad o algún otro producto, ya sea una visión técnica, una función de trabajo o un MVP, después de cada iteración.

En Waterfall clásico, por otro lado, un cliente realmente no obtiene ninguna solución coherente y funcional hasta el final del proyecto. Las actividades de prueba a gran escala también se llevan a cabo más adelante en el proceso de desarrollo, lo que podría afectar el tiempo de comercialización.

Documentación del proyecto

La planificación adecuada y documentada es imprescindible en la gestión de proyectos de desarrollo de software de acuerdo con Waterfall. Los requisitos del proyecto deben ser claros desde el principio y cada miembro del equipo debe conocerlos. Cada miembro del equipo también debe comprender cuál es su función dentro del proyecto y qué se espera de ellos. Esta información también suele documentarse y distribuirse entre el equipo del proyecto.

Los equipos de Waterfall consultan la documentación con frecuencia a lo largo del proceso de desarrollo para facilitar el seguimiento del progreso. Y esa es la única forma de hacerlo, teniendo en cuenta la duración y la complejidad de los proyectos que normalmente se gestionan de acuerdo con Waterfall. La documentación se lleva a cabo en cada fase, asegurando que todos estén en la misma página sobre el progreso del proyecto, a pesar de la naturaleza secuencial del modelo.

Si bien la documentación extensa sirve para la reducción de riesgos en Waterfall, reduce la adaptabilidad al cambio en Agile. Por lo tanto, es común producir menos documentación en proyectos ágiles. Y si se produce, los documentos se mantienen concisos.

Pero a pesar de una creencia errónea común, no hay nada en la metodología Agile que impida inherentemente que los equipos creen toda la documentación que necesitan. Algunos documentos son, de hecho, absolutamente necesarios. Agregar historias de usuarios a la cartera de pedidos, redactar esquemas y documentar las reuniones con los clientes es imprescindible. Lo que Agile sugiere es ser más inteligente con respecto al proceso de documentación y evitar una documentación demasiado larga.

¿Cuáles son las responsabilidades de un director de proyecto?

Las responsabilidades de un gerente de proyecto también diferirán, según el enfoque para administrar un proyecto de desarrollo de software. Veamos qué hace un PM o un rol Agile respectivo precisamente en cada etapa del proyecto.

en cascada

Un gerente de proyecto es el rol más importante en cada equipo de Waterfall. Son responsables de la calidad de los entregables y de que el proyecto se complete a tiempo. Sus principales responsabilidades incluyen la supervisión de las actividades del proyecto y la designación de tareas para los miembros del equipo.

Ahora dividamos el alcance del trabajo del PM en fases.

en ágil

Un gerente de proyecto Agile prioriza los elementos pendientes para cada sprint, monitorea el progreso del desarrollo y establece una comunicación efectiva dentro del equipo, así como entre el equipo y las partes interesadas. También monitorean los riesgos en cada fase del proyecto y se aseguran de que el proceso de desarrollo se adhiera a los principios Agile.

Esto es lo que hace un gerente de proyecto específicamente en cada etapa de un proyecto Agile:

¿Cuáles son las trampas que debe tener en cuenta un gerente de proyecto?

La clave del éxito en la gestión de proyectos de desarrollo de software es ser capaz de prevenir y evitar riesgos. Las trampas comunes que un buen PM debe tener en cuenta abarcan:

No tener control sobre el alcance

Especialmente en Agile, es común que los clientes soliciten funciones adicionales sobre la marcha, lo que a menudo hace que los proyectos salgan mal. Un gerente de proyecto, por lo tanto, debe implementar un procedimiento claro de gestión de cambios para evitar el aumento del alcance. También deben asegurarse de que las partes interesadas estén en la misma página sobre el impacto de los cambios en el cronograma y los recursos de un proyecto.

No enfocarse en cumplir con la fecha de entrega

Desarrollar un producto con requisitos estrictos de tiempo de comercialización, por ejemplo, una aplicación educativa que debe lanzarse antes del comienzo del año escolar o una aplicación minorista que debe implementarse a tiempo para las ventas navideñas, un PM debe atacar el equilibrio adecuado entre mantenerse a tiempo y garantizar una alta calidad.

Necesitan invertir un esfuerzo adicional para priorizar las funciones y establecer plazos para la entrega de cada función. Los requisitos de calidad también deben definirse por adelantado para evitar problemas que surjan después de la implementación.

No poder establecer una comunicación efectiva.

La gestión eficaz de proyectos en el desarrollo de software exige una comunicación eficaz y transparente. Establecer uno es la responsabilidad clave del PM. Deben mantener informado al equipo sobre las decisiones de las partes interesadas e informar periódicamente a las partes interesadas sobre todas las actividades, cuellos de botella y desafíos del proyecto.

No establecer procesos claros

Seguir un proceso de desarrollo de software puede parecer una carga para los miembros del equipo. Aún así, es necesario establecer un flujo de trabajo claro que se adapte a las especificaciones del proyecto. Estructurará el trabajo y dejará claras las expectativas.

Confiar en tecnología desconocida

El director del proyecto debe asegurarse de que el equipo de ingeniería se centre en resolver el problema comercial del cliente al tomar decisiones tecnológicas. También deben verificar que la pila tecnológica elegida esté en línea con las mejores prácticas de ingeniería.

Otro escollo relacionado con la tecnología es no planificar la escalabilidad en las primeras etapas del desarrollo del producto. Por lo tanto, recomendamos definir los requisitos de escalabilidad junto con otros requisitos no funcionales por adelantado.

No pensar en el proceso de implementación por adelantado

El proceso de implementación a menudo se pasa por alto en las primeras etapas de desarrollo, lo que genera retrasos críticos durante la implementación. La gestión saludable de proyectos en el desarrollo de software requiere un PM para garantizar que los problemas de implementación e instalación se resuelvan al principio del proceso de desarrollo.

Cómo abordar la gestión de proyectos en el desarrollo de software: la perspectiva de ITRex

Nos sentamos con Alexander Belkavets, PM principal en ITRex, y lo entrevistamos sobre cómo en ITRex abordamos la gestión de proyectos de software. Esto es lo que hemos aprendido.

¿En qué factores se basa a la hora de elegir un modelo de gestión de proyectos adecuado para nuestros clientes?

Alexander: Hay muchos factores detrás de elegir este o aquel enfoque para la gestión de proyectos. Los más importantes son el alcance del proyecto, el presupuesto y el tiempo de comercialización.

Si estamos trabajando en un producto que debe actualizarse regularmente para generar valor continuamente para los usuarios finales, por ejemplo, una aplicación de juegos, naturalmente optaríamos por Scrum o un enfoque similar a Scrum.

Si, por el contrario, estamos trabajando en una solución de software encargada por una entidad gubernamental, lo que generalmente significa que el presupuesto es fijo, preferimos optar por un enfoque similar a Waterfall para garantizar la previsibilidad necesaria. Sin embargo, no es raro dividir la fase de desarrollo en iteraciones más pequeñas. Por lo tanto, a menudo recurrimos a un enfoque híbrido que nos permite beneficiarnos de la previsibilidad de Waterfall y la mejora continua y la velocidad de entrega de Agile.

¿Hay otros factores que influyan en la elección de una metodología de gestión de proyectos?

Alejandro: Claro. El sector en el que se utilizará una solución futura, las necesidades de certificación, la voluntad del cliente de participar en el proceso y muchos otros factores también afectan el proyecto.

Al desarrollar soluciones para el cuidado de la salud, por ejemplo, es común optar por Waterfall. En los EE. UU., antes de poder comercializar, digamos, un nuevo dispositivo para el cuidado de la salud, deben obtener la aprobación de la FDA; y eso requiere una extensa documentación, que sería imposible de asegurar siguiendo Agile.

¿Qué implica exactamente su papel como gerente de proyecto? ¿Cuál es su objetivo clave en la gestión de los proyectos de nuestros clientes?

Alexander: Miro mi rol como gerente de proyecto desde dos perspectivas.

La primera es: gestionar un proyecto es gestionar riesgos. Los proyectos de desarrollo de software son propensos a muchos riesgos, desde requisitos intrínsecamente defectuosos hasta abastecimiento inadecuado, pasando por panoramas tecnológicos cambiantes y más. El objetivo clave de un gerente de proyecto en este sentido es minimizar el impacto de los riesgos en el proyecto y, por lo tanto, maximizar la posibilidad de que el software se entregue con éxito.

La segunda perspectiva es: administrar un proyecto se está convirtiendo en una especie de integrador que permite que muchos subsistemas del proyecto, como el desarrollo, las pruebas y la implementación, se unan armoniosamente. El objetivo clave de un PM es orquestar todos los procesos dentro del proyecto de una manera que genere menos riesgos y garantice la máxima utilización de los recursos.

¿Puede recordar un proyecto en el que un enfoque elegido para la gestión de proyectos resultó ser el factor decisivo para garantizar el éxito de un producto?

Alexander: Estábamos desarrollando una aplicación móvil para nuestro cliente e iniciamos el proyecto con Scrum. Una vez que lanzamos la primera versión de la aplicación y obtuvimos las primeras métricas del producto, decidimos cambiar a Kanban.

Para retener a los primeros usuarios, necesitábamos continuar entregando nuevas funciones regularmente, aunque ya no eran necesarios sprints de dos semanas. Kanban nos permitió adaptar la duración del sprint a la complejidad de las nuevas funciones, con un sprint promedio de tres a cuatro semanas, por lo que mantuvimos el ritmo de entrega sin poner al equipo de desarrollo bajo presión adicional. Como resultado, nuestro cliente logró retener y atraer nuevos usuarios.

Debido a que los equipos ágiles están posicionados para ser autogestionados, es tentador llegar a creer que un proyecto también puede completarse sin un gerente de proyecto dedicado. ¿Es tan?

Alexander: En caso de que no haya un PM dedicado, las responsabilidades de uno tendrían que distribuirse entre todos los miembros del equipo. Todavía habrá que dedicar tiempo a priorizar el trabajo atrasado, adquirir recursos, informar y llevar a cabo otras tareas de gestión esenciales. Pero en ausencia de un PM, estas tareas se delegarían a personas sin experiencia especializada. Eso no ayuda a maximizar la utilización del talento.

Un enfoque sin PM puede funcionar para un equipo pequeño de 3 a 4 personas, pero cuando este número aumenta, tener un gerente de proyecto dedicado se vuelve vital.

Si aún tiene preguntas sin respuesta sobre la gestión de proyectos de desarrollo de software o está dispuesto a ceder la responsabilidad de guiar su proyecto a un socio experimentado, comuníquese con ITRex.


Publicado originalmente en https://itrexgroup.com el 24 de octubre de 2022.