O que você faria? Muito atrasado em basicamente tudo e agora o cliente não fala com você [fechado]

8

Eu assumi um projeto bastante complicado como o único desenvolvedor / gerente de projeto e testador em algum momento do ano passado.

Em novembro do ano passado, havia um prazo para entrega de algumas novas funcionalidades.

O sistema que assumi que estava supostamente pronto para ser usado estava longe de estar pronto.

Sentado com um dos usuários de nossos clientes, ele apresentou novos recursos e requisitos necessários. Embora os recursos solicitados tenham sido implementados, ele argumentou que não era nada parecido com o que eles especificaram nos requisitos.

Então eu tive que voltar para a prancheta e fazer extensas alterações no sistema.

Promessa após promessa, a culpa é minha, perdi o prazo posterior devido a diferentes razões: planejamento otimista demais em meu nome, crianças doentes e várias outras questões pessoais.

E também houve falhas no lado do cliente: apenas testando quando observo por cima do ombro e assim por diante.

Ontem, concordamos em entrar no ar se seus usuários aprovarem o aplicativo.

É claro que alguns problemas apareceram e agora, hoje, quando tentei ligar para nosso cliente, ele desligou e não respondeu a nenhum dos meus e-mails.

Isso está realmente me esgotando, as horas e o tempo gasto com isso excedem o horário normal de trabalho e afetaram minha família também

Obviamente, há coisas nessa situação que são específicas para este projeto, mas não acho que o padrão geral (vários pequenos problemas, levando à quebra do projeto) seja incomum.

O que você faria em um cenário semelhante?

user17971
fonte
18
Se eles já pagaram, eu não faria nada.
Pemdas
1
Fiz algumas edições para torná-lo um pouco mais genérico. Há detalhes aqui aplicáveis ​​a este projeto, mas acho que o padrão geral (vários pequenos problemas que levam a uma falha geral) é notavelmente comum e uma boa pergunta.
Jon Hopkins

Respostas:

8

EDIT: Ao reler isso soa um pouco duro, não é assim. As coisas que você descreve são comuns e geralmente são causadas por fatores inteiramente compreensíveis (e depois agravadas pela sua tentativa de ajudar). De qualquer forma, se parecer duro, desculpe, não está apontando o dedo, apenas tentando dizer "é isso que parece ter dado errado, e é assim que lidar com isso".

O que parece ter acontecido com o que você está dizendo é:

  • Você recebeu um código para trabalhar com o qual não estava no estado em que foi levado a acreditar
  • Os usuários alegaram que o aplicativo não atendia aos requisitos, conforme declarado
  • Planos variados (em grande parte irrealistas) foram feitos e perdidos
  • O teste não foi realizado adequadamente
  • Ele agora está jogando seus brinquedos fora do carrinho de forma passiva e agressiva.

E, como resultado, o projeto está falhando.

Meu primeiro argumento seria que você precisa parar de fazer o que tem feito até agora (o que parece continuar otimista, assumindo que, se você continuar, tudo dará certo). Isso não funciona nos últimos 3 meses, por que você acha que vai funcionar agora?

Essencialmente, cada uma dessas questões deveria ter sido abordada à medida que surgiram, lidando com o sintoma (por exemplo, prazo não cumprido) e a causa raiz (por exemplo, o plano estava otimista demais). Como isso não aconteceu (não é incomum), agora você está em uma posição em que há vários problemas para resolver.

Na minha experiência, quando um projeto corre significativamente fora dos trilhos dessa maneira, a melhor coisa a fazer é reunir todos os envolvidos novamente, restabelecer os requisitos e responsabilidades e concordar novamente com um plano (realista) baseado nesses e assim por diante.

Seu cliente precisa:

  • Confirme os requisitos de forma clara e inequívoca. Isso pode ser uma especificação, pode ser uma lista de desvios do que é implementado atualmente, no entanto, deve ser completo, inequívoco e comunicado por escrito.

  • Aceite uma fase de teste que é deles gerenciar no final da qual eles reportarão todos os defeitos. Então será contra isso que você trabalhará. Eles provavelmente também precisam aceitar que haverá pelo menos uma fase de teste subsequente para testar novamente os erros que sairão da primeira.

