As técnicas gerais são um pouco de senso comum, o importante é saber que elas não requerem muita experiência técnica.
O ponto de partida do planejamento é identificar o problema exato que precisa ser resolvido e ter um requisito claro e inequívoco. Se você não tiver isso, suas estimativas estarão incorretas. Ter isso documentado em algum tipo de especificação de recurso antes que alguém comece a escrever o código significa que todas as perguntas que precisam ser feitas serão feitas antes do início da codificação. Este é um economizador de tempo surpreendentemente eficaz. Voltar e esclarecer os requisitos interrompe o fluxo de alguém como programador e esperar respostas pode bloquear o progresso.
Depois de identificar o requisito, você precisa identificar as tarefas de trabalho envolvidas na sua resolução. Este é um exercício clássico de dividir e conquistar - qualquer tarefa que possa ser mais detalhada precisa ser mais detalhada.
Em uma equipe maior, você pode usar o poker de estimativa para obter uma estimativa com base na experiência de todos os envolvidos. Isso não funciona tão bem em uma equipe menor, mas ainda é útil obter uma estimativa independente de seus desenvolvedores e talvez incluir uma de você também - sua falta de conhecimento específico pode ser útil aqui, porque, para explicar a você o que Se a tarefa envolver da perspectiva deles, a equipe de desenvolvimento provavelmente entenderá melhor o problema.
Com uma equipe menor, pode ajudar a obter uma estimativa do melhor / esperado / pior caso para cada tarefa, o que fornece um intervalo de valores, mas se você estiver recebendo muitas estimativas de excesso, poderá se inclinar para o pior caso até seus desenvolvedores Aprenda a estimar com mais precisão.
Em uma pequena loja, os desenvolvedores geralmente acabam dobrando como administradores de sistemas, equipe de suporte e até testadores (embora de todas as coisas que eles poderiam estar fazendo, o teste é o que você deve evitar a todo custo), por isso é necessário prestar contas. Descubra quanto tempo seus desenvolvedores realmente gastam trabalhando em novos recursos e leve isso em consideração em suas estimativas. Se uma tarefa for estimada em 2 dias, mas seus desenvolvedores só puderem trabalhar no novo desenvolvimento 60% das vezes, você precisará de 4 dias para concluir. Você também pode ajudar com isso, controlando o pipeline de outras tarefas que eles precisam executar, para que tarefas não urgentes de administrador ou suporte possam ser agrupadas um pouco em vez de serem tratadas ad-hoc. Muitos programadores (certamente me incluindo neste) não são grandes gerentes de tempo, então qualquer coisa que você possa fazer para ajudar nesse sentido ajudará. A tarefa única é sempre mais fácil para os programadores do que a tarefa múltipla. Bloquear o tempo durante o dia também pode ajudar com isso.
Mantenha um registro - sempre que tiver uma sessão de planejamento, registre as estimativas e os valores reais. Em seguida, você pode usá-lo a) como um guia de quanto inflar suas estimativas durante o planejamento eb) para ajudá-los a refinar suas habilidades de estimativa. No final de cada iteração (ou qualquer equivalente que você tenha), toda a equipe deve revisar o trabalho realizado e descobrir por que demorou mais do que o esperado para que isso possa ser incorporado em estimativas futuras. Isso precisa ser uma tarefa sem culpa - você parece ter a atitude certa aqui, mas essa resposta pode demorar um pouco, então eu farei a observação. Se alguém disser "eu cometi um erro aqui", você pode transformar isso em "o que você poderia ter feito melhor", mas dizer às pessoas que elas eram lentas demais ou entendiam errado as coisas só pioraria as coisas.
Não conheço nenhuma bala de prata para esse tipo de problema, mas o maior fator é a comunicação - o que é realmente mais fácil com uma equipe menor - e o uso de feedback para refinar suas habilidades coletivas.