É de responsabilidade do desenvolvedor de software entender o que o cliente quis dizer com sua solicitação?

12

Tipo de pergunta sim / não e por quê?

É responsabilidade do desenvolvedor de software entender o que o cliente quis dizer com sua solicitação ou é responsabilidade do cliente explicar adequadamente sua solicitação ao desenvolvedor?

A situação no trabalho é atualmente "o cliente já nos explicou o que deseja. É sua responsabilidade entender a solicitação e não fazer mais perguntas".

Embora o inglês não seja meu conjunto forte, todos os pedidos são escritos em inglês obscuro, com palavras equivocadas e frases difíceis de entender, alguns pedidos assumem um entendimento prévio do sistema da minha parte.

Eu sou o terceiro ou o quarto desenvolvedor do sistema (os últimos desenvolvedores deixaram o trabalho) e esse pode ser o motivo pelo qual o cliente espera ter alguma compreensão do lado do desenvolvedor.

O sistema em si é bastante confuso, tanto na interface quanto no nível do código-fonte. Parece-me codificação de macaco para mim - codifique e espero que você atenda à solicitação corretamente, sem realmente entender a solicitação.

Na verdade, estou pensando em deixar o emprego, mas ainda não o fiz, pois não tenho certeza sobre quem está certo e quem está errado.

Dante
fonte
1
estive lá ... T_T
Songo
6
é preciso dois para dançar o tango
mosquito
16
Se eu fosse o cliente e descobrisse que o desenvolvedor não entendia meus requisitos e que fora instruído a não pedir esclarecimentos, eu não ficaria satisfeito. Você pode pelo menos ter alguma clareza de onde se originou a coisa "não faça mais perguntas"?
Keith Thompson
14
@ JohnNevermore: eu diria que isso tornaria o líder da equipe o candidato a perguntas. Está além do seu domínio de influência que existem desenvolvedores antes de você, e isso não muda, você precisa entender o problema. Se ele se recusar a responder, corra.
Keppla
4
Cubra a sua bunda, receba um e-mail quando lhe for pedido para não fazer perguntas e guarde-o para uso posterior se alguém voltar para você. Em seguida, codifique o horário que você recebeu. Sua responsabilidade é obedecer a ordens ou correr o risco de ser demitida.
Phil Hannent

Respostas:

41

Se é seu trabalho entender, é seu trabalho fazer perguntas até você

A pessoa que você pergunta pode ser alguém que não é o cliente (conversei frequentemente com um intermediário, que estava em contato com o cliente); portanto, aqueles que o proíbem de falar com o cliente devem responder às perguntas ou encaminhar você alguém que pode.

Mas, no final, deve haver ALGUM tipo de comunicação. Se eles negarem (e fornecer alguns documentos que você não entende está efetivamente negando a comunicação), faça como seus predecessores: fuja rapidamente.

keppla
fonte
22
Como uma anedota: toda vez que eu via esse tipo de comportamento, era porque o cliente tinha certeza de que o recurso já estava implementado e, se alguém fizesse perguntas sobre como fazê-lo, exporia suas mentiras.
Keppla
Nesses casos, geralmente os chefes querem apenas algo que eles podem passar como sendo a implementação mencionada, mostrando que estão no topo; o cliente diz "OK, mas podemos fazer isso" e a conversa pode acontecer. Ainda é um cenário muito ruim.
KeithS 3/12/12
@ KeithS: sim, seria uma boa maneira de ninguém perder o rosto. Mas, em alguns casos especiais, os chefes conseguiram concordar em entregar algo logicamente impossível e se gabaram dos testes bem-sucedidos ... :) De fato, algumas piadas dos fóruns do stackoverflow solicitam um programa que resolva o problema de parada de um computador. site de licitação do projeto. As respostas foram incrível, alguém aparentemente já resolveu o problema :)
keppla
A primeira frase diz tudo. Se você estiver indo a algum lugar, o fator mais importante para determinar que você alcançará seu destino é saber o que é esse destino. Da mesma forma, o fator mais importante para determinar o sucesso de um projeto de software é saber o que é uma implementação bem-sucedida. É tão ridículo questionar o último quanto é o primeiro.
precisa saber é o seguinte
6