Você precisa:

  • Avalie realisticamente os requisitos, faça uma estimativa precisa do trabalho (incluindo contingências razoáveis) e elabore um plano para isso. A principal coisa é precisa. Se você acha que tudo vai piorar do que difícil, os planos criados para fazer as pessoas felizes, que não refletem a realidade, não fornecem software.

  • Entregue contra esse plano.

Em termos de entrar em contato com o cliente novamente, recomendo que você crie uma abordagem proposta nesse sentido, indicando o motivo e enviando-o a ele. No momento, ele quer saber como as coisas vão melhorar e é isso que você precisa entregar a ele para reconstruir o relacionamento.

Jon Hopkins
fonte
1
Eu discordo de quase tudo isso, o OP obviamente não pode estimar com precisão a entrega, como está fazendo mais do mesmo processo em cascata que falhou com eles, tão miseravelmente vai fazer qualquer coisa, mas levar a um ciclo repetido de falha nesse caso, eles precisa oferecer uma nova abordagem que represente mudanças!
@ fuzzy, Encurtar a linha do tempo aqui e fazer iterações restritas, aproxima muito o estilo scrum. Essa resposta não parece realmente dizer que tudo isso deve ser feito como uma longa "cachoeira".
covarde anônimo
De qualquer forma, veja a parte sobre "reunir todos" e chegar a um "novo" contrato - quaisquer que sejam os métodos que você decida usar. Eu concordo com distorcido que fazer as coisas em breves iterações e tornar o cliente o "proprietário" (e um responsável responsável pela definição de prioridades) é provavelmente a melhor maneira de subir ... mas você nunca pode "sair" sem demitir o cliente .
covarde anônimo
3
@ fuzzy - Eu acredito que o OP poderia fazer um trabalho melhor de estimativa se ele mudasse uma coisa - seu desejo de compensar seus erros, dizendo ao cliente o que eles querem ouvir e não a verdade. Na minha experiência, o maior erro que os programadores cometem é massageando o que eles acreditam ser verdadeiro para representar mais de perto o que eles esperam que seja verdade, o que eu tenho quase certeza de que é em grande parte o que aconteceu aqui.
Jon Hopkins
Eu não acho que o "plano" proposto para fazer um plano seja realista, dado o fracasso em fazer isso até agora. Penso que o "plano" deve ser mudar o processo e fazer o plano, entregaremos as coisas mais importantes para você nesta semana, depois as próximas coisas mais importantes na próxima semana e responsabilizaremos o cliente pela entrega. Fazendo um monolítico, este é o plano "plano" que está apenas configurando a mesma falha novamente. Você diz "a coisa principal é precisa" Eu não acho que o OP possa fazer jus a essa coisa importante, eles não foram tão capazes no passado, foi isso que os trouxe aqui para começar
6

A melhor coisa a fazer é se comunicar abertamente e francamente sobre suas próprias falhas e graciosamente pedir para ser dispensado de suas obrigações.

Não ajudará você ou o cliente a apontar todas as falhas deles, e você se sentirá melhor sem a obrigação pairando sobre você.

Tome essa experiência como uma aula dolorosa na escola de pancadas fortes e prepare-se melhor para o próximo cliente.

John Weldon
fonte
Eu realmente gosto da sua resposta e teria feito isso se não fosse o único desenvolvedor em nosso escritório.
User17971
2
Presumi que você tivesse assumido o compromisso original com o cliente. Você é funcionário ou trabalha por conta própria? Se você é um funcionário, sua empresa pode ter obrigações contratuais que precisam ser cumpridas.
John Weldon
Eu sou um empregado. Não assumi o compromisso original com o cliente. Apenas tentando acompanhar as promessas já feitas.
user17971
5

Eu já fiquei preso em situações como essa antes.

Promessa após promessa, a culpa é minha, perdi o prazo posterior devido a diferentes razões: planejamento otimista demais em meu nome, crianças doentes e várias outras questões pessoais.

