Cuando se trata de entregar productos asombrosos, hemos encontrado que la mentalidad tradicional de DevOps no siempre resulta en el mejor producto posible, en parte debido a la presión ejercida en una entrega inicial perfecta. Y mientras que el enfoque de DevOps es un gran paso hacia un proceso más efectivo y colaborativo, todavía hay espacio para innovar cuando se trata de desarrollo de productos, comenzando con la entrega continua y equipos multifuncionales. Lea más en el siguiente post, que fue publicado originalmente en CIOReview aquí.
Con el advenimiento de DevOps, hemos visto un gran empuje para integrar dos prácticas para entregar productos con sistemas y procesos más eficientes. Pero mientras esta asociación entre roles tradicionalmente separados ha estimulado un progreso excepcional, todavía hay trabajo por hacer. El enfoque de DevOps se centra en la construcción de productos mejores, pero no se basa en el diseño de un producto fundamentalmente mejor. En , hemos encontrado que la clave para crear productos que deleiten a los clientes es colaborar creativamente y compartir la responsabilidad del producto final.
De manera similar a como DevOps introdujo el desarrollo ágil en las operaciones y mejoró las relaciones entre los equipos, la conexión de los gerentes de producto, desarrolladores e ingenieros con el resto de la empresa juega un papel crucial en la entrega del mejor producto posible. En el fondo, la clave para diseñar productos exitosos es adoptar un enfoque centrado en el usuario y fundado tanto en la empatía como en la confianza con nuestros homólogos de producto y de negocio.
A medida que anima a sus equipos a trabajar más estrechamente, he aquí un par de formas específicas para hacer que la transición sea más exitosa y, en última instancia, entregar los productos adecuados a sus clientes:
Implementar la entrega continua
La entrega continua ha cambiado fundamentalmente la mentalidad de mi empresa en torno a los productos de construcción. Como industria, solíamos enfrentar una inmensa presión por la perfección la primera vez que lanzábamos una nueva característica o un nuevo producto. Ahora tenemos la flexibilidad para iterar y mejorar sobre la marcha. Esta capacidad de lanzar y volver a lanzar reduce el riesgo inicial, nos permite dedicarnos a subconjuntos de clientes y nos permite pensar en la definición y distribución del producto de una forma completamente nueva.
En, hemos tomado esta estrategia a pecho. En sólo dos cortos años, hemos pasado de lanzar 10 despliegues a la semana a casi 400 al mes. Es cierto que nuestra mano de obra ha aumentado con el crecimiento de la organización y la producción, pero nuestra línea de entrega también ha mejorado significativamente.
Generalmente, comenzamos con un lanzamiento limitado, entregando nuevos productos a nuestros equipos internos y empleados, y luego nos extendemos a los clientes y otros en toda la comunidad que han optado por la experiencia. Al optar por expulsar estos lanzamientos más pequeños e incrementales, podemos manejar fácilmente cualquier error o problema negativo que surja. La liberación en cortos periodos de tiempo también nos permite retroceder sin esfuerzo, sin tiempo de inactividad y con poco o ningún impacto para nuestros clientes.
Hemos adoptado un enfoque multifacético para medir el éxito de nuestros despliegues. Nuestro equipo analiza el número de retrocesos que llevamos a cabo, así como los datos cuantitativos y cualitativos de nuestros usuarios. Podemos hacer un seguimiento del uso para ver si los productos se están utilizando como se espera y recoger información de nuestros usuarios de prueba para determinar si la última actualización resuelve un problema o facilita la vida de nuestros clientes. Como resultado, podemos seguir la progresión y el impacto a través de cada etapa del lanzamiento, usándolo para guiar nuestro próximo paso.
Desarrollar equipos autónomos y multifuncionales
Tener a tus equipos de desarrollo y producto trabajando en silos ya no es suficiente. Para desbloquear el verdadero valor, se necesitan equipos autónomos y multifuncionales formados por especialistas en producto, desarrollo, DevOps, QA y UX que aporten diferentes antecedentes, puntos de vista y habilidades. Construyendo estos equipos diversos y dándoles la capacidad de ser dueños de sus servicios y elegir sus tecnologías, podemos innovar y entregar grandes productos aún más rápido.
Para ello, creamos nuestra arquitectura orientada a servicios para aprovechar los principios de diseño basados en el dominio, lo que nos permite aislar las diferentes experiencias. Esta flexibilidad permite a nuestros equipos asumir la propiedad completa de sus servicios, seleccionando las tecnologías que quieren usar, y operando y liberando independientemente de otros equipos. Sin embargo, para que esta estrategia tenga éxito, los equipos son los únicos responsables de todos los aspectos de su servicio, incluidos los despliegues, la supervisión, las alertas y el apoyo. Con el aumento de la responsabilidad viene más presión, pero también más innovación y un sentido más fuerte de trabajo en equipo y participación.
Tradicionalmente, el propietario del producto tenía la tarea de entender al cliente, pero en realidad, cualquiera que esté involucrado en la construcción de un producto debe estar bien versado en lo que motiva al cliente y en lo que el equipo, y la organización más grande, está tratando de lograr. Con la estructura de nuestro equipo, se espera que cada miembro se comprometa, diseñe y construya productos basados en las expectativas y experiencias de los clientes. Anunciamos la colaboración a través de la participación, animando a los líderes de producto a involucrar a los ingenieros en el proceso de entrevista con el cliente y a cambio, esperando que el equipo técnico tome un papel más activo en los procesos de diseño y toma de decisiones.
—
Reunir equipos que han trabajado en gran medida de forma aislada y a veces con oposición puede ser un desafío. Pero en lugar de centrarse en disciplinas específicas, los equipos multifuncionales con una mentalidad de desarrollo aprenden a trabajar con miembros de toda la organización para crear productos pensando en el usuario. Al desarrollar una cultura de participación basada en la empatía, hablando el idioma de cada uno y produciendo productos de calidad, los equipos pueden encontrar un terreno común y unirse para construir algo grande.
Aprende más sobre cómo construimos productos juntos – y cómo nos centramos en la experiencia en lugar de las características – en este post por nuestro Jefe de Experiencia, Nate Walkingshaw.