Quais são os maiores gargalos no desenvolvimento de grandes projetos? [fechadas]


11

Digamos que minha empresa desenvolvesse uma réplica do MS Word (apenas como exemplo). Qual seria o gargalo do processo de desenvolvimento, supondo que se tenha dinheiro infinito disponível e uma organização como a Microsoft? Em outras palavras, quais são os obstáculos mais comuns para o desenvolvimento rápido desse software? Vamos supor que todas as especificações estejam em vigor e a organização esteja funcionando perfeitamente, portanto, focamos apenas no desenvolvimento de software até que o produto esteja pronto para ser enviado. Algumas alternativas podem ser: - Escrever o código - Escrever testes - Testar manualmente o produto final - Reescrever o código devido ao mau design em primeiro lugar - Projetar o código - Revisão do código feita por desenvolvedores experientes - Projetar GUI - Redesenhar a GUI com base em alfa / feedback do usuário beta - Processando feedback dos usuários - Aguardando feedback do usuário alfa / beta

Por favor, use referências em sua resposta ou declare sua experiência sobre o assunto.


4
Tem bons desenvolvedores?

@ Thorbjørn Ravn Andersen Digamos o mesmo mix de bons e ruins que a Microsoft.
David

1
Isso está severamente subespecificado e não pode ser respondido.

Respostas:


3

Na minha experiência, o principal "gargalo" é o processo de aprendizado . Quando sua empresa hipotética se propõe a desenvolver o próximo Microsoft Word, existe uma enorme lacuna entre o que você precisa saber e o que realmente sabe. O tamanho da lacuna depende de muitos fatores, pode estar na tecnologia ou no domínio. Você abordou alguns desses problemas na sua pergunta, por exemplo, design, feedback do usuário etc. O Microsoft Word está em desenvolvimento há mais de 30 anos. Portanto, entre a história, o código, as ferramentas e as pessoas, há muito conhecimento por trás disso.

Portanto, se eu tentasse fazer isso, tentaria contratar as melhores pessoas com experiência no domínio, técnica e de gerenciamento. Experimente e leia toda a literatura disponível no campo. Eu também tentaria obter o feedback do cliente o mais rápido possível. O maior problema são as coisas críticas que você não sabe e pode descobrir muito tarde no seu processo.

A propósito, isso não é exclusivo de projetos de software. É verdade para todos os projetos de grande escala em que você está tentando fazer algo novo. Por exemplo, veja o Boeing Dreamliner. Existem muitos livros escritos sobre isso. O Mês do Homem Mítico é um.


37

Vamos supor que todas as especificações estejam em vigor e a organização esteja funcionando perfeitamente.

Você presumiu que os dois maiores "gargalos" nos processos de desenvolvimento de software não existem (pelas minhas experiências pessoais).


4
++ Sim. E a suposição de que, se você tiver especificações, elas não serão alteradas. É preciso que desenvolvedores especializados saibam como antecipar quais mudanças ainda não foram solicitadas e como lidar com elas quando o fazem.
91111 Mike On-line

Eu sei que esses são enormes obstáculos, mas não estou perguntando sobre eles, como eu já sabia sobre eles e eles são óbvios.
David David

8

Mesmo em seu mundo hipotético e perfeito, há alguns problemas que posso ver:

Provavelmente o mais importante, do meu ponto de vista, é lidar com os clientes. Na minha própria experiência, a empresa precisa lidar com clientes que frequentemente tentam alterar o projeto enquanto ele está sendo desenvolvido. Em alguns casos, eles tentaram usar uma solicitação de mudança como uma correção de bug para evitar pagar qualquer dinheiro. Isso pode levar a muita burocracia que pode atrasar um projeto ou levar a hacks rápidos no código, que se transforma em dívida técnica mais adiante. Eu li e ouvi falar de equipes que lidam com esses problemas com a facilidade de respirar, e com certeza gostaria de estar em um deles :)

A segunda questão é a falta de um modelo de domínio adequado. Eric Evans fornece uma boa cobertura sobre isso em seu livro: Domain Driven Design . A falta de um bom modelo de domínio leva a alguns dos problemas destacados na resposta de Glenn, como tentar localizar um bug. Sem um modelo de domínio limpo, pode ser demorado percorrer / depurar o código para isolar e corrigir um problema. Eu argumentaria que um bom modelo de domínio facilita muito a vida e a depuração, ainda mais ao manter e estender o aplicativo mais adiante.

Os problemas que mencionei acima não produzem problemas imediatos, mas se você precisar manter esse produto por um longo período, eles poderão voltar para assombrar você e sua equipe.


Eu acho que essa é uma excelente resposta!
David David

4

Não sei ao certo o que você quer dizer com "a organização está funcionando perfeitamente", mas mesmo em uma organização fantástica, o maior gargalo em qualquer projeto considerável é comunicação. O Mythical Man Month mostra como, à medida que a equipe do projeto cresce, as combinações de comunicação explodem, quase garantindo erros e informações perdidas.


2

Pelo que vi até agora no trabalho, uma grande fonte de gargalo vem simplesmente dos bugs e do erro humano que os criou. Pense no tempo que leva para depurar o código, encontre uma correção para o problema e teste novamente a nova solução. Agora imagine se essa correção causou outro bug sutil. Pode ser um grande fluxo de dor e, assim, retarda o desenvolvimento geral.


Esta é uma excelente resposta. Dentro dos bugs, o que você diria ser o maior gargalo, diferente de perguntar sobre o maior consumidor de tempo do desenvolvedor. Identificando o bug, encontrando uma correção, testando novamente ou algo mais.
David David

1
O novo teste não é um problema. O gargalo real é tipicamente encontrar um bug na minha opinião, mas encontrar uma correção adequada pode levar a mesma quantidade de tempo.

2

Eu acho que Brandon Moretz tem a melhor resposta. Mas quero acrescentar que não é tão difícil obter a primeira versão de um projeto grande. Eu pessoalmente nunca deixei de fazer isso.

O que não consegui fazer foi criar a primeira versão de forma que a segunda, terceira versão etc e / ou correções de bugs e / ou aprimoramentos menores de recursos também possam ser entregues em tempo hábil.


0

Sim, eu vou concordar com as coisas acima e deve seguir os modelos de software. Conforme meu conhecimento, as principais coisas são:

1. Gerenciamento de tempo 2. Eficiência da equipe e gerenciamento de equipe 3.Coordenação em equipe e 4. Melhor entendimento com o cliente

Se tivermos os quatro acima, podemos mudar para um novo mundo com sucesso e muita melhoria em termos de personalidade e software. Isso leva a um bom relacionamento com o cliente e o cliente dará os pedidos sem pensar em nós.


0

Defeitos latentes, em requisitos, design, implementação, implantação .... Como em coisas que estão quebradas, mas você ainda precisa encontrá-las. Imagine o desenvolvimento de software onde cada novo bug foi causado pelas alterações mais recentes.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.