'Promocionado' a Release Manager - ¿Y ahora qué?

Fondo:

Trabajo para una pequeña empresa de análisis/consultoría de 7 personas. Originalmente, me contrataron para ser analista de datos, pero las necesidades de la empresa cambiaron y el director me solicitó que asumiera el rol de gerente de lanzamiento y probador de control de calidad. Tenga en cuenta que mi título es en economía, no en software.

Mi problema

La mayor dificultad que he tenido para asumir este cargo es la gestión de nuestros proyectos. Actualmente no usamos un rastreador de errores, no usamos una herramienta de administración de proyectos y estamos luchando para encontrar una manera eficiente de producir notas de lanzamiento y comunicarnos con todos.

Tenemos más de 150 repositorios git y, en un momento dado, se están desarrollando 50. En promedio, cada proyecto tiene 3 dependencias, cada una con una versión específica de desarrollo o lanzamiento. Encuentro que esto es un poco abrumador, y nuestra forma actual de comunicarnos es hablar o imprimir notas.

Esto no parece eficiente o escalable. Otro problema es que el principio está vehementemente en contra del uso de un rastreador de errores ya que somos pequeños. Lo encuentro problemático porque significa que no tenemos un registro de auditoría y me dificulta hacer un seguimiento del progreso.

Avanzando

En el futuro, hay dos grandes preguntas con las que estoy tratando de lidiar:

  1. ¿Cómo debo hacer realmente para 'gestionar' nuestros proyectos?
  2. ¿Con qué tecnologías y conceptos debo familiarizarme para tener éxito en este rol? Actualmente, estoy algo familiarizado con las siguientes herramientas:

    • Hormiga
    • artefacto
    • Git
    • Gruñido
    • Jenkins
    • Experto
La gestión de proyectos no es un seguimiento de errores. Si desea administrar los proyectos, comenzaría definiendo el alcance, el cronograma, la calidad y el costo. No realizaría un seguimiento de los problemas o errores hasta que los tuviera resueltos con un fuerte acuerdo con el patrocinador.

Respuestas (3)

Para responder tu pregunta

P1: ¿Cómo debo hacer para 'gestionar' nuestros proyectos?

En mi humilde opinión, hay algunas preocupaciones clave para cualquier persona en un rol de gestión de versiones . Tal vez ya tengas algo de esto bajo control.

  1. ¿Estamos entregando el producto correcto (obtuvimos los requisitos correctos)?

    ¿Existe algún método que el equipo utilice para capturar y registrar los requisitos de manera efectiva (sesiones de búsqueda de necesidades, historias de usuarios detalladas)?

    ¿Cómo se facilitan las solicitudes de cambio? (Porque sí vienen)

    Identifique un único punto de aprobación para los cambios de alcance y cualquier cosa relacionada con el alcance dentro de su organización para cada proyecto

    Comunicación transparente relacionada con todos los cambios de alcance

  2. ¿Estamos entregando bien el producto (Baja densidad de defectos, Sin sorpresas, a tiempo)

P2: ¿Con qué tecnologías y conceptos debo familiarizarme para tener éxito en este rol?

Aquí es donde la mayoría de los equipos dedican más esfuerzo. Basado en mi experiencia, voy a compartir una lista de conceptos principales con los que debería estar familiarizado. Mirando su lista de herramientas, asumo que su producto es principalmente Java. Intentaré no hablar de una herramienta específica.

  • Planificación de lanzamiento (una lista de lo que se hará durante un período de tiempo determinado, estimaciones, el equipo responsable de la entrega)
  • Control de versiones (Sus equipos parecen usar Git y parece tenerlo en su lugar)
  • Revisión de código (Análisis de código estático; revise el código usando una herramienta para que las revisiones de código sean más productivas, Pautas de codificación, Revisión por pares, Revisión de plomo)
  • Garantía de calidad (el seguimiento de defectos es solo una parte del control de calidad, debe estar familiarizado con la escritura de casos de prueba, pruebas unitarias, pruebas de aceptación, mecanismo para abrir/cerrar tickets de control de calidad con detalles sobre cómo reproducirlos, también conocido como seguimiento de errores, automatización de pruebas, prueba cobertura, entornos de control de calidad dedicados)
  • Retrospectivas y revisiones (para que el equipo pueda aprender y mejorar con cada iteración)
  • Integración continua (aspecto muy importante de la entrega ágil, pero debe tener los casos de prueba, las pruebas unitarias, las pruebas de aceptación, el control de versiones [que tiene] antes de implementar CI)

