Um dos princípios do ágil é ...
Colaboração do cliente sobre negociação de contrato
... outro é ...
Indivíduos e interações sobre processos e ferramentas
Mas do jeito que eu vejo, pelo menos no que diz respeito à interação com o cliente, há um problema fundamental:
Como o cliente pensa é diferente de como um engenheiro de software pensa
Isso pode ser um pouco generalizado, sim. Pode-se argumentar que existem domínios de negócios nos quais isso não é necessariamente verdade - embora sejam poucos e distantes entre si. Em muitos domínios, porém, o cliente típico é:
- Interessado em preocupações operacionais diárias - táticas de curto alcance ... não necessariamente estratégia;
- Compreensivelmente, apenas preocupado com a solução imediata;
- Pensadores práticos, não pensadores abstratos;
- Muito mais interessado em "fazer o trabalho" do que considerar como a solução suportará preocupações futuras.
Por outro lado, no ideal , os engenheiros de software que praticam agilidade são:
- Pessoas que pensam muito em qualidade;
- Indivíduos que apreciam como um pouco de trabalho inicial podem economizar muito esforço;
- Pensadores analíticos experientes.
Portanto, parece haver uma discrepância cultural que tende a inibir a "colaboração do cliente".
Qual é a melhor maneira de resolver isso?
Respostas:
E para ser franco, eles geralmente têm boas razões para pensar assim. Antes de tudo, eles estão administrando um negócio, que deve gerar receita hoje e amanhã, não em um futuro distante. Em segundo lugar, eles não são especialistas técnicos - eles não sabem o que é possível e o que não é e quais são as consequências de escolhas específicas de arquitetura / design / implementação. Isto é o que sabemos.
Portanto, a resposta é - não surpreende - a comunicação .
Você precisa se comunicar muito, educar-se, fazer-se entender o ponto de vista da outra parte, pelo menos até um nível básico. Você precisa explicar a eles as conseqüências de curto e longo prazo de possíveis alternativas. E você precisa usar a linguagem que eles entendem .
OTOH eles podem nos ensinar uma coisa ou duas sobre a perspectiva do negócio. As empresas querem soluções utilizáveis e boas o suficiente - dificilmente perfeitas -. E eles sabem provavelmente melhor do que ninguém que "perfeito é o inimigo do bem". Portanto, você deve ter em mente que nosso trabalho é fornecer soluções para os problemas de nossos clientes, em vez de produzir software tecnicamente perfeito. Às vezes, esses dois convergem para o mesmo, mas mais frequentemente não. Isso pode ser visto como triste por muitos, mas é a realidade dos negócios. Para mim, se eu consegui resolver o problema do meu cliente e vejo que isso tornou a vida deles visivelmente mais fácil, fico tão feliz quanto ele. OTOH, se eu conseguisse implementar o design perfeito que eu tinha em mente, mas a empresa faliu na semana seguinte, dificilmente será uma vitória para alguém, é?
Um proprietário sensato da empresa entenderá - se você os explicar usando seu próprio idioma - por que é importante manter o software limpo, escrever testes de unidade, refatorar etc. Mesmo que eles pareçam não contribuir diretamente com nada no curto prazo, eles são essenciais para manutenção a longo prazo. E os clientes sensatos se preocupam com a manutenção de longo prazo de seus negócios, de modo que certamente estão dispostos a investir nele quando virem o valor que seu investimento gera. No entanto, tanto os recursos quanto o tempo são limitados, você precisa priorizar e se concentrar nas coisas mais importantes. Mas é importante apenas se for importante para vocês dois .
Você pode refatorar o módulo A porque o código é horrível e você tem uma idéia estupenda de como refatorar o código para ser conciso, elegante e limpo, usando um padrão de design que você acabou de ler. No entanto, se esse módulo não for tocado há anos e funcionar de maneira confiável, é mais provável que você se concentre mais no módulo B, que será estendido na próxima semana com um novo recurso muito importante e contém muitos erros já.
fonte
Como seu cliente se vê:
Por outro lado, eles veem seu grupo como:
Seu principal problema parece não estar entendendo o que eles precisam da outra parte.
fonte
Bem, acima de tudo, o Agile não é a solução para todos os problemas que você tem no seu projeto.
Sim. Às vezes é verdade. Há até casos em que os clientes não sabem o que e como querem (ou seja, os requisitos não são claros). Seja como for , se você é ágil, obtém o resultado após cada corrida (digamos, 2 semanas) e tem a oportunidade de receber feedback dos clientes e garantir que todos estejam na mesma página. Isso ajuda a identificar e corrigir os problemas mais cedo, o que internamente ajudará a criar confiança.
Também existe um ditado: os usuários são como crianças loucas; portanto, quando pedem uma arma e você sabe que ela não é segura, considere dar uma arma de brinquedo para acalmá-las .
Como já disse, não há um bastão mágico que possa resolver todos os problemas dessas teses . Você precisa se envolver mais com seus clientes para que haja um bom entendimento sobre o que os outros fazem. Promova a visita ao site, abra comentários etc.
Certifique-se de que o proprietário do produto e as partes interessadas participem das demos do sprint e dê sugestões valiosas para melhorar o produto .
fonte
Se você não tem o buy-in do cliente, o Agile pode ser quase impossível.
Com a compra, quero dizer obter uma porcentagem garantida de um representante do cliente, por semana ou mês. Essa porcentagem varia de acordo com o projeto.
Obviamente, eles têm o trabalho do dia-a-dia; portanto, não cabe apenas ao representante do cliente, cabe à gerência deles reservar um tempo para eles.
Portanto, obter o acordo da gerência do lado do cliente é a chave para esse problema
fonte
Lembre-se de que o ágil não significa que o cliente esteja envolvido em standups diários ou em alguns dos outros aspectos do dia a dia do ágil. Ágil, da perspectiva do cliente, é sobre comunicação. Isso não significa que eles estejam se comunicando com os engenheiros sobre os detalhes da implementação.
Os clientes colaboram com o proprietário do produto para obter e fornecer feedback constante. O tópico são recursos, mas não como eles são implementados. Você está entregando os recursos adequados? Você está dentro do cronograma? Eles têm requisitos de mudança aos quais você precisa se adaptar?
O Agile ajuda você e seu cliente a responder a essas perguntas.
fonte