Sou desenvolvedor de software e trabalho em uma pequena empresa de desenvolvimento web. Parece ser um tema recorrente que um gerente de nível intermediário me pergunte quanto tempo levará algo e, quando eu der uma estimativa, eles acham que é muito alto. Se for um gerente mais técnico ou outro desenvolvedor, eles geralmente já terão em mente uma estimativa própria e começarão a tentar implementá-la à sua maneira, porque acham que podem fazê-lo mais rapidamente.
Há uma tendência, no entanto, em que os outros desenvolvedores acabaram gastando muito mais tempo do que os citados. Eles terão metade do orçamento e perceberão que há alguma necessidade comercial que seu plano de implementação não pode atender adequadamente. Mais vezes do que não, meu plano teria abordado essa necessidade, mas foi descartado como um recurso " Você não vai precisar ".
Pior ainda, quando atingem esta parede, geralmente vêm a mim para ajudá-los a sair do canto em que se pintaram, mas há apenas tantas horas no meu dia.
Melhor caso : essas interrupções cortam o tempo que eu aloquei para o meu próprio trabalho de desenvolvimento, resultando em atraso em outros projetos ou em que eu precise trabalhar horas extras porque sou "o único que pode executar o X".
Na pior das hipóteses : acabo tendo que assumir a tarefa / projeto como meu, e a essa altura não resta tempo no orçamento para fazê-lo "do meu jeito". Eu tenho que tentar terminar o que eles começaram da maneira que começaram, para que "a empresa não perca mais dinheiro". Isso sempre volta a me morder, porque então se torna "meu" código hacky, e quando ele quebra as pessoas me perguntam por que ele foi criado do jeito que era (afinal, eles não têm idéia de quem realmente o criou.)
Portanto, minha pergunta é : como posso ajudar esses colegas a entender quando as coisas não são tão simples quanto imaginam e precisam reavaliar sua compreensão das necessidades do cliente?
Diferentemente dessa pergunta semelhante sobre convencer a gerência a lidar com a dívida técnica [existente] , minha pergunta busca estratégias para ajudar a equipe a realizar [proativamente] antes de começar a incorrer em dívida técnica, na tentativa de impedir que isso aconteça no início. Essas duas coisas andam de mãos dadas, mas são distintamente diferentes em minha mente. As respostas da outra pergunta sugerem a adição de tempo de refatoração nas estimativas para recursos futuros. Isso nunca funcionará se outros desenvolvedores (e, portanto, gerentes) sempre pensarem que o recurso futuro levará menos tempo do que realmente será, e não posso convencê-los de que minha estimativa é mais realista.