Uno de los principios de ágil es ...
Colaboración del cliente sobre negociación de contrato
... otro es ...
Individuos e interacciones sobre procesos y herramientas
Pero tal como lo veo, al menos cuando se trata de interacción con el cliente, hay un problema fundamental:
Cómo piensa el cliente es diferente a cómo piensa un ingeniero de software
Eso puede ser una generalización, sí. Podría decirse que son los dominios de negocio en que esto no es necesariamente cierto --- éstos son pocos y distantes entre sí sin embargo. Sin embargo, en muchos dominios, el cliente típico es:
- Interesado en preocupaciones operativas diarias: tácticas de corto alcance ... no necesariamente estrategia;
- Es comprensible que solo se preocupe por la solución inmediata;
- Pensadores prácticos, no pensadores abstractos;
- Mucho más interesado en "hacer el trabajo" que considerar cómo la solución respaldará futuras preocupaciones.
Por otro lado, en el ideal , los ingenieros de software que practican ágil son:
- Gente que piensa mucho en la calidad;
- Las personas que aprecian cómo un poco de trabajo inicial puede ahorrar una tonelada de esfuerzo en el futuro;
- Pensadores analíticos experimentados.
Por lo tanto, parece haber una discrepancia cultural que tiende a inhibir la "colaboración con el cliente".
¿Cuál es la mejor manera de abordar esto?
Respuestas:
Y para ser sincero, generalmente tienen buenas razones para pensar así. En primer lugar, están administrando un negocio, que debería generar ingresos hoy y mañana, no en un futuro lejano. En segundo lugar, no son expertos técnicos: no saben qué es posible y qué no, y cuáles son las consecuencias de las elecciones específicas de arquitectura / diseño / implementación. Esto es lo que sabemos.
Entonces la respuesta es, apenas sorprendente, la comunicación .
Deben comunicarse mucho, educarse mutuamente, hacerse entender el punto de vista de la otra parte, al menos a un nivel básico. Debe explicarles las consecuencias a corto y largo plazo de las posibles alternativas. Y necesitas usar un lenguaje que ellos entiendan .
OTOH pueden enseñarnos una o dos cosas sobre la perspectiva comercial. El negocio quiere soluciones utilizables y lo suficientemente buenas , apenas perfectas .. Y probablemente saben mejor que nadie que "lo perfecto es enemigo de lo bueno". Por lo tanto, debe tener en cuenta que nuestro trabajo es proporcionar soluciones a los problemas de nuestros clientes, en lugar de producir un software técnicamente perfecto. A veces estos dos convergen en lo mismo, pero más a menudo no. Esto puede ser visto como triste por muchos, pero es una realidad empresarial. Para mí, si logré resolver el problema de mi cliente y veo que les hizo la vida visiblemente más fácil, estoy tan feliz como ellos. OTOH si logré implementar el diseño perfecto que tenía en mente, pero la empresa se declara en bancarrota la semana siguiente, difícilmente sea una victoria para alguien, ¿verdad?
Un propietario de negocios sensato comprenderá, si usted les explica que usan su propio idioma, por qué es importante mantener limpio el software, escribir pruebas unitarias, refactorizar, etc. A pesar de que estos no parecen contribuir directamente en el corto plazo, son esenciales para el mantenimiento a largo plazo. Y los clientes sensatos se preocupan por el mantenimiento a largo plazo de su negocio, por lo que seguramente están dispuestos a invertir en él cuando vean el valor que genera su inversión. Sin embargo, tanto sus recursos como su tiempo son limitados, por lo que debe priorizar y centrarse en las cosas más importantes. Pero es importante solo si es importante para ambos .
Es posible que desee refactorizar el módulo A porque el código allí es simplemente horrible, y tiene una idea estupenda de cómo refactorizar el código para que sea conciso, elegante y limpio, utilizando un patrón de diseño sobre el que acaba de leer. Sin embargo, si ese módulo no se ha tocado durante años, y funciona de manera confiable, lo más probable es que se concentre en el módulo B, que se extenderá la próxima semana con una nueva característica muy importante, y contiene toneladas de errores ya.
fuente
Cómo se ve su cliente:
Por otro lado, ven a su grupo como:
Su principal problema parece ser que ninguno de ustedes es entender lo que necesitan de la otra parte.
fuente
Bueno, ante todo, Agile no es la solución para todos los problemas que tiene en su proyecto.
Si. A veces es verdad. Incluso hay casos en los que los clientes no saben qué y cómo quieren (es decir, los requisitos no están claros). Sin embargo, si eres ágil, obtienes el resultado después de cada sprint (por ejemplo, 2 semanas) y tienes la oportunidad de recibir comentarios de los clientes y asegurarte de que todos estén en la misma página. Esto ayuda a identificar y solucionar los problemas temprano, lo que internamente ayudará a generar confianza.
También hay un dicho, los usuarios son como niños locos, por lo que cuando piden una pistola y sabes que no es seguro, podrías considerar dar una pistola de juguete para calmarlos .
Como ya he dicho, no hay una varita mágica que pueda resolver todos estos problemas . Debe comprometerse más con sus clientes para que haya una buena comprensión de lo que hacen los demás. Promueva la visita al sitio, comentarios abiertos, etc.
Asegúrese de que el propietario del producto y las partes interesadas asistan a las demostraciones de sprint y brinde sugerencias valiosas para mejorar el producto .
fuente
Si no tiene la aceptación del cliente, Agile puede ser casi imposible.
Al comprar, me refiero a obtener un porcentaje garantizado del tiempo de los representantes de un cliente por semana o mes. Este porcentaje variará según el proyecto.
Obviamente, tienen su trabajo diario, por lo que no se trata solo del representante del cliente en sí, sino de su gerencia el hacerles tiempo.
Por lo tanto, obtener un acuerdo de la gerencia del lado del cliente es clave para este problema
fuente
Recuerde que ágil no significa que el cliente esté involucrado en standups diarios o en algunos de los otros aspectos cotidianos de ágil. Ágil, desde la perspectiva del cliente, se trata de comunicación. Eso no significa que se estén comunicando con los ingenieros sobre los detalles de implementación.
Los clientes colaboran con el propietario del producto para obtener y dar retroalimentación constante. El tema es características, pero no cómo se implementan. ¿Estás entregando las características adecuadas? ¿Estás a tiempo? ¿Tienen requisitos cambiantes a los que necesita adaptarse?
Agile le ayuda a usted y a su cliente a responder esas preguntas.
fuente