O negócio deles precisa disso, e você quebrou promessa após promessa. Você precisa parar de fazer promessas excessivamente otimistas. Quando eu estive nessas situações, é extremamente difícil recuperar credibilidade com o cliente . Quando você trabalha nos negócios, sua reputação é extremamente importante. Se você vai fazer estimativas, precisa atingi-las. Se seus filhos / família estiverem doentes no futuro, existe alguém para ajudar a cuidar deles, como cônjuge ou outra família? Procure avançar em direção a um futuro "sem desculpas".

É claro que alguns problemas apareceram e agora, hoje, quando tentei ligar para nosso cliente, ele desligou e não respondeu a nenhum dos meus e-mails.

Ele quer resultados, não desculpas. Ele desligou porque não queria ouvir mais uma desculpa. O que você pode fazer para recuperar o projeto? O que você pode fazer para concluir este projeto? Como você se envolveu nesse projeto em primeiro lugar?

Se eu fosse você, gastaria um tempo hoje preparando a documentação para entregar esse projeto ao próximo.

O sistema que assumi que estava supostamente pronto para ser usado estava longe de estar pronto.

Eu já estive em situações como essa também. No futuro, nunca gaste energia significativa descrevendo isso para o cliente, porque parece que você está consumindo ouro. Por que o cara anterior deixou no estado inacabado em que está?

E também houve falhas no lado do cliente: apenas testando quando observo por cima do ombro e assim por diante.

Essa foi uma das partes mais dolorosas do último projeto em que eu fiquei presa como a sua. O especialista no assunto (que está se aposentando neste verão) não documenta nada, então a maioria dos erros resulta da minha memória imperfeita das conversas com esse cara. Além disso, ele estava acostumado a manter todas as coisas em segredo para se tornar indispensável, e esse hábito tem sido extremamente difícil para ele se abalar nos últimos dois anos no trabalho.

A outra falha crítica foi que não havia ambiente de teste. No ano passado, todo o código a ser testado foi promovido diretamente à produção, onde seria responsável pelo controle de qualidade pelos usuários finais.

A situação final era que essa agência federal não tinha orçamento para contratar ninguém, e eu estava terminando esse projeto para evitar que meu amigo fosse processado. No final, eles me deixaram ir (yippie!) E usaram alguém trabalhando em um projeto diferente (ainda que financiado). Demorou mais de um ano para eu me envolver, e mesmo que eles dobrassem seu orçamento para o projeto, esse orçamento foi atingido quando eu me envolvi.

Avançando, você precisa aprender a fazer estimativas melhores. Algo como o diário recomendado no PSP ( livro ). Este projeto é um fracasso. Além disso, você pode discutir as coisas com seus amigos pessoais. Algum deles tem a habilidade e a largura de banda para ajudá-lo em futuras confusões como essa? Da próxima vez que você pensar demais, repetirá essa falha ou há algo que você possa fazer para atenuar a falha da próxima vez?

Tangurena
fonte
Promovido por dar ao cliente o ponto de vista comercial tão bem.
David Thornley 23/02
é a primeira vez que estou com esse tipo de problema. Tenho outros projetos que gerencio bem e já gerenciei diferentes projetos. OK no passado, nunca tive nenhum desses problemas. a principal diferença para mim é que esse projeto que está em execução agora é realmente um projeto muito grande, com muito código e muitas dependências e provavelmente o projeto mais complicado que já vi na minha vida.
user17971
3

Se você escreveu um software que será usado / implementado pelo cliente, ele terá a responsabilidade de pagar por esse software e responder a solicitações. Parece muito que o cliente lavou as mãos do assunto; portanto, a menos que você esteja preparado para ir a um tribunal sobre esse assunto, você pode acabar pegando esse no lugar.

Você precisa ter documentação, contratos, requisitos por escrito, prazos, entregas e déficits. Se você pode mostrar que fez a devida diligência para cumprir o contrato e o cliente não, então você tem alguma coisa. Se você não pode, é apenas "Ele disse que me pagaria para fazer isso, então eu fiz isso e agora ele não retornará minhas ligações".

