Melhor metodologia de programação para cronograma muito rápido e poucos requisitos?[fechado]

StackOverflow https://stackoverflow.com/questions/250050

  •  05-07-2019
  •  | 
  •  

Pergunta

Qual é uma boa metodologia de programação para aplicativos customizados que precisam ser codificados muito rapidamente e muito customizados?Sei que a falta de requisitos é um problema, não importa o que aconteça.Além disso, como você convence a administração a mudar suas práticas?A próxima pergunta é como fazer com que as pessoas parem de escrever programas de arquivo único de 5.000 linhas?

Foi útil?

Solução

Há mais de uma pergunta que você faz.

  1. desenvolvimento rápido com 'pequenos' requisitos => hackear usando linguagem de script, assumindo que há requisitos pequenos ou poucos, em oposição a não haver requisitos estáveis ​​​​ou explícitos ainda, mas haverá muitos no futuro
  2. desenvolvimento rápido com toneladas de requisitos instáveis ​​ou implícitos => scrum, XP, etc.Foque na prototipagem para obter feedback do seu cliente sobre o que ele deseja o mais rápido possível
  3. Faça com que a gerência mude suas práticas => Deixe o projeto travar o mais rápido possível ;-) Sério, isso exige que você seja mais específico sobre o que deseja mudar.Sua milhagem depende, é claro, de quão dilbert é seu ambiente e de quão cínico você é em relação a realmente alcançar seus objetivos.
  4. Fazer com que as pessoas parem de escrever programas de 5 mil linhas em um único arquivo => Mostre-lhes de que forma isso é um problema para você, como seria igualmente fácil escrever programas melhor estruturados, mostre os benefícios que eles podem ter com isso também, e tentar chegar a um acordo mútuo sobre uma prática melhor.

Outras dicas

correr ... como o inferno

Scrum é bom usar nesses tipos de projetos. É ótimo fornecer uma maneira de convencer a gerência que você pode ter o projeto a tempo ou pode tê -lo com todos os recursos que deseja, mas não pode ter os dois.

Usar a força.

Mas sério, isso soa como um Marcha da morte. Fugir.

Como regra geral, você tem três componentes de um projeto, Tempo, Qualidade e Dinheiro.

Parece que seu cliente/chefe quer controlar o tempo ... e ele deve controlar mais um, o outro que você pode controlar.

Portanto, se ele quiser controlar tempo e qualidade, ele precisa pagar a você e/ou sua equipe mais dinheiro por todo o tempo extra que você vai dedicar. Se ele quiser controlar tempo e dinheiro, você poderá controlar a qualidade, que Nesse caso, será baixo.

O que sempre dizemos aos nossos clientes é que eles podem ter certo ou podem ter agora, mas Eles não podem ter agora!

Não acho que a metodologia seja muito importante ... o problema real é o momento.

Nada de novo aqui!

O que eu achei para funcionar muito bem é uma técnica RAD chamada Prototipagem evolutiva.

A melhor abordagem é implementar sua idéia do que o cliente deseja e depois apresentá -la a ele, obter seus comentários e adaptar sua implementação de acordo. Quando o cliente está finalmente satisfeito, sua implicação é feita. Agora vem a parte divertida: documente!

Eu não quis ser atrevido, mas parece que a maioria das pessoas ficou confundida com a resposta que você procura. A maioria das respostas parece estar em torno das metedologias de gerenciamento de projetos, em vez de métodos de programação.

Dada a sua situação, acho que os métodos do tipo scrum e ágil (como o Open Up) funcionariam bem com a abordagem de gerenciamento de projetos. Na verdade, eu ficaria com apenas scrum, pois não parece que há muito em termos de estrutura em torno do seu projeto. Ele manterá as coisas boas e magras e deve concentrar a atenção nas tarefas em questão. Você só precisa se certificar de seguir algumas regras básicas de scrum que devem identificar suas tarefas, estimar suas tarefas, descrever suas tarefas, planejar suas iterações e, se possível, execute uma retrospectiva de sprint. Se você estiver realmente apertado na hora certa, tenho certeza de que você pode abandonar isso.

Para responder à sua pergunta real (como eu vejo de qualquer maneira), sugiro que você adote uma abordagem orientada ao domínio usando CRC (Cmoça REsponsibiltiy COllaborator) cartões como seu mecanismo de design. Suponho que seu aplicativo tenha algum domínio limitado em que exista, ou seja, contabilidade, gerenciamento de ações etc. Tente decompor seu domínio nos objetos que existem no domínio, ou seja, os objetos do mundo real como "item de estoque", "fatura" , "entrega" etc., para cada um desses objetos, crie um cartão CRC, onde você define seu nome, suas responsabilidades e outras classes com as quais ele colabora para executar suas responsabilidades. Em seguida, você escreve aulas reais para representar esses cartões CRC em seu aplicativo.

Evite criar qualquer classe com um sufixo de gerente, ou cooridinador ou qualquer coisa nesse sentido. O que você deve acabar é um conjunto de objetos que representam o domínio que você pode modificar facilmente sem precisar de refatoração maciça para realizar qualquer tipo de atividade que aconteça nesse domínio. Você pode adaptar facilmente uma solução construída como essa com a alteração dos requisitos, pois os objetos de domínio devem permanecer estáticos, a menos que você esteja adicionando mais objetos ou o seu domínio amplia.

Espero que isso seja útil para você.

A maneira mais rápida possível de fazer qualquer coisa semelhante ao desenvolvimento personalizado razoável está com você e o cliente desenvolvendo -o juntos. O feedback é instantâneo e eles podem ver exatamente o que está envolvido. Caso contrário, você está apenas negociando velocidade por sua atenção mais conveniente. Além disso, como eles trabalharam diretamente com você, eles podem defendê -lo para sua gerência.

No entanto, sem mais contexto, tenho que concordar com os outros e dizer que provavelmente não é a situação de construção de carreira.

Se "falta de requisitos" é realmente o fato, você nem deve iniciar um projeto. Eu acredito que o que você quer dizer é "pouco claro ou incerto dos requisitos". Se esse é o seu caso, o processo ágil é o que você deve considerar. Xp, scrum ou cristal. Scrum é sem dúvida o processo ágil mais leve.

A gerência pode ter uma mente diferente dos engenheiros, mas você não pode dizer que a gerência está errada e suas práticas devem ser alteradas. Apenas comunique mais para melhorar a compreensão e abordar conflitos.

Para impedir que as pessoas escrevam código ilegível, a melhor maneira de treinar as pessoas para escrever código de maneira concisa. Param de programação e revisão contínua de código podem ser uma boa solução.

Scrum seria meu palpite, mas tenha em mente que o scrum requer membros da equipe muito disciplinados.Adquira o hábito de documentar quais requisitos você recebe e mantê-los em um local para que todos, inclusive a gerência, possam acessá-los.Por fim, encontre uma forma razoável de prever tarefas e mantenha-a diante da gestão para que eles conheçam as prioridades atuais de todos na equipe.Estive em um ambiente muito semelhante no ano passado e infelizmente não descobri uma solução mágica.

Escrever programas de 5.000 linhas é um sinal de pura preguiça.Recentemente, dispensamos um cara porque primeiro ele começou com classes Java de 5.000 linhas e depois passou a usar instruções try/catch para inicializar variáveis ​​em um construtor (não pergunte).Encontre uma maneira de motivar o cara que está escrevendo os programas de 5.000 linhas com algumas críticas construtivas.Parece que é uma questão de gerenciamento no centro disso.

Scrum ou XP funciona muito bem nessas circunstâncias; Se você puder debater algum conjunto mínimo de requisitos para um sistema "básico" e desenvolver isso, você pode ser reativo ao fato de que, mesmo quando os requisitos iniciais são fornecidos, eles quase sempre estão errados.

As pessoas que escrevem 5000 programas de arquivos únicos de linha são programadores indisciplinados e maus. Como o XP e o Scrum exigem que a disciplina faça um sistema que possa ser mantido e construído, não tenho certeza de como proceder se é com isso que você precisa trabalhar. Meu acho Seria pelo menos tentar convencê -los a erro de seus caminhos.

Ok Scrum parece interessante ... pode ser implementado quando os escritórios estão em diferentes locais?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top