No hay una respuesta mágica para acelerar el desarrollo.
Te advierto que no intentes acelerar explícitamente el desarrollo y te animo a que te centres en lanzamientos más pequeños y frecuentes. Enfocarse de esta manera obligará al equipo a ser bueno escribiendo código que se pueda mantener y probar, aumentando la automatización y sabiendo cómo priorizar las pruebas manuales.
Si presiona demasiado para acelerar el desarrollo y hacer que las mismas funciones se realicen más rápido, es probable que la calidad del código se vea afectada. Esto le daría ganancias a corto plazo para un inmenso dolor a largo plazo.
- ¿Puedo convertir mi sitio de WordPress en un sitio web codificado escrito a mano o en un CMS personalizado?
- ¿Puedo ser un desarrollador web de pila completa solo mirando videos gratuitos de Udacity, sin inscribirme en el programa de nanogrado?
- Como desarrollador de PHP, ¿cuál es mejor para la carrera futura: aprender NodeJS o aprender a hacer más PHP (use TDD, master AWS + firebase, prueba de carga + prueba de pluma)?
- ¿Cómo puede un servidor de correo detectar direcciones de correo electrónico rechazadas?
- Cómo crear un sitio de preguntas y respuestas desde cero
Para tener lanzamientos frecuentes, el equipo de administración de productos necesita ser realmente bueno en el diseño de pequeñas características. Las epopeyas deben desglosarse en fragmentos manejables que se puedan lanzar a los usuarios de forma independiente. Cambiar el flujo de trabajo del desarrollador sin ajustar las historias que se les pide que realicen suena inútil.
Dependiendo del tamaño de su equipo, también podría experimentar con Kanban en lugar de Scrum. En equipos pequeños, prefiero un enfoque Kanban para reducir la sobrecarga del proceso de Scrum. Sin embargo, con Kanban, aún necesita incluir cosas como retrospectivas.
Tenga en cuenta que los lanzamientos frecuentes no significan que todo lo que el equipo está trabajando debe publicarse cada semana. Puede hacer un uso intensivo de las ramas de características que se desarrollan y prueban por separado, luego se fusionan en la rama maestra para las pruebas y la versión de integración. Aún así, debe tratar de obtener la mayoría de las cosas en progreso envueltas y liberadas, pero no tiene que ser una regla difícil y rápida.
Para utilizar de manera efectiva las ramas de características, necesitará tener una automatización que configure un entorno completamente independiente en la máquina de cada desarrollador.
Nunca he intentado piratear días, pero es posible que desee comenzar con lanzamientos frecuentes por un tiempo antes de agregar días de pirateo. También puede intentar tener características desde el lanzamiento hasta la aceptación de los días de pirateo en lugar de ‘liberar al cliente’, solo para asegurarse de que lo que está saliendo reciba una revisión adecuada.
Las claves para evitar el agotamiento son (IMO)
– Permitir que el equipo de desarrollo establezca su propio ritmo: el equipo decide a cuántas historias se comprometerán en el sprint
– Identificar y desalentar activamente el “desarrollo del héroe”. Si las personas o el equipo necesitan hacer un esfuerzo heroico para alcanzar un objetivo, asegúrese de discutir en su retrospectiva sobre cómo evitar tener que hacerlo en el futuro. Esto podría implicar la mejora de las pruebas automatizadas, un mejor análisis inicial, realizar investigaciones de eliminación de riesgos, etc.
– Tener retrospectivas frecuentes con todo el equipo. Discuta qué salió bien sobre el desarrollo y el proceso, qué no salió bien y qué quiere intentar cambiar para el próximo sprint. No omita las retrospectivas y asegúrese de tomar medidas sobre lo que el equipo acepta cambiar.