Minha recomendação para você é entrar em contato com a secretária / assistente deste cliente / o que for possível para agendar uma reunião cara a cara com ele. Não perca seu tempo, não rodeie o mato. Diga a ele que você aprecia a oportunidade que ele lhe ofereceu para trabalhar neste projeto e que você reconhece que houve algumas deficiências nas expectativas. Não ofusque o problema com desculpas ou argumentos de contrapartida. Eles apenas deixarão vocês dois zangados a longo prazo e não receberão nada.

Pergunte ao cliente que medidas são necessárias para que isso aconteça da maneira que ele gostaria. Considere seus recursos, status, disponibilidade, tudo. Seja honesto com você mesmo. Tudo o que você criar, tanto quanto custo / tempo / etc, DOUBLE IT. Se isso não se enquadra na área de comprometimento, é necessário cortar a isca e separar as partes.

Esta é provavelmente uma conclusão precipitada, pois parece que o cliente está muito satisfeito, mas pode ser transformado em uma experiência de aprendizado. Parece que você precisa de muita preparação extra em vários assuntos relacionados a contratos dessa natureza:

  1. Faça por escrito. Assinem. Descubra o que o cliente realmente deseja e obtenha-o por escrito.
  2. Se houver alterações ao longo do caminho, escreva-as como alterações em um documento, peça ao cliente que o leia e assine. Inclua quaisquer alterações nos resultados, prazos, custos.
  3. Aprenda a estimar melhor seu tempo. Você realmente precisa saber com que rapidez pode desenvolver certos tipos de projetos, como reconhecer o cliente carente que gastará seu tempo, o cliente desatento que o desperdiçará.
  4. Orçamento seu tempo e recursos melhor. Ao estimar um projeto, seja o mais honesto possível com o tempo necessário para fazer alguma coisa. Se você não sabe, dê uma guinada. Seja qual for o resultado, dobre-o (ou pelo menos aumente-o pela metade). Isso dará a você espaço de manobra quando as fezes atingirem o modulador de ar oscilante.
  5. Tenha uma área de trabalho tranquila e tranquila, com menos distrações. Parece que você estava trabalhando em casa por muito disso. Você precisa tratar esse tempo como se estivesse em um escritório corporativo. Quando você está "no trabalho", você está no trabalho. Sua esposa não está na outra sala, seus filhos não estão sentados no chão ao seu lado, gritando por atenção. Se você não consegue atender a essa necessidade básica de trabalho, não está preparado para atender às expectativas de ninguém.
  6. Aprenda a escolher seus clientes com mais sabedoria. Encontre-os, observe seu comportamento. Forneça a eles pequenos petiscos para responder e avaliar suas reações. Clientes impossíveis de agradar são os mais fáceis de encontrar. Você pode identificar isso durante o almoço, porque nada estará certo na mesa. Clientes exigentes demais estarão no seu telefone muito mais do que deveriam. Os clientes que não respondem claramente não estão interessados ​​nos seus serviços ou em melhorar a área de seus negócios. Esses clientes devem ser descartados cerimoniosamente. Não faça isso infantilmente, simplesmente seja direto. Honre todos os contratos existentes e simplesmente negue contratos futuros. Indique seu motivo sem rodeios: "Não tenho recursos para atender às suas necessidades contínuas".
  7. Se esse é um problema recorrente no final do cliente (sem resposta, falta de pagamento, etc.) que não pode ser evitado, crie um relacionamento com uma agência de cobrança próxima (eles estão por toda parte). Abra uma conta, faça um amigo. Ter um terceiro capaz de se apoiar em deadbeats é um recurso muito útil.
  8. Se você vai se envolver em uma profissão, seja profissional. Não há crianças doentes ou problemas pessoais no mundo dos negócios. Essa é uma afirmação fria, mas é um fato. Não trabalhamos para ursinhos de goma e barras de chocolate, trabalhamos por dinheiro.

