Em um mundo ideal, é preferível cumprir o prazo com menos erros. Mas a partir da sua experiência, que é mais preferível / aceitável:
- Cumpra o prazo, mas tem vários bugs porque o desenvolvedor corre para as coisas
- Menos bugs, mas não cumprem o prazo porque o desenvolvedor é muito rigoroso ao escrever o código
project-management
Joshua Partogi
fonte
fonte
Respostas:
A resposta a essa pergunta depende muito dos objetivos de negócios e do cliente.
Empresa :
Se você estiver negociando com um cliente de nível corporativo que esteja bem estabelecido no mercado, eles serão menos flexíveis e não poderão se adaptar às mudanças tão rapidamente. Portanto, a estabilidade é um requisito absoluto na maioria dos casos. Há exceções para pesquisa e desenvolvimento e inserção de novas verticais. Finalizações mais rápidas primeiro em alguns casos.
Esses tipos de clientes geralmente entendem que um bom software leva tempo para se desenvolver e trabalharão com você para tentar cumprir as metas.
Startups :
Para uma nova inicialização, as regras são drasticamente diferentes. Como uma startup, você precisa saber imediatamente se o produto que você está construindo realmente atenderá a uma necessidade, como previsto em sua pesquisa de marketing. Para uma startup, lançar um protótipo no mercado o mais rápido possível pode gerar muitos comentários valiosos sobre a direção que o produto deve seguir.
Ele também pode estabelecer você como líder de mercado, ajudando você a ganhar uma participação de mercado valiosa em uma nova vertical antes que fique saturada com a concorrência.
Como as startups são pequenas, flexíveis e podem se adaptar rapidamente às mudanças, esse modelo funciona melhor para elas.
Em resumo, existem outros fatores a serem considerados, mas a idéia principal é que cada projeto seja diferente e tenha diferentes objetivos de qualidade e tempo para o mercado. Cabe à liderança executiva determinar uma estratégia de negócios eficaz que inclua uma análise completa dos custos de oportunidade da escolha de um método em detrimento de outro.
fonte
ou ... 3. Recorte funcionalidades não essenciais
Às vezes, devido aos doces técnicos ou aos recursos solicitados pelo cliente, os prazos são difíceis de cumprir e, inerentemente, ocorre uma quantidade maior de bugs. São os princípios KISS e YAGNI aplicados.
Citando este livro , "Retrabalho", o essencial / núcleo / epicentro do seu software é o que a empresa precisa para funcionar, assim como um carrinho de cachorro-quente pode ser um carrinho de cachorro-quente sem coberturas, o que você não pode cortar é os cachorros-quentes.
Renegociar
Uma das coisas mais difíceis de aprender é como manter os clientes felizes e, na minha experiência, isso pode ser realizado mais facilmente com iterações menores de produtos.
Às vezes, os prazos exigem o software que trabalha com alto nível de produção desde o primeiro dia. Gerentes / clientes nem sempre sabem (na maioria das vezes) o que realmente precisam para o software. Portanto, tente reduzir funcionalidades não essenciais e manter a qualidade. No final, depende de quão crítico será o ambiente de produção, mas tente cortar recursos extras e oferecer qualidade. Citando novamente "Retrabalho":
Fazer depois também significa fazer melhor
... e também cumprir prazos com menos erros
fonte
Bem, você pode enquadrar da seguinte maneira: deseja pagar pela qualidade agora ou mais tarde? Em primeiro lugar, dedique algum tempo para fazê-lo bem ou dedique algum tempo corrigindo todos os problemas. Eu argumentaria que essa fase de correção de bug pós-desenvolvimento de recursos pode ser mais cara, pois também pode ser mais arriscada e propensa a soluções hacky, já que o código existente já está em vigor e provavelmente não possui qualidade suficiente.
fonte
Cumpra o prazo e apresente uma lista de problemas conhecidos .
As pessoas odeiam encontrar bugs, mas se elas foram avisadas com antecedência, elas tendem a ser muito mais brandas.
fonte
Isso depende inteiramente da situação ....
Há muitos fatores a serem considerados:
Em suma, não há resposta em preto e branco para isso. Por exemplo: Para algo como um sistema incorporado que é difícil e caro de implantar em dispositivos em campo, pode ser melhor tentar esperar (renegociar prazos, se possível) e liberá-lo da maneira mais livre possível de erros. Por outro lado, para algo como um grande sistema de portal da Web (escrito como um aplicativo da Web) que pode ser facilmente atualizado a qualquer momento, lançando correções à medida que são lançadas, pode fazer mais sentido lançar uma versão inicialmente desonesta e em seguida, remova os problemas (e a funcionalidade da caixa de borda) à medida que você chegar a ele.
Mas, no final das contas, na minha experiência, isso tem sido mais uma decisão de negócios do que uma decisão tecnológica. Se você estiver em uma situação em que perder o prazo é um grande problema, enquanto ter uma versão inicial de buggy não é (ou vice-versa) - convém ponderar essas coisas ao tomar a decisão.
NOTA: Como programador, é claro que prefiro a ideia de polir o produto o máximo possível antes de liberá-lo (diabos, prefiro nunca ter prazos;)). Mas realisticamente, isso não é possível na vida real. Freqüentemente, uma versão inicial simplificada é uma boa solução intermediária.
fonte
Eu já vi muitos PMs com medo de dizer ao cliente que não podemos cumprir o cronograma e insistir em enviar com erros conhecidos. Posso lhe dizer que toda vez que eles informam ao cliente, ele geralmente está muito mais interessado em menos bugs e em um prazo final alterado. Eu garanto que eles se lembrarão dos bugs mais do que o prazo perdido, a menos que o prazo seja absolutamente inalterável (como o início da temporada de declaração de impostos quando você estiver fazendo um software tributário) ou afetará algumas outras coisas que serão muito caras de mudar (IMHO 98% de todos os prazos não atendem a esses critérios).
fonte
Eu acho que depende do bug. Deseja atrasar um lançamento para corrigir um erro em que o aplicativo falha no minuto em que é iniciado em qualquer computador? Sim definitivamente. Você precisa corrigir um erro que ocorre apenas no Windows ME enquanto há lua cheia? Provavelmente isso pode esperar.
Se for um bug crítico, é preferível executar o número 2 sem o conhecimento prévio. A razão é que custa exponencialmente mais para corrigir se você precisar enviá-lo em uma atualização.
Para atualizações menos críticas, você pode lançar uma atualização em pacote que reduz esse custo em algum grau.
Em caso de dúvida, digo que você segue a segunda posição, mas não ficaria surpreso ao receber uma resposta da gerência com essa abordagem. Suspeito que os gerentes tendem a ser julgados mais pelo bom desempenho em cumprir os prazos do que por não causar atualizações críticas desnecessárias.
fonte
Nem. Por que não apresentar qualidade com seu código? Ser capaz de cumprir prazos com código de qualidade? Você pode oferecer menos recursos, mas se a qualidade for incorporada ao processo, poderá obter os dois.
O que acontece agora é que você precisará de um líder de equipe ou gerente de desenvolvimento habilitado que possa dar um empurrão nos negócios e conversar sobre duas coisas:
Depois, você pode se concentrar nos recursos de maior valor e destacá-los com excelência.
fonte
Bem, no que diz respeito aos testes, nunca termina. acabou, mas nunca terminou.
Vá para o lançamento com erros com severidade e mais prioridade resolvida.
fonte
Cumprir o prazo com muitos erros torna você pobre no setor e o cliente não volta mais. Você pode conversar com o cliente para obter o atraso em dois ou três dias.
fonte
Se você olhar para isso de um usuário final, eu ficaria muito desapontado se alguém prometesse fazer algo para segunda-feira e quando tentei usá-lo, ele não funcionaria, ou seria tudo de buggy.
Mas se você olhar para o lado "processual", significa que o aplicativo precisa de mais testes e faz parte da vida natural do software.
Minha melhor abordagem é tentar fazer as coisas funcionarem da maneira que elas deveriam funcionar (se for um módulo importante, não preste atenção aos detalhes, o login no formulário deve fazer login, mas qualquer pessoa será picada se você não exibir notificações posteriormente).
fonte
Esta é uma pergunta que somente você pode responder. Depende do tipo de produto, quem é o cliente, o que ele exige, etc. Não há como dar uma resposta simples 'a ou b'. É completamente dependente da situação.
Mas lembrarei que o custo de corrigir um bug após o lançamento é muito maior do que corrigi-lo antes do lançamento. Considere isso ao decidir se deve ou não esperar até o lançamento para corrigir um erro, pois você estará gastando mais tempo / esforço / dinheiro com isso.
fonte