Essa é uma boa pergunta. Responderei da perspectiva de alguém com 30 anos de experiência em uma década como gerente de projetos dedicado em todas as áreas, exceto no desenvolvimento de software, mas recentemente tropeçou na área de desenvolvimento de software sem querer. Independentemente da metodologia que está sendo usada em sua equipe e como ela é chamada, no final do dia, os projetos de desenvolvimento são os mesmos que qualquer outro no sentido comercial, de que os objetivos devem ser alcançados dentro de restrições concorrentes de tempo, orçamento e qualidade - - e enquanto os projetos são executados, o negócio continua a se mover e evoluir e tem uma boa chance de injetar mudanças em seu projeto. Portanto, é necessário definir e comprometer-se com objetivos e prazos e poder fornecer atualizações com frequência e quando solicitado. Eu não'
Dito isto, na minha experiência, o que torna as estimativas de tempo no desenvolvimento de software particularmente desafiador é que os projetos de desenvolvimento envolvem muitos territórios desconhecidos. A definição técnica de um "projeto", de acordo com o Conhecimento em Gerenciamento de Projetos do Project Management Institute, é que um projeto deve ser único. No entanto, a grande maioria dos "projetos" em TI são meras reexecuções de projetos e projetos criados anteriormente e livros de execução de implementação. No desenvolvimento de software, temos estruturas e vários padrões de design genéricos que reutilizam grande parte do desenvolvimento, mas ainda assim, o núcleo de cada projeto é completamente único.
Além disso, a maioria dos projetos de desenvolvimento envolve a integração com outros sistemas e a rapidez com que isso pode ser feito é um grande palpite. No momento, estou trabalhando em um projeto em que minhas estimativas de tempo originais se baseavam na suposição de que os 4 sistemas com os quais eu preciso interagir programaticamente teriam APIs, e não há nenhum. Além disso, um dos sistemas é hospedado em nuvem e minha organização possui políticas que proíbem o trabalho que está sendo realizado. Quem poderia ter previsto isso?
À medida que são feitas descobertas que colocam os prazos em risco, é importante comunicar bem por que o atraso surgiu, por que não poderia ser previsto etc.
Também já me disseram que o prazo dado não funcionaria e faria com que isso acontecesse muito "mais rápido". Outra variação está sendo dada uma carga de mudanças para injetar no desenvolvimento, sem também ter tempo adicional. Existe uma lei na física que diz que a matéria não pode ser criada ou destruída, e isso me vem à mente porque parece-me que o tempo também não pode ser criado do nada. A aceleração do desenvolvimento provavelmente terá um impacto negativo na qualidade do lançamento, na capacidade de suporte do produto e / ou na evolução futura do produto.
Solicitações sobre o cronograma devem ser respondidas em termos comerciais gerais. "Sim, estamos no caminho certo para cumprir os prazos comprometidos anteriormente, e não há problemas em preparação que ponham isso em risco". Solicitações para adicionar um escopo significativo sem mais tempo, ou simplesmente acelerar a entrega, devem ser alguma forma de "podemos fazer isso, mas todos sabemos que carregam riscos inerentemente de bugs, porque grande parte do tempo de desenvolvimento é feito para ser proativo, portanto para não introduzir bugs e também para testar de forma abrangente ". Quando eles respondem com "apenas teste mais rápido", obtém uma resposta que explica o teste de desenvolvimento não implica tempo ocioso e pode ser acelerado sem a introdução de algum risco de defeitos ausentes.
Em resumo, estou simplesmente sugerindo que todos os desenvolvedores - não apenas os líderes, o scrum master ou o gerente de projetos, estejam preparados para discutir suas tarefas em um contexto de negócios e ter discussões sobre a alteração dos parâmetros do projeto, tomando conhecimento das vantagens e desvantagens que resultaria.