A última coisa que posso recomendar para o futuro é ser honesto consigo mesmo. Se você não puder atender aos requisitos de um cliente de maneira profissional, não tente. Quando chamo um encanador para consertar minha pia com vazamento, não quero ouvir sobre seus filhos doentes ou sobre como ele não sabia que consertá-la levaria sete horas. Eu quero consertar. Pagarei pelo tempo extra, se ele puder me mostrar que era necessário e não apenas ele se agarrando nos meus canos. Seus clientes têm expectativas. Se você promete 1º de maio, faça-o em 1º de maio. Se algo do cliente atrapalhar, peça por escrito que a data será adiada por causa da solicitação do cliente. Faça por escrito. Se for algo do seu lado, conserte-o. Se você sabe que isso causará um problema e o prazo simplesmente não será cumprido, seja honesto e admita. Em seguida, esteja preparado para oferecer algum tipo de desconto.

Joel Etherton
fonte
Eu acho que isso é muito duro. Embora eu concorde com você, em teoria, nunca é tão claro quanto isso, especialmente quando você é o único desenvolvedor / gerente de projeto / testador / gerente de contas do projeto e quando as coisas acontecem, haverá um efeito direto. apesar das palavras duras que acho que é o que preciso ler / ouvir. 1
user17971
@ user17971 - É bastante duro. Mas duas coisas que li na sua pergunta e indicaram que isso pode ser necessário. O cliente estava desligando o telefone e você parecia estar dando desculpas. Eu estive lá. Perdi clientes por razões semelhantes, e foi um empreiteiro experiente que me curou com uma franqueza semelhante. Eu herdei uma tonelada de situações horríveis de desenvolvedores anteriores (independentemente e enquanto trabalhava para empresas), e esses conceitos me deram o poder de recarregar todas elas.
Joel Etherton
2

Eu estive exatamente na mesma situação. Eu tinha um cliente que queria muito mais do que eu poderia oferecer e estava mudando as expectativas a cada semana. No começo, era um trabalho simples, mas muitas coisas eram complicadas ... Perdi muito sono e isso afetou fortemente outros aspectos da minha vida.

A melhor coisa que você pode fazer é desligá-lo e seguir em frente. Às vezes, os projetos fracassados ​​acontecem e é melhor que ambas as partes reconheçam os sinais e os peguem cedo. Uma vez que começa a entrar na sua vida pessoal, foi longe demais.

Aprenda com ele e tente não repetir. Você será muito mais feliz.

WalterJ89
fonte
Qual seria a melhor maneira de o OP "simplesmente desligá-lo" para que ele possa "seguir em frente" com essa situação?
23411 Chris
1
"Eu parei", talvez? Ou "licença por estresse"? Na minha situação, fui com "desisti" porque esse cliente era terrível (e muito barato).
23411 WalterJ89
1

Pergunte ao cliente o que eles querem. Se estiver dentro do presente contrato, faça isso, renegocie o contrato. De qualquer forma, verifique se você tem um entendimento claro do que o cliente realmente deseja em um documento em que ele assina, para que não possa dizer posteriormente que você perdeu algo que queria.

Stephen Paulger
fonte
1

O fator chave aqui, a meu ver, é que os requisitos não foram acordados.

Não sei como você estava cobrando. Se fosse um contrato de preço fixo, com requisitos flexíveis, talvez você não tenha nenhum recurso. Nunca assine um contrato no qual você receba o valor X sem um sólido contrato por escrito sobre o que você deve fornecer. Se você precisar fazer algo assim, divida o projeto em fases e não faça a fase N + 1 até que a fase N seja encerrada (se não for realmente paga). Sempre especifique as responsabilidades do cliente e as suas.

Nesse caso, seu antecessor aparentemente aceitou requisitos adicionais sem renegociação do contrato. Isso é ruim. Se um projeto atender aos requisitos acordados, acréscimos a isso deverão ser negociados como parte das mudanças no contrato. Você não precisa necessariamente cobrar mais, mas obviamente nesse caso o prazo precisa ser redefinido.

Você pode ter requisitos flexíveis, desde que não tenha um preço fixo ou data de conclusão.

Seus problemas de estimativa são típicos do setor, mas tente aprender com eles. Problemas inesperados surgirão com bastante frequência, portanto, nunca forneça números a ninguém sobre uma estimativa do melhor caso.