Quando seus clientes e superiores deixam você com uma trilha de papel bagunçada, a única coisa que você pode fazer é reunir o máximo de sentido possível do que você tem e começar a escrever cenários em inglês simples, na tentativa de estruturar qual conhecimento existe sobre como o sistema deve se comportar.

Os cenários Dado / Quando / Então permitem que você entre em detalhes sobre o que precisa acontecer e, como eles estão escritos em inglês simples e estruturados, você pode usá-los para se comunicar com seu superior e cliente: "Ouça, Cheguei a esse ponto e não tenho idéia do que o sistema deve fazer aqui ".

Se você simplesmente se esquivou de pedir esclarecimentos adicionais, mesmo tendo investido esforços para documentar tudo o que faz e não entende, os desenvolvedores anteriores falharam não porque não sabiam como comunicar as especificações, mas porque é impossível fazer isso.

Filip Dupanović
fonte
6

Na minha opinião, ambos (cliente e desenvolvedor) precisam obter o mesmo entendimento do problema e de sua solução.

Se você não entender a solicitação, não poderá criar a solução.

Então você tem que ler as especificações. Se a especificação não for clara o suficiente (ou não houver especificação escrita), deve haver alguém que possa dar as respostas.

Eu trabalho em equipes que têm uma pessoa que pode responder às questões de negócios. Esse empresário é um membro da empresa de desenvolvimento em que trabalho e que conhece os negócios dos clientes ou um membro da equipe de clientes.

k3b
fonte
3

Parece que em sua localização específica, o gerente de projeto teme que o cliente fique aborrecido se as mesmas perguntas forem feitas várias vezes (necessárias por causa da rotatividade de desenvolvedores) e que isso refletirá mal sobre ele e sua empresa.

Obviamente, se você não fizer essas perguntas, levará muito mais tempo para concluir / modificar o sistema e o resultado pode não ser o que o cliente queria, o que causará mais atrasos e também refletirá mal no gerente de projetos e em seus funcionários. empresa, pelo menos aos olhos do cliente.

Existem algumas razões pelas quais o gerente de projeto pode optar por não permitir que você faça perguntas:

  1. Ele realmente não entende as consequências negativas ou nega-as.
  2. Ele conhece as alternativas, mas sabe que é mais provável que o cliente aceite atrasos e baixa qualidade do que perguntas irritantes.
  3. Ele está jogando jogos políticos: talvez ele saiba que está deixando o projeto em breve e quer manter os problemas ocultos até então, ou está planejando culpá-lo pelos problemas causados ​​por essa falta de comunicação.

O motivo 2 da IMO é improvável. Para eliminar o motivo 1, tente explicar as alternativas a ele e peça que ele faça uma escolha explícita entre elas - sugira explicar o problema ao cliente para reduzir o aborrecimento. Para eliminar o motivo 3, faça isso por escrito, para poder provar que estava ciente dos possíveis problemas desde o início e tentar corrigi-los. Mas, para ser sincero, se você suspeitar que isso seja necessário, provavelmente deverá chegar o mais rápido possível.

Michael Borgwardt
fonte
2

Eu acho que é sempre responsabilidade do provedor de serviços garantir que eles tenham entendido as intenções do cliente.

Como especialistas em nosso campo, não é apenas nosso trabalho preencher resumos, mas também ajudar a orientar nossos clientes no processo de usar nosso serviço, e isso envolve educá-los sobre as possibilidades que oferecemos e o que fazemos agora.

Acredito que uma abordagem focada no cliente é absolutamente a maneira de fazer as coisas, é um modelo de negócios testado e comprovado.

Fuzz leve
fonte
2

O cliente e os desenvolvedores precisam trabalhar juntos para refinar sua compreensão do sistema.

