¿Cómo gestionamos el alcance de la ingeniería de software?

Diferentes tipos de fluencia de alcance exigen diferentes soluciones. “Gestionar” el arrastre del alcance requiere evitar que ocurra en primer lugar cuando sea posible, y también guiar al equipo a través de él cuando ocurra.

Aquí hay algunos escenarios y respuestas.

  • El Sprint roto. Si su tienda se toma en serio lo ágil, puede usar una metodología ágil para llamar a “falta” en respuesta al aumento de alcance durante un sprint. Agile trabaja en un ciclo de planificación / ejecución / evaluación. Cuando el alcance cambia durante la parte de ejecución del ciclo, el plan ya no es válido. La ejecución de acuerdo con un plan no válido es insostenible. En estas condiciones, el scrum master declara que el sprint está roto . Esto significa que el equipo necesita un nuevo plan. El sprint actual se abandona, los desarrolladores trabajan en deuda tecnológica u otros asuntos, el liderazgo del equipo vuelve a convocar reuniones de planificación de sprint, y el sprint comienza de nuevo una vez que hay un nuevo plan válido. Este procedimiento es formal y molesto, lo suficientemente molesto como para que tenga el potencial de enseñarle a la organización cuán malo es el arrastre de alcance y disminuirlo.
  • JIRA o no sucedió. Otro tipo de cambio de alcance ocurre cuando un CEO, diseñador o PM bien intencionado asigna tareas a los desarrolladores con trabajo extra durante el sprint. El instinto natural de los desarrolladores es priorizar este trabajo por encima de sus tareas de sprint y sentirse bien con esa decisión, ya que el trabajo extra es una solicitud especial de una figura de autoridad. A veces, el líder ni siquiera sabe sobre este trabajo hasta que el equipo llega tarde a uno de sus entregables de sprint. Como líder o productor, combates esto de tres maneras. Primero, le dices al equipo que si alguien viene a ellos con trabajo extra, deben rechazar ese trabajo y enviarte a esa persona. En segundo lugar, hablas con esa persona en privado, explicando que eres responsable del horario y que lo que está haciendo socava tu capacidad de entrega; ¿podrían venir a ti en lugar de encargar directamente a los desarrolladores? En tercer lugar, implementa una regla JIRA o No sucedió : nadie trabaja en una tarea a menos que esa tarea esté documentada, estimada y priorizada en el sistema de gestión de tareas. JIRA es uno de esos sistemas; Pivotal Tracker es otro; incluso podrías estar usando una hoja de cálculo. Independientemente de lo que esté utilizando, asegúrese de que las tareas estén documentadas o sus desarrolladores perderán tiempo debido a que los ejecutivos los asignaron al azar y luego se preguntarán por qué reciben malas críticas.
  • Estima y quema en horas, no en puntos de historia. Arrojaré un poco de gasolina en una tormenta de fuego ágil de larga duración: los puntos de historia no son tus amigos cuando manejas el alcance del alcance. Haga que su equipo haga una estimación en horas y haga que revisen esas estimaciones hacia arriba o hacia abajo todos los días durante el sprint. Esto no solo crea responsabilidad personal para la tasa de consumo, no solo enseña gradualmente a los desarrolladores a hacer mejores estimaciones basadas en el tiempo, sino que también expone a la organización, incluso al equipo ejecutivo, cómo se produce el aumento de alcance debido al trabajo descubierto . Esto conducirá a un amplio apoyo organizacional para otra técnica efectiva y peligrosa, la capacidad de reserva .
  • Capacidad de reserva. La capacidad de reserva es una forma efectiva de gestionar el desplazamiento del alcance, pero no funciona como cree que lo hace, y puede ser contraproducente. Para implementar la capacidad de reserva, programe su equipo al 60% en lugar del 100% de su velocidad. Esto le permitirá mantener sus horarios incluso con un poco de alcance, ya sea debido a actores externos o debido al trabajo descubierto. La cantidad de reserva (también llamada contingencia) que necesita tomar para mantener su agenda es una métrica sólida de cuán disfuncional es su organización. El 60% es escandalosamente bajo, muy disfuncional, tan bajo y disfuncional que provocará una acción organizativa. Experimente con el número hasta que establezca una línea de base de trabajo, luego establezca una meta para todos (el equipo ejecutivo, los ingenieros, etc.) para mejorar esto continuamente hasta que pueda programar de manera confiable al 90% o más. Así es como la capacidad de reserva puede ser contraproducente: puede obtener un equipo ejecutivo o un equipo de desarrollo que reaccione con: “¡Eso es increíble! Por lo tanto, básicamente puedo volver a asignar tareas a los ingenieros o hacer malas estimaciones porque le has asignado tiempo, ¿no? ”No. Fallo. Eso no es lo que estamos haciendo. Lo que nos lleva al sacrificio .
  • El sacrificio. Esta fue en realidad una pregunta de entrevista de trabajo cuando estaba aplicando para el trabajo de ingeniero principal en un gran estudio de juegos MMORPG. A veces tienes un ejecutivo o un primer ministro que no dejará de aleatorizar a tu equipo. Ella rechaza todos los métodos que he descrito anteriormente, con una lógica como: “Soy el jefe, sé sobre cosas que tú no, puedo interrumpir al equipo todo lo que quiero porque pago tus salarios”. En lugar de refutarlos. Con esta lógica, puedes sacrificar un ingeniero a tu señor no tan benevolente. Respondes con: “OK, entiendo. Permítame asignarle un ingeniero, que hará los experimentos que desee de inmediato. Luego, podemos trabajar con el equipo de administración de productos para obtener sus ideas en el producto una vez que se desarrollen ”. Para los desafortunados ingenieros que cumplen con su deber: los saludo. Lo estás haciendo por una buena causa. La otra parte tácita de The Sacrifice es que el ingeniero de mascotas de tu señor supremo no tiene permitido verificar nada en el principal , nunca: todo se hace en la rama aislada del señor supremo, y cuando debe fusionarse, lo hace el resto del equipo.
  • Standups físicos. Cuando tienes una herramienta como JIRA o Pivotal Tracker, es tentador usar las funciones de scrum electrónico y tablero kanban de esos productos, posiblemente incluso eliminando por completo las paradas físicas, no lo hagas. Hay algo contraintuitivamente poderoso en hacer que cada desarrollador se pare frente a cualquier otro desarrollador y observador cada mañana para decir en voz alta, mientras actualiza o mueve físicamente una tarjeta de tareas: “Ayer pasé X horas en la tarea Y, pero descubrí Z horas de trabajo extra, así que mi nueva estimación es Q horas. Terminaré la tarea hoy “. O, más concretamente,” ayer no hice ningún progreso en la tarea X porque Sarah me dio una tarea de alta prioridad que no está en el sprint. Aquí hay una nueva tarjeta de sprint para ello. Terminé la tarea, después de pasar X horas en ella, y la estoy trasladando a HECHO ”. Ese es un momento público de WTF que incluso JIRA o It Didn’t Happen no pueden comprar.
  • Burndowns públicos. Ponga su tabla de consumo en un tablero que todos en la oficina puedan ver. Cuando se agrega un nuevo trabajo a mitad del sprint, la tabla de burdeos se abulta y todos verán que sucedió. No solo lo verán, sino que hablarán sobre ello. Tener amigos en lugares altos también ayuda aquí. En una compañía, el Vicepresidente Sr. estaba muy del lado de la ingeniería, insistía en ver el gráfico de quemado cada semana, y golpearía al equipo de PM / Producción durante la revisión semanal si veía uno de esos abultamientos de alcance.
  • Crujido. A veces se descubre trabajo, alguien realmente sopló una estimación y no hay más tiempo (por ejemplo, porque su producto está vinculado al lanzamiento de una nueva película, o al Black Friday, y esas fechas no se moverán). En esos casos, el último en la lista y como último recurso, quemas al equipo para hacer el trabajo. Esta no es una estrategia de gestión. Cada vez que tiene que aplastar al equipo, significa que usted, personalmente, como gerente, ha fallado, debe tomarlo tan en serio, eso personalmente. Necesitas tenerlo. Hacer el llamado a la crisis es parte de tu trabajo. Hazlo cuando debas.