3. ¿Estamos dentro del presupuesto? En mi opinión, el desplazamiento del alcance es el factor principal que hace que un proyecto sobrepase el presupuesto.

Además de lo anterior, cualquier equipo ágil debe tener

  • Un modelo de comunicación transparente ( reunión diaria combinada con correos electrónicos, herramientas de colaboración; lo que se adapte a su equipo)
  • Informes frecuentes/actualizaciones de estado sobre la dirección actual del proyecto para las partes interesadas y el equipo del proyecto por igual

Adición rápida : si el equipo es reacio a seguir algo que es ampliamente aceptado como mejor práctica (por lo general, tienen puntos válidos), puede solicitarles que lo usen durante algunos sprints y ver si tiene sentido. Por todos los medios tratar de averiguar por qué y mejorar. El hecho de que el cambio sea temporal lo hace más tolerante para los miembros en desacuerdo. Estaba pensando que puede usar lo mismo para alentar a los miembros de su equipo a adoptar el seguimiento de defectos.

¡Y buena suerte! :)

Algunas de las cosas que mencionas ya las hacemos, pero otras son buenas sugerencias. Dos preguntas: 1) ¿Cuál crees que es la mejor manera de realizar un seguimiento de la planificación del lanzamiento? He visto algunas pizarras blancas grandes para SCRUM, pero con 50 proyectos parece engorroso. 2) ¿Cuál es un buen punto de partida, tal vez un libro, para escribir casos de prueba?
1) ¿Puedo sugerirle que pruebe la pizarra (para la planificación de iteración/sprint) durante al menos algunos sprints y vea cómo funciona para usted? Por lo general, me preocupan las herramientas ágiles generales que se agregan a los nuevos equipos ágiles. Es posible que tenga que experimentar (solo con pizarra, herramienta en línea liviana, pizarra + herramienta en línea) 2) Si el control de calidad es su mayor problema, cree una plantilla de caso de prueba para que la use el equipo. Referencia rápida: ( users.csc.calpoly. edu/~jdalbey/206/Assign/HowToTestCase.html )

Olvídese de las herramientas de PM por ahora. Creo que necesitas evaluar esta situación:

  • Al menos el control de versiones parece estar en su lugar (¡puh!)
  • Obtenga un rastreador de errores/funciones SIMPLE. Comenzaría con uno alojado. Busque cosas como JIRA, Bugzilla, etc.
  • Combine el rastreador de errores/características con su control de versión (comience con comentarios de confirmación simples que hagan referencia al número de problema)
  • Comience a obtener datos sobre el ciclo y el tiempo de entrega para mejorar la situación más adelante
Conseguir un simple rastreador de errores sería ideal. He presionado por jira o incluso por el rastreador de errores incorporado de bitbucket, pero ha habido resistencia. Nuestros dos desarrolladores piensan que es una pérdida de tiempo.

La gestión de un proyecto requiere objetivos

¿Cómo debo hacer realmente para 'gestionar' nuestros proyectos?

La gestión de proyectos y lanzamientos son temas complicados que llenan estantes de libros. Sin embargo, los conceptos clave esencialmente se reducen a lo siguiente:

  • Identificar los objetivos del proyecto.
  • Identificar el proceso que seguirá la organización para alcanzar los objetivos.
  • Identificar las métricas necesarias para realizar un seguimiento del progreso y el uso de recursos en el proyecto.
  • Identificar los controles de proceso necesarios para administrar los entregables, el cronograma y el presupuesto del proyecto.

Su trabajo no es definir todas estas cosas usted mismo. Su trabajo es ayudar a la organización (y específicamente a la alta dirección) a definirlos, proporcionar a la alta dirección información sobre la creación de controles de procesos y luego proporcionar información sobre el estado en curso del proyecto a las partes interesadas interesadas.

Los controles técnicos son consideraciones secundarias

¿Con qué tecnologías y conceptos debo familiarizarme para tener éxito en este rol?

Esto no es operativo. Las "tecnologías" son una forma de implementar sus procesos y procedimientos, y no son el marco en sí. Debe definir un proceso antes de poder diseñar controles de proceso efectivos para él.

En su lugar, debe familiarizarse con los objetivos comerciales (y las expectativas no escritas) para el proyecto, e investigar marcos y controles de gestión de proyectos que encajen bien tanto con los objetivos como con la cultura de su organización. Los controles técnicos y administrativos se diseñarán para adaptarse a su proceso, y no al revés.