Por qué no se deben ignorar los retrasos en los proyectos de software

Publicado el

( 23 de octubre de 2020)

Una mirada a los desafíos más destacados que enfrentan los equipos en la entrega de software y sugerencias sobre cómo pueden administrar estos problemas para mantener los proyectos en marcha.

A medida que las empresas de hoy compiten por digitalizarse, los equipos de desarrollo de software están bajo una presión cada vez mayor para ofrecer nuevas funciones a alta velocidad . Como resultado, los retrasos en los proyectos de software se vuelven inevitables. Se convierte en un problema cuando estos retrasos se tratan como una parte «normal» del ciclo de vida del desarrollo de software. Si bien un solo retraso puede no ser necesariamente motivo de mayor preocupación, los retrasos que ocurren una y otra vez deben tomarse en serio, ya que a menudo son un síntoma de una causa raíz más grande y peligrosa.

Producto de software el desarrollo es un sistema complejo y dinámico. En un sistema bien equilibrado, a medida que se agregan nuevas solicitudes a la cartera de productos, al mismo ritmo, las solicitudes existentes se convierten en funciones disponibles para el cliente. Cuando el ritmo de las solicitudes entrantes es más alto que el de las funciones salientes, el sistema se desequilibra. Si lo ignoramos, este desequilibrio progresará aún más y eventualmente conducirá a una falla del sistema.

Aquí hay algunas causas comunes que veo a menudo en la práctica:

Planificación demasiado optimista

Por lo general, somos demasiado optimistas por naturaleza y sobrestimamos cuánto podemos hacer en un período de tiempo determinado. Esto no es necesariamente algo malo. Sin embargo, si sucede con frecuencia, muestra que no se toma en serio el cumplimiento de los plazos. Un principio ágil importante es que solo los desarrolladores de software son responsables de la estimación del esfuerzo. Aún más, es una buena práctica para cada equipo ágil rastrear la diferencia entre el trabajo comprometido a realizar en un sprint y el trabajo real realizado después del sprint. El objetivo es observar el progreso de la precisión con la que el equipo hace predicciones a lo largo del tiempo.

Pasar por alto la complejidad de la implementación

Al planificar las nuevas funciones de sprint, es fácil pasar por alto las complejidades que surgen durante la implementación. Sin embargo, a menudo, la complejidad que se pasa por alto es el resultado directo de un diseño de software complejo. Cuando el software tiene una estructura compleja y no hay patrones claros sobre cómo los módulos de software dependen unos de otros, es imposible tener una buena comprensión mental de cómo funciona el software. Esto hace que sea imposible planificar de manera realista. Desafortunadamente, esto a menudo no es fácil de resolver; sin embargo, ciertamente requiere investigar formas viables de renovar y mejorar el software.

Defectos inesperados de alta prioridad

Un defecto en la producción (un error de característica, un problema de rendimiento o de seguridad) ciertamente tiene una alta prioridad y debe ser abordado de inmediato. Pero cuando este tipo de problemas se interponen con demasiada frecuencia en la creación de nuevas funciones, es una señal alarmante de que algo debe mejorar. Este es un síntoma de una deuda técnica significativa (es decir, problemas de calidad del código) acumulada a lo largo del tiempo. Reducir esta deuda técnica debe tener una alta prioridad; de lo contrario, es muy probable que el comportamiento del sistema y la productividad del desarrollo se deterioren aún más.

Esperando información de otro equipo

Los productos de software suelen ser creados por varios equipos, y un equipo produce la información requerida por otro. El trabajo debe distribuirse entre los equipos de manera que permita un flujo constante de información en el sistema. Los retrasos causados ​​por esperar a otros equipos indican que se necesita una mejor organización del equipo para minimizar las dependencias entre ellos. Tener un buen líder de producto es fundamental aquí, alguien que supervise el progreso de todo el producto y establezca prioridades de manera efectiva.

Esta lista ciertamente no es exhaustiva y puede haber muchas otras razones para retrasos en la entrega del software. Sin embargo, los retrasos frecuentes son una señal de que debes reducir un poco la velocidad, encontrar la causa raíz del problema y recuperar el equilibrio del sistema.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *