Existem diversas respostas que demonstram porque um projeto atrasa mas, raramente, quem faz a pergunta sequer aceita a resposta ou, ao menos, ponderar sobre o que foi respondido. Ninguém é no mundo uma autoridade em atrasos de projeto e eu duvido que exista qualquer projeto realizado ou em andamento onde NADA atrasou.
Um projeto que aconteceu sem qualquer atraso ou não existe, ou foi feito por um elfo, ou não foi bem definido e quem contratou não ficou satisfeito ou este projeto foi cancelado e não foi concluído.
Eu desafio ao leitor me demonstrar um projeto que não atrasou e que não entrou nas categorias acima.
(Se você encontrar um elfo que fez um projeto você é o cara!)
De quem é a culpa por um projeto atrasar? Essa deve ser a terceira pergunta mais feita no mundo. E ela não tem uma resposta correta. Isto é o mesmo que culpar o vento pela água ser molhada! Ou então, a culpa é de Deus?!
Antes de fazermos estas perguntas, seria melhor que nos perguntássemos: estamos completamente seguros de tudo o que queremos de um projeto? Estamos prontos para bancar os famigerados 30% de atraso previsto na definição de um projeto? Juramos por Deus que não vamos pedir nada diferente daquilo que definirmos ANTES do início do projeto!
Acho que agora cheguei no âmago do problema: mudanças.
As seguintes premissas garantem TOTALMENTE um projeto sem atrasos:
- O usuário sabe de cor e salteado todas as nuances e detalhes de sua atividade de negócio. Ele é tão expert no assunto que o Papa Francisco vem se consultar com ele. A Casa Branca usa esse cara para definir todas as estratégias de negócio do setor. Deste modo, todas as informações que a equipe do projeto precisar estarão determinadas, detalhadas, escritas e diagramadas corretamente não ficando espaço para dúvida.
- O usuário, esse super saiyan (do desenho Dragon Ball), estará 100% envolvido no projeto disponível o tempo todo para ser consultado e não arredará o pé nem fará qualquer outra atividade até a entrega do projeto. Não haverá uma "visita rapidinha a um cliente" ou uma "prioridade" em outra atividade.
- O gerente / coordenador do projeto terá autonomia para decidir o que for preciso, terá um budget (orçamento) à sua disposição para contratações de última hora, compra de alguma tecnologia necessária, sem que tenha que pedir a bênção do Chicão (Papa Francisco), de Deus, de um E.T. do Gandalf (Senhor dos Anéis), etc.
- A equipe do projeto será formada por pessoas capazes, determinadas e com conhecimento técnico específico para a tecnologia na qual será empregada no projeto e o RH da empresa (composto por Psicólogos de verdade) irá ajudar a compor uma equipe correta e completa e não pegar a rapa do tacho do que sobrou na empresa.
- A equipe do projeto vai ser madura para colocar de lado suas diferenças e trabalhar com vontade e determinação para o bom andamento e conclusão do projeto.
- O gerente / coordenador não vai ter que ficar malhando o Judas nem rebanhando a equipe porque o Diretor acha que funcionário deve ser vigiado, tolhido, chegar às 8 em ponto e não ter horário para sair da empresa.
- As pessoas vão tomar mais de 500g de vitamina C todos os dias e diversas vacinas além de andarem com roupas anti-germes de forma a não contrair qualquer enfermidade.
- Todos os componentes do projeto vão morar a meros 10 metros da empresa de modo que os mesmos não se atrasem, não tenham problema com trânsito, não durmam além da conta e não tenham que sair correndo da empresa para voltar para casa.
- Todos os componentes do projeto serão andróginos sem sentimentos e não se relacionarão com ninguém fora da empresa de modo que não haja qualquer distúrbio pessoal em suas vidas e eles fiquem 100% focados no projeto.
- A sede da empresa será protegida por uma redoma de vidro indestrutível de modo que, se o mundo acabar em qualquer tipo de cataclismo a empresa sobreviverá flutuando no espaço tudo de modo que o projeto se complete.
Exageros à parte, somente se os quesitos acima foram contemplados não teremos qualquer atraso no projeto. Aliás, se lermos atentamente a lista acima, conseguiremos descrever ainda certos problemas que eu não parei para pensar e que podem levar um projeto a atrasar.
Com toda a certeza tenho leitores que estão se perguntando mas como você justifica que um projeto que tinha o prazo de um ano para acontecer, está há 3 e ainda não acabou? Justifico dizendo: quem foi que disse que o prazo inicial do projeto era de um ano? Quem disse que isto estava certo? Com base no que foi dito isto?
Tenho a experiência de estar passando por um projeto assim. Quem determinou tudo isto é uma pessoa extremamente experiente em desenvolver software sozinho, num determinado jeito, numa determinada qualidade. Um cavaleiro solitário. Software que só ele entende e que só ele consegue efetivamente dar manutenção em tempo hábil. Qualquer outra pessoa no mundo que pega o que ele fez se confunde, demora para entender, demora para tomar proficiência e faria diferente. Neste caso, o prazo dado foi feito com base no que ELE faria. Eu jamais daria um prazo sob pressão.
Dar um prazo é se comprometer.
Para dar prazo, existem técnicas consagradas, métricas a serem levadas em conta e ainda assim, com margens de erro tremendas. Dar prazo é uma arte. É uma maldição. Todo prazo dado, deve ser cumprido.
Nós humanos pedimos para sofrer.
Chego para minha equipe e peço um prazo. Quero que eles me digam um dia no máximo. No fundo no fundo já sei que o prazo que eu quero é impossível, mas quero saber da equipe. Todos se entreolham. Suam. Se remexem nas cadeiras. Pensam e por fim vem o prazo: um mês. Essa resposta entra em mim rasgando como se todos da equipe estivessem contra mim e querem o meu mal. Todos agora são meus inimigos. O clima se acende. A Pressão é perceptível. Mesmo que a equipe possa fazer em 5 dias, eles vão fazer em DOIS meses. Só por causa da maneira como pedi, da reação que tive quando me deram o prazo e pelo mal psicológico que eu causei às pessoas as interpelando dessa maneira.
Mas caramba! Sem prazo como vou saber custo, viabilidade, etc?
Calma pequeno gafanhoto! Tudo tem solução!
Tenho um carro. Não sei absolutamente NADA de mecânica de automóveis. Meu carro está fazendo pequenos ruídos em determinada situação. Não parou de andar nem nada mas eu estou achando estranho o ruído. Vou ao mecânico que meu pai costumava ir. Ele avalia o carro e chega numa conclusão: tem uma peça gasta. Não vai causar problema para andar mas vai continuar a fazer o ruído. A peça não é cara, mas a mão de obra para desmontar, trocar a peça e remontar vai ficar 10 vezes mais cara do que a peça em si e o serviço vai demorar cerca de 30 dias para ser realizado. Se eu ficar puto com o mecânico, o melhor que deveria acontecer comigo era ser espancado em praça pública e meus pelos púbicos deveria ser arrancados com uma pinça. Que culpa o mecânico tem? Porque quando eu fui comprar um carro eu não fui aprender mecânica básica e olhei embaixo do capô para me certificar de que a fábrica dava acesso fácil a determinadas peças?
Poxa! Mas eu vou ter que fazer Engenharia Mecânica no ITA para comprar um carro? Não mas um mínimo você TEM que saber e deveria ser LEI antes de adquirir um carro como tudo o mais. Até mesmo para se ter um computador pessoal DEVERÍAMOS ter um conhecimento mínimo. Popularizar tudo é desastroso.
Não dá para culpar os outros por esse tipo de coisa.
Para todo problema existem soluções. Algumas mais caras, outras nem tanto. Em projetos é o mesmo. Para se pedir um prazo, deve-se antes pensar no problema. Definir o que está em jogo. Apresentar a sua equipe tudo o que deve ser executado, todos os detalhes possíveis sobre o problema e como poderíamos solucionar. Quem está pedindo deve ter um conhecimento mínimo do que se vai pedir. Ou, pagar a pena de ter um prazo diferente de suas expectativas e não descontar esse desapontamento na equipe. Desconte em você mesmo por estar pedindo algo do qual você não faz ideia de como funciona.
Um caso prático:
Certa feita quis dar um up no meu site. Sou desenvolvedor mas não tenho qualquer habilidade em web design. Para mim o mundo seria quadrado e em preto e branco. Mas sei como funciona código em Javascript, CSS, HTML a estrutura de uma página web, que para fazer um menu suspenso tenho que usar um script Javascript feito do zero ou usar uma biblioteca como o JQuery para ajudar, etc. Então, fiz num PowerPoint um rabisco, um rascunho dos elementos que eu queria ver no site. Disposição de determinadas coisas e FUNCIONALMENTE defini o que o site deveria fazer.
Contatei um amigo que é desenvolvedor de frontend há muito tempo e dei a ele as premissas do projeto. Queria que ele fizesse o front esperando que houvessem funcionalidades de servidor que EU MESMO faria em JAVA EE e que deveriam devolver para as páginas parâmetros e informações de acordo com o rabisco em PPT que eu estava mostrando a ele.
Com base nisto, disse a ele: "Leve para casa, mastiga a idéia, critica, me diz o que estou pensando errado, rabisca do jeito que você faria e vamos voltar a conversar". Ele fez isso e ficou nisso por uns 5 dias. Quando voltamos a nos falar, ele me disse que alguns problemas aconteceriam e que se eu fizesse do jeito Y ao invés do jeito X daria certo. E me disse que se eu aceitasse o que ele tinha determinado, em 10 dias ele me devolveria o site pronto para que eu acoplasse com o lado servidor que eu iria começar a desenvolver.
Vejam aí que eu já tinha uma ideia completamente definida, delineada, ajustada para passar a quem eu esperava um prazo. Dei liberdade à EUquipe de frontend para determinar problemas, sugerir, mudar coisas, afinal, se eu soubesse fazer frontend, não precisaria contratar alguém para isto. Nem questionei o valor que ele me passou. Ele sabe o quanto vale o trabalho dele. E ele sabe que eu sou exigente e cobro fortemente qualidade e comprometimento.
Engraçado que ele me entregou a primeira versão em 8 dias, ao invés de 10, pedi uma mudança ou outra, pequei eu sei, e ele me entregou no dia seguinte, com um dia de crédito ainda.
Eu nem havia terminado o módulo servidor ainda quando ele me entregou. E a coisa se acoplou perfeitamente, sem problemas, sem atropelos, etc. Atrasou o projeto!!!! Por minha culpa. Eu quis coisas demais do lado servidor. Coisas que eu não sabia que iriam tomar tanto tempo. Não me frustrei porque era eu que estava exigindo e eu que estava fazendo. Será que seria assim se eu tivesse contratado o módulo servidor de outra pessoa e tivesse agido diferente do que eu fiz com o rapaz do frontend?
Pensem a respeito, Oh pessoas que pedem prazos!