Scope creep es una pesadilla para CUALQUIER PROFESIONAL DE INGENIERÍA. Administrarlo tiene que ver con la documentación y el fuerte respaldo del liderazgo. Reconoce que si no tienes ninguno, te espera un mal día. Si tienes ambos, todavía te espera un mal día.

Lo que hago, lo aprendí de un ingeniero de GM muy exitoso que se unió a nuestra empresa porque se aburrió en la jubilación.

En mi experiencia, a la gente le gusta jugar rápido y suelto con las tareas. “Necesito esto, para esta fecha”. Esto es bastante típico. Sin embargo, siempre me aseguro de documentar el alcance de la tarea en un correo electrónico. Tengo que la autoridad de asignación responde afirmando que, de hecho, tengo la expectativa de la asignación clara.

Imprimo esa correspondencia. Puse esa correspondencia en un archivo, junto con todas mis correspondencias de proveedores, presupuestos, documentos de compra, notas relevantes y mi diagrama de Gantt. Las revisiones se grapan al documento original, que se anota como obsoleto.

Luego viene el temido “Oh, oye, tenemos que hacer esto en este proyecto”.

Mi respuesta siempre es firme: “Envíame un correo electrónico y lo investigaré. Así que ya sabes, esto podría comprometer el éxito del proyecto. Necesito revisar si esto es factible o no ”.

