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?
Respostas:
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 é:
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.
fonte
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.
fonte
Eu já fiquei preso em situações como essa antes.
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".
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.
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á?
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?
fonte
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:
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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
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.
fonte
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.
fonte