David Thornley
fonte
Tentei fazê-los concordar com um contrato quando assumi o projeto, mas eles se recusaram a aceitar isso com base no fato de já terem criado essa lista. Semanas depois, encontrei essa lista em uma planilha do excel. Requisitos muito vagos / não especificados. Lamento todos os dias que não tenha suportado muitas das minhas convicções e maneiras de fazer o gerenciamento de projetos para esse cliente em particular.
user17971
1

Você precisa de um processo melhor , as Metodologias Ágeis, em especial o SCRUM, oferecem melhor transparência, interação forçada do cliente, tornando o cliente um interessado e um membro da equipe, bem como testadores como membros da equipe, todos se tornam responsáveis ​​pelas entregas e não apenas pelo desenvolvedor.

Permite ciclos de entrega mais curtos; dessa forma, quando você perderá o prazo e o prazo final, será de apenas uma ou duas semanas da Sprint, e você e o cliente saberão que a falta ocorrerá antes do final da Sprint.

Se você falhar, uma vez que planeja apenas um único Sprint de 1 a 2 semanas, falha rapidamente, pequeno, em vez de tarde e grande.

O SCRUM também torna a aceitação final da entrega a responsabilidade do Dono do produto (cliente), o que significa que, se continuarem alterando os requisitos e o que não for transparente para todos os que estão causando os atrasos e muito bem documentados.

Mais coisas são 100% concluídas, testadas e aceitas antes que novos recursos sejam trabalhados. Imagine que você tem uma lista de 100 recursos. Com o que o cliente ficaria mais feliz?

80% dos recursos mais importantes 100% completos, testados e aceitos como livres de bugs?

ou

100% de todos os recursos 80% completos, não testados e com erros?

Processos como o SCRUM forçam o cliente (Dono do produto) a priorizar os recursos para você, para que você entregue apenas o que eles estão pedindo no Sprint atual. O trabalho mais importante para o Dono do produto é realizado primeiro, outras coisas menos importantes podem nunca ser realizadas, mas na decisão do cliente isso não é valioso.


fonte
Eu sou o único recurso nesse projeto. Fazer SCRUM é difícil com isso em mente. Eu uso alguns métodos ágeis, tentando chegar ao cliente a aceitar alguma responsabilidade, mas é um desafio ..
user17971
1
sendo o único desenvolvedor sobre as marcas do projeto processar ainda mais importante e dá-lhe uma posição para negociar a partir de
1
sim. Sou muito orientada para o processo, mas por algum motivo esse projeto está apenas decidindo ter uma vida própria. Obrigado por suas idéias, você está me dizendo exatamente o que eu preciso ouvir.
user17971
1

Aprenda com isso. O melhor conselho que recebi para fornecer estimativas de tempo foi: calcular o que você acha que será necessário, depois dobrá-lo e adicionar 10%. :)

Parabéns, você aprendeu uma lição valiosa sobre gerenciamento de projetos de software. Tente evitar ficar tão obcecado em satisfazer seu cliente que você acabará ficando ainda mais chateado.

Isso não é exclusivo da indústria de software. O que você esperaria se fosse a um restaurante e o servidor levasse uma hora para levar sua comida. E quando você conseguiu, não era o que você esperava? Você gostaria de um desconto ou pedido de desculpas, certo?

Ofereça o que puder ao cliente e siga em frente. Às vezes, essa é a única opção que você tem.

Edit: Gostaria de olhar para Scrum ou alguma outra metodologia Agile nos dias de hoje para reduzir a insatisfação do cliente.

davidhaskins
fonte
0

Chame isso de uma experiência de aprendizado. Da próxima vez, quando o usuário tentar alterar os requisitos, renegocie a linha do tempo e obtenha-a por escrito.

Você pode enviar uma fatura se sentir justificado. Parece que você não.

Edward Strange
fonte
Na verdade, eles não pagam nada pelo projeto. Eles pagam uma taxa de licença mensal pelo aplicativo que, por sua vez, nem paga pelos meus salários.
user17971