Por supuesto, casi SIEMPRE no lo es. Agregará un 15% sobre el costo del proyecto, superará la fecha, no está en línea con la intención original del proyecto. Tomo mi archivo y me siento con mi jefe. Le explico por qué no creo que esta sea una actividad apropiada y cómo comprometerá mis hitos. Obviamente, tampoco es parte del alcance original del proyecto.

Mi jefe puede tomar mis registros y presentar mi caso en mi nombre a un nivel que tenga peso. Si se trata de un proyecto de capital, alguien tendrá que llamar a un vicepresidente y explicarle por qué queremos superar el presupuesto. Nadie quiere hacer eso.

En su caso, los problemas son diferentes. Es posible que su mantenimiento de registros no impida el alcance del alcance en el sentido inmediato. Si te preguntan, es porque es probable que sea una necesidad comercial. Eso es bastante difícil de rechazar. Sin embargo, si su jefe es inteligente, hará preguntas difíciles como:

“¿Por qué esto no se vio en el alcance original del proyecto?”

o

“Esto va a retrasar nuestras fechas límite por semanas. ¿Es realmente una práctica aceptable?

y así sucesivamente y así sucesivamente.

Las personas que continúan causando que esto suceda podrían comenzar a ser criticados por ello. Como profesional, se ve mal cuando no puede diseñar con precisión el proyecto.

No digo que funcione para ti. Pero he tenido éxito al hacer esto, y tiene el beneficio adicional de garantizar que si estoy incapacitado, el proyecto se puede entregar fácilmente.

Buena suerte. = /

Hay un montón de diferentes tipos de alcance de alcance, pero las soluciones tienden a reducirse a una buena gestión de proyectos y prácticas de control de calidad:

  • Requisitos escritos Si no está escrito, no existe. Escrito no significa cincelado en piedra. Los requisitos pueden cambiar, y convertir una historia de usuario en una característica comienza con un cambio de requisitos propuesto. Esto ralentiza los cambios puramente ad hoc.
  • Pruebas de regresión basadas en requisitos. Lo más importante, los casos de prueba no se basan en debilidades de implementación. Idealmente, esto debería causar que una nueva característica se colara en una rama de característica no relacionada para fallar las pruebas y permanecer fuera del tronco / principal.
  • Un proceso definido para cambios de alcance. Esto le da a la PM municiones contra partes interesadas poderosas. Vaya a leer las secciones de administración de requisitos y administración de configuración de CMMI.
  • Buena gestión de los interesados. Esto incluye la identificación temprana de las necesidades de los interesados ​​y su inclusión en la hoja de ruta. Es mucho más fácil para el primer ministro decir “Ya hablamos sobre esto y su característica de mascota rompería todas estas otras cosas” o “Ya hablamos sobre esto y usted acordó que entrará en el producto el próximo año”. ¿Ha cambiado algo? ”Vaya a leer las partes relevantes del PMBOK y la sección de definición de requisitos de CMMI.
  • Cobertura organizacional. El estatuto del proyecto debe definir el alcance y el propósito de alto nivel del proyecto, y definir oficialmente quién está a cargo. Sin el compromiso y el apoyo de la alta gerencia, ningún PM puede oponerse a ciertas partes interesadas.

Mantiene una tabla / tabla de características en vivo. Estas características tienen subcomponentes que permanecen conectados de alguna manera y sirven para detallar los requisitos funcionales (orientados al cliente) y los requisitos no funcionales (internos).

He visto sistemas de desarrollo que mantienen las cosas relacionadas no solo a través de la reflexión del espacio de nombres, sino también a través del seguimiento de metadatos de archivos individuales que se actualiza a medida que el programa evoluciona. El seguimiento ayuda a desarrollar los diversos requisitos de alcance para lo que realmente pertenece a una característica dada.

Según el tipo de clientes que tenga y la cultura de su empresa

  1. cliente irrazonable sin regulaciones de gestión de cambios en su empresa: el control de alcance más difícil de controlar a pesar de que puede utilizar muchos métodos PM (WBS, diccionario wbs, cerrar sesión, etc.) para defenderlos
  2. Los jefes de su empresa siempre temen a los clientes y responden SÍ a la solicitud del cliente, lo que es más difícil de controlar.

Si cayó por encima de 2 puntos o una combinación de ambos, se habrá ido. Disfruta el infierno del alcance y el horario extendido. Y normalmente PM es el culpable, es hora de cambiar un nuevo Pm

De Verdad? Nuestro problema es la reducción del alcance. Una vez que su organización realmente se compromete con Agile, lo que ve es que sus nuevas características queridas se posponen y se reprograman porque la prioridad es corregir los errores en su código heredado, agregar más automatización, apoyar a sus clientes beta, y así sucesivamente. Si no puede producir código libre de defectos dentro de su cadencia de lanzamiento, entonces, demasiado malo, su código no se liberará. En serio, no puedo recordar la última vez que tuvimos una característica de fluencia.

Debe tener una especificación muy completa a la que se adhiera y que revise periódicamente. También ayuda tener algunas características definidas como “agradables de tener”, lo que significa que solo las hará si no superan el cronograma de desarrollo y los recursos.

Al profundizar en sus partes interesadas, el concepto de triple restricción: alcance, tiempo, costo, elija cualquiera de los dos.

TAANSTAFL: no existe el almuerzo gratis.

More Interesting

¿Por qué se paga menos a los diseñadores que a los desarrolladores? ¿Alguna vez va a cambiar?

Diseño de base de datos: ¿Cuál es la mejor manera de almacenar la configuración del usuario en una base de datos?

¿Qué significa cada uno de estos términos: desarrollador de software, programador e ingeniero?

¿Es cierto que la mayoría de los desarrolladores de software no tienen tiempo hasta la fecha, ya que ya pasan la mayor parte de su tiempo trabajando y aprendiendo?

Cómo saber si tengo talento para ser desarrollador de software

¿Cuáles son los fundamentos del desarrollo web en los que todo ingeniero de software junior debería tener una sólida comprensión?

¿Cómo evaluará la madurez del proceso frente a los niveles de CMMI para una empresa de desarrollo de software?

¿Por qué los programadores se enojan cuando haces una sugerencia sobre su producto / software?

Cómo codificar de modo que la base de código se pueda adaptar para otros usos

¿Qué debo hacer para hacer la transición a un trabajo de desarrollo de software?

¿Cómo es trabajar en el equipo servidor de una empresa?

¿Qué tan buena es una carrera en ingeniería de desarrollo de software en prueba?

¿Cómo es el futuro para el desarrollador de BizTalk? Considerando el plan de carrera a largo plazo, ¿debo continuar mi carrera en BizTalk?

¿Por qué trabajas como desarrollador de software en lugar de construir tu startup?

Cómo ganar dinero con mi software, he desarrollado un software que NO es más complicado pero que es realmente necesario en las empresas.