Adopción de la referencia cultural de DevOps
Permita a los equipos de desarrollo y operaciones mejorar continuamente el diseño y los procesos del sistema trabajando junto con una mentalidad de colaboración, responsabilidad compartida y propiedad. |
---|
DevOps es una comunidad de prácticas en la que la diversidad de perspectivas y aptitudes impulsa una misión. Los equipos deben fomentar un entorno colaborativo de conocimiento compartido en lugar de un aprendizaje aislado. Use funciones compartidas para esforzarse por superar las restricciones de recursos.
Una buena referencia cultural de DevOps se basa en la responsabilidad compartida. Los equipos de desarrollo y operaciones deben alinear sus objetivos y prioridades con las expectativas de sus clientes y tener el enfoque empresarial en mente. El equipo de desarrollo debe implicar al equipo de operaciones en el bucle de comentarios para que las mejoras se impulsen en sentido ascendente y los demás equipos se beneficien por igual. Por su parte, los equipos de operaciones son responsables de que el equipo de desarrollo obtenga buenos resultados empresariales compartiendo recursos y comentarios que sean relevantes para la carga de trabajo.
Al mismo tiempo, las prácticas DevOps aplican líneas claras de propiedad y responsabilidad a cada equipo. Independientemente de dónde se ejecute la aplicación, el equipo de carga de trabajo es responsable de esa aplicación.
DevOps optimiza las tareas operativas para que sean eficaces pero no pesadas. Para aprovechar todas las ventajas de DevOps, la referencia cultural debe optimizar los procesos a través de la tecnología y contar con procesos para que las personas de la organización promuevan una comunicación transparente.
Escenario de ejemplo
El departamento de recursos humanos (HR) de Contoso inicia un proyecto para desarrollar una nueva aplicación de línea de negocio (LOB) para el uso interno de su departamento. La aplicación está actualmente en la fase de planificación, aún no se ha iniciado ningún trabajo de diseño o implementación.
Colaborar de forma eficaz
Use sistemas y herramientas comunes que promuevan un entorno colaborativo para la comunicación y el seguimiento del progreso.
Las herramientas y los procesos comunes permiten una comunicación transparente. Tanto los equipos de desarrollo como los de operaciones se benefician del conocimiento de la situación en distintos entornos, de los problemas comunes de asistencia y de los retos y victorias generales.
Los equipos ya estarán familiarizados con las rutas de escalación existentes si hay un incidente.
Un trabajo pendiente compartido deja claras las prioridades, como trabajar en nuevas funciones o corregir errores.
Desafío de Contoso
- Contoso cuenta con tres equipos técnicos que participarán en el desarrollo y mantenimiento de la nueva aplicación: desarrollo, pruebas y operaciones. Actualmente, no existen herramientas estándar de comunicación y seguimiento de proyectos que se utilicen de forma coherente en todos esos equipos.
- Históricamente, cada equipo ha podido seleccionar sus herramientas de elección. Algunos usan Slack, mientras que otros usan Microsoft Teams para la mensajería interna. Algunos usan Azure DevOps (ADO) y otros usan Excel para realizar un seguimiento de las tareas, y cada equipo usa un repositorio de documentos diferente del resto para compartir los procedimientos de conocimiento y respuesta a incidentes.
- En proyectos anteriores, la organización técnica general ha tenido problemas con las comunicaciones y la colaboración debido a la disparidad de las herramientas utilizadas. En el futuro, Contoso HR desea mejorar la productividad y evitar situaciones que podrían ralentizar el proyecto, como las que se encontraron anteriormente.
Aplicación del enfoque y los resultados
- Los clientes potenciales de los equipos técnicos se reunieron con los patrocinadores del proyecto para elegir las herramientas estándar que se usarán en el futuro. El grupo eligió ADO para administrar su trabajo pendiente, el repositorio de código y la canalización de implementación. También eligieron Microsoft Teams para las comunicaciones y la colaboración.
- El uso de un conjunto común de herramientas permite que los equipos de desarrollo, operaciones y pruebas permanezcan informados y sincronizados sobre el estado de los distintos entornos, los problemas comunes del proyecto y los logros del equipo. Además, los equipos pueden acceder a información sobre las rutas de escalación establecidas en caso de incidentes desde una única ubicación conocida.
- Un trabajo pendiente compartido también ayuda a planificar de manera uniforme y a mantenerse alineado con las prioridades, como el desarrollo de nuevas funciones o la corrección de errores.
Adopción de la mejora continua
Cree una mentalidad de aprendizaje continuo y experimentación a lo largo del ciclo de desarrollo. Admita el uso compartido de conocimientos entre equipos y mantenga la documentación para su reutilización. Y, lleve a cabo análisis sin acusaciones y revisiones posteriores a la liberación o al incidente.
Mediante mecanismos de experimentación, como las pruebas A/B y el desarrollo de pruebas de concepto, puede fomentar la innovación manteniendo los costes bajos.
Comparta conocimientos mediante una colaboración que haga al equipo competente en enfoques de diseño, herramientas y procesos.
Realice retrospectivas después de un proyecto ayuda a identificar áreas para mejorar y celebrar el éxito.
Desafío de Contoso
- Para facilitar aún más el uso compartido de información y fomentar una cultura de colaboración y transparencia, el equipo desea tener una fuente de verdad centralizada y de fácil acceso para la documentación del proyecto. Entre otras cosas, esto sería útil si un nuevo desarrollador se une al equipo y necesita ponerse al día rápidamente con el proyecto.
- De especial interés para recursos humanos de Contoso es el deseo de asegurarse de que los aprendizajes de incidentes que afectan a la disponibilidad de la aplicación se capturan y comparten en toda la organización técnica para ayudar con incidentes futuros y evitar que se repitan tanto como sea posible.
- Para evitar repetir errores pasados al diseñar la experiencia del usuario de la aplicación, el equipo también quiere usar un enfoque más ágil que les permita tener en cuenta los comentarios reales del usuario.
Aplicación del enfoque y los resultados
- El equipo crea una wiki de uso compartido de conocimiento en ADO, donde se publicarán todas las especificaciones de diseño junto con todos los procedimientos operativos activos, los planes de respuesta a incidentes y los resultados retrospectivos.
- Realizar retrospectivas sin acusaciones después de incidentes y cada iteración de desarrollo y documentar los aprendizajes en la wiki ayuda al equipo del proyecto a identificar áreas de mejora y a celebrar el éxito.
- El equipo ha adoptado un enfoque exploratorio para el diseño de la experiencia de usuario para la nueva aplicación, aprovechando las pruebas A/B para encontrar la mejor experiencia de usuario entre varias variantes propuestas por los consultores de UX, teniendo en cuenta los comentarios del usuario para tomar decisiones basadas en datos.
Codificación de procedimientos de desarrollo y operaciones
Establezca estándares para todos los procedimientos operativos y de desarrollo, y revise y valide los mismos con una cadencia regular. Estos procedimientos incluyen tareas rutinarias, procesos fuera de banda, simulacros y situaciones de emergencia, elección de herramientas, procedimientos de supervisión, planes de aptitudes e incluso comunicación con las partes interesadas y divulgaciones de clientes. Sea intencionado y explícito en sus decisiones.
Los estándares agregan predictibilidad a las operaciones y hacen que los procesos y prácticas sean escalables. Validar estándares es una excelente manera de dibujar puntos de mejora.
Prepárese para situaciones de emergencia y recuperación mediante la realización de simulacros regulares.
Ejecute con precisión y habilite la gobernanza para evitar anomalías que conducen a riesgos.
Desafío de Contoso
- Uno de los desafíos que ha afectado a la productividad y la calidad de los resultados del equipo de desarrollo en el pasado es la falta de estandarización y coherencia en el código base. Por ejemplo, la falta de uniformidad en las convenciones de nomenclatura o el uso de patrones de software comunes dificulta que los miembros del equipo entiendan el código de los demás, y eso ha afectado a la eficiencia.
- Además, sin un enfoque común documentado correctamente para las operaciones, el personal de operaciones puede usar diferentes métodos para lograr el mismo objetivo, lo que genera ineficacia y confusión.
- Motivado por el éxito que han tenido al implementar otras mejoras de DevOps, el equipo de recursos humanos de Contoso ha decidido abordar este problema como parte del próximo ciclo de desarrollo.
Aplicación del enfoque y los resultados
- El equipo de desarrollo se reúne durante el ciclo de desarrollo para acordar un conjunto de estándares de desarrollo que se van a implementar. Documentarán las decisiones tomadas y empezarán a aplicarlas durante las revisiones de código y a través de herramientas. Están estudiando temas como: Convenciones de formato y nomenclatura de código, control de errores, control de versiones y prácticas de seguridad. El equipo planea prestar mucha atención a las métricas de calidad y a los informes que se generen en ADO para cuantificar el impacto que tendrán estos cambios en la calidad y la productividad, de modo que puedan demostrar el valor de estos tipos de mejoras de DevOps a su equipo de administración.
- Del mismo modo, el equipo de operaciones dedica tiempo durante el mismo período a ampliar su documentación existente sobre prácticas de administración y solución de problemas rutinarias y publicarla en la wiki. En el futuro, la wiki servirá como única fuente de verdad, ahorrando tiempo y energía que de otro modo se emplearían en buscar información.