A empresa de software precisa chegar a um acordo com o cliente quanto ao que é exigido de cada parte, que é o aspecto fundamental de um contrato. Se não há "reunião de mentes", então, em um sentido muito real, não há contrato.

Assumir que você é um programador competente, se a especificação não estiver clara, será informado simplesmente que "é sua responsabilidade entender a solicitação, não faça mais perguntas" é uma bobagem.

Jaydee
fonte
2

Isso se baseia em algumas informações novas nos comentários sobre a pergunta original.

A afirmação de que

o cliente já nos explicou o que ele quer. É sua responsabilidade entender a solicitação, não fazer mais perguntas

vem do líder do projeto; a lógica declarada é

que, como não sou o primeiro desenvolvedor do sistema, não devemos incomodar o representante do cliente com mais perguntas, mas tente e, se necessário, dedique mais tempo a interpretar a pergunta.

Portanto, o que você está especificamente pedindo para evitar é incomodar o cliente com perguntas .

Pedir que você "gaste mais tempo interpretando a pergunta" não é necessariamente irracional. Você deve fazer um esforço razoável, ou talvez um pouco irracional, para descobrir quais são os requisitos com base no que o cliente realmente disse. Se nada mais, é uma habilidade valiosa.

Se isso falhar (e parece que já ocorreu, por vários motivos), peça ajuda ao líder do projeto. Tente ser o mais específico possível em suas perguntas, mostrando que você fez sua lição de casa. Por exemplo, em vez de

o que essas pessoas querem ??? "

pergunte algo como,

No parágrafo 17 do documento de requisitos, diz que o foobar deve frisar o frozzle; a qual desses três frozzles isso se refere? "

Ou, se os requisitos são realmente tão mal escritos que você não pode decifrá-los, diga isso a ele.

Eu diria que, em última análise, é responsabilidade do líder do projeto garantir que os requisitos sejam entendidos corretamente (certamente é do interesse dele que o projeto seja bem-sucedido). Mas como membro da equipe, você compartilha parte dessa responsabilidade. Se você demonstrar que fez algum esforço, e o líder do projeto se recusar a ajudá-lo, ele assumiu toda a sua responsabilidade. Se chegar a esse ponto, verifique se ele sabe disso.

Keith Thompson
fonte
+1 por enviar isso ao líder do projeto. Garantir que todos tenham os recursos de que precisam é a principal responsabilidade do líder do projeto - isso inclui ter as informações necessárias.
Sleske
1

Em um mundo perfeito, deve haver uma lista de recursos e especificações em algum lugar, algo escrito em um contrato que vincule sua empresa e seu cliente.

Para responder à sua pergunta, o desenvolvedor deve realmente entender o que o cliente deseja e ter um documento escrito para que ambas as partes concordem com a mesma visão.

Obviamente, este não é um mundo perfeito e, muitas vezes, não há especificações, e se você não tiver nenhuma especificação escrita, bem, isso será difícil. Existe alguém na sua empresa que trabalhe como delegado de relacionamento com o cliente, que possa ajudá-lo a entender o que o cliente deseja?

Caso contrário, na sua posição, eu tentaria obter informações dos desenvolvedores anteriores, supondo que eles entendessem a tarefa, é claro.

XGouchet
fonte
1

Eu acho que o papel real de especificar quem cuida da compreensão dos requisitos varia de acordo com algumas dessas variáveis

  • Tamanho da equipe
  • Normas da empresa
  • A maneira como o chefe está acostumado a trabalhar
  • Diferentes conhecimentos entre os membros da equipe

Portanto, se você é apenas uma equipe de um homem, deve fazer todos os esforços para chegar ao final dos pedidos. se você é novo em um projeto em andamento, deve fazer um esforço para revisar as solicitações novamente com o cliente.

EDIT: O mais importante é que o cliente pode não saber que ele fez requisitos tão ruins, e o processo de coleta de requisitos geralmente é longo e tedioso, mas é um processo importante, e se ele cair sobre você porque ninguém mais o faz, então você deve faça isso com eles.

Mithir
fonte