JavaRush /Blogue Java /Random-PT /Tudo o que você precisa saber sobre metodologias de desen...

Tudo o que você precisa saber sobre metodologias de desenvolvimento de software: tendências, princípios e armadilhas para iniciantes

Publicado no grupo Random-PT
O desenvolvimento de software é um processo de negócios complexo. Isso significa que a TI precisa falar a linguagem da otimização, do planejamento e do cálculo. Tudo o que você precisa saber sobre metodologias de desenvolvimento de software: tendências, princípios e armadilhas para iniciantes - 1Compreender os conceitos de gerenciamento oferece uma grande vantagem tanto para empregadores quanto para desenvolvedores e ajuda a levar a colaboração para o próximo nível.

Nota para iniciantes: modelos, metodologias e confusão geral

Para começar, um esclarecimento importante: existem modelos separados para desenvolvimento de software e metodologias separadas para esse mesmo desenvolvimento. Os modelos prevêem o comportamento futuro de um sistema. Metodologias são necessárias para que o sistema funcione da maneira que precisa. Confundir modelos e metodologias de desenvolvimento de software é tarefa sagrada de todo iniciante em TI, portanto isso não é considerado um erro grosseiro. E ainda assim, os modelos são o clássico Cascata Cascata , com sua linearidade, definição clara de metas para cada etapa e controle rígido de prazos. Os modelos são Espirais , com foco na identificação precoce e mitigação dos riscos do projeto. O desenvolvimento em espiral começa em pequena escala, primeiro resolvendo problemas locais e depois problemas mais complexos. O modelo final é o IID , que divide o ciclo de vida do projeto em uma sequência de iterações, cada uma delas semelhante a um “miniprojeto”. Em geral, um modelo é algo que descreve o processo de desenvolvimento de software . Mas as metodologias são sistemas de controlo, avaliação e monitorização do trabalho nas tarefas atribuídas. As metodologias são a cenoura e o bastão do desenvolvimento moderno, necessárias para controlar todos os elos do processo de desenvolvimento. Eles são escolhidos com base na direção do projeto, no seu orçamento e no prazo do produto final. Além disso, as metodologias podem ser selecionadas com base no temperamento do gerente de projeto e de sua equipe. Mesmo com base na filosofia da empresa ou do cliente. Vejamos as metodologias mais populares.

1. Metodologia Scrum

Scrum é um método ágil de gerenciamento de projetos . É baseado em “sprints” - iterações curtas, estritamente limitadas no tempo (geralmente de 2 a 4 semanas). A duração das reuniões é reduzida ao mínimo, mas a sua frequência aumenta. Cada sprint consiste em uma lista de tarefas até o final da iteração, e cada uma delas tem seu próprio “peso”. Durante as reuniões, a equipe discute quem fez o quê, o que vai fazer e quais problemas existem. Scrum usa um diário de sprint para planejamento. Nessa abordagem, muitas vezes aparece na equipe um Scrum master, que estabelece o trabalho contínuo de toda a equipe, criando condições confortáveis ​​​​para isso. Ainda no projeto aparece o papel do Product Owner – o gerente de desenvolvimento, a pessoa que acompanha o produto e atua como principal elo entre a solicitação do cliente e o resultado da equipe.

Prós:

  • lançamento rápido do projeto com o menor orçamento possível;
  • acompanhamento diário do andamento da obra, demonstrações frequentes do projeto;
  • a capacidade de fazer alterações à medida que o projeto avança.

Desvantagens:

  • dificuldades na celebração de contratos por falta de orçamento fixo;
  • não trabalha com baixa qualificação da equipe, prazos de trabalho ou orçamento subestimados;
  • a capacidade de fazer alterações continuamente entre os sprints pode criar confusão.

Para quem é adequado:

Este sistema é adequado para projetos de até dez pessoas – independentes ou dentro de grandes empresas. Isto é conveniente se a equipa tiver muito trabalho e um longo ciclo de vida, o que a obriga a mudar e a adaptar-se às novas condições do mercado.

2. Metodologia Kanban

A característica mais importante do Kanban é a visualização do ciclo de vida do projeto . As colunas são criadas para concluir tarefas enviadas individualmente. As colunas são marcadas com marcadores como: A fazer, Em andamento, Revisão de código, Em teste, Concluído (os nomes das colunas, é claro, podem mudar). O objetivo de cada membro da equipe é reduzir o número de tarefas na primeira coluna. A abordagem Kanban é visual e ajuda você a entender onde está o problema. A estrutura Kanban não é determinada de forma definitiva e irrevogável: dependendo das especificidades do projeto, podem ser adicionadas colunas improvisadas. Por exemplo, algumas equipes utilizam um sistema no qual precisam definir critérios para a prontidão de uma tarefa antes de executá-la. Em seguida, duas colunas são adicionadas - especifique (especifique os parâmetros) e execute (mãos à obra).

Prós:

  • flexibilidade de planejamento. A equipe concentra-se apenas no trabalho atual, a prioridade da tarefa também é determinada;
  • visibilidade. Quando todos os intervenientes têm acesso aos dados, as questões globais são mais fáceis de perceber;
  • alto envolvimento no processo de desenvolvimento. A visualização do processo aumenta a auto-organização e o autocontrole.

Desvantagens:

  • não trabalha com equipes de mais de cinco pessoas;
  • não se destina ao planejamento de longo prazo;
  • não é adequado para trabalhar em equipe sem motivação. No Kanban não há prazos definidos para cada tarefa e a metodologia não prevê penalidades por atraso.

Para quem é adequado:

Kanban funciona muito bem em empresas onde a equipe está motivada para desenvolver e alcançar resultados. Como já é óbvio, uma equipe pequena. Talvez até uma divisão ou parte de uma equipe.

3. Metodologia RUP

A metodologia RUP utiliza um modelo de desenvolvimento iterativo. Ao final de cada iteração (que leva de 2 a 6 semanas), a equipe deve atingir as metas planejadas e ter uma versão temporária, mas funcional, do projeto. O RUP envolve a divisão do projeto em quatro fases , em cada uma das quais está sendo feito trabalho em uma nova geração do produto: a fase de iniciação do projeto, refinamento, construção e implementação. Ao final da fase, é inserido um marcador de conclusão da etapa (Marco do Projeto). O Marco do Projeto pode ser considerado o momento em que a equipe avalia os resultados alcançados. Como resultado, a metodologia implica que os recursos principais sejam lançados na primeira fase e acréscimos sejam adicionados nas fases subsequentes.

Prós:

  • permite-lhe fazer face às mudanças de tarefas provenientes tanto do cliente como das que surgem no decurso do trabalho;
  • garante a melhoria contínua do produto. Durante as iterações, o design pode ser examinado;
  • permite identificar e eliminar riscos nas fases iniciais da obra, bem como controlar eficazmente a qualidade do desenvolvimento.

Desvantagens:

  • um método bastante complexo e difícil de implementar com uma equipe ou empresa pequena;
  • dependência da capacidade dos especialistas para definir tarefas;
  • precisa de documentação excessiva de requisitos.

Para quem é adequado:

Grandes projetos com requisitos e riscos claramente definidos, quando o produto precisa ser lançado o mais rápido possível. Mesmo em detrimento da funcionalidade, para ocupar rapidamente o seu nicho e só então refinar as nuances.

Muitas metodologias, uma tendência

Além dos inegavelmente populares Scrum e Kanban, que se baseiam nos princípios de flexibilidade sob o nome geral de “Ágil” , bem como do tenaz RUP iterativo, as empresas trabalham com muitas variações de metodologias. Algumas pessoas preferem a programação extrema e a tomada de decisões mais rápidas e simples, algumas preferem o desenvolvimento orientado a testes e outras preferem o desenvolvimento rápido de aplicativos (RAD). Ao mesmo tempo, a tendência principal e incondicional é a utilização de diversas metodologias simultaneamente . Ou mesmo combinando modelos e metodologias em um sistema de controle único. Tudo o que você precisa saber sobre metodologias de desenvolvimento de software: tendências, princípios e armadilhas para iniciantes - 2As empresas modernas se esforçam para eliminar as barreiras burocráticas e criar uma atmosfera de trabalho em equipe geral dentro da organização, sem transferir responsabilidades entre departamentos e blocos. De acordo com o relatório Scrumaliance , 70% das empresas de TI utilizam Scrum. Entre eles estão gigantes como Google, Amazon, Salesforce, Microsoft, Adobe. Startups e projetos jovens são mais propensos ao Kanban, mas ele também é usado pela Toyota e, por exemplo, por jogadores da Wargaming. As empresas CIS mais modestas, Prom.ua, Bigl.ua, Kabanchik.ua, usam metodologias Scrum e Kanban simultaneamente, mas para tarefas diferentes. Scrum - como ferramenta de planejamento, Kanban - para monitorar o andamento dos trabalhos. Quanto ao RUP, é mais frequentemente praticado por empresas ocidentais com 50 a 200 funcionários e receitas de 1 a 10 milhões de dólares. Mas, ao mesmo tempo, a IBM mudou o RUP para se aproximar dos princípios Agile, lançando a metodologia OpenUP - “RUP, apenas ágil”. Essa mesma alardeada agilidade Agile agora governa o cenário de TI . Não é apenas uma moda passageira hoje em dia - ainda é inovador e realmente funciona em muitas grandes empresas. Agile é usado no Vale do Silício e é usado pelo Facebook e Uber.

Resultado final

Cada projeto possui sua própria metodologia de desenvolvimento de software, dependendo da equipe, financiamento, prazo e requisitos do cliente. Não existe uma tecnologia de gerenciamento universal: mesmo o Agile, extremamente popular, não pode fornecer a melhor abordagem para o processo de desenvolvimento. Portanto, a metodologia é escolhida com cuidado e, às vezes, até de forma fundamental. Tanto que você pode utilizá-lo para tirar conclusões sobre a própria empresa ou seus clientes. As metodologias são misturadas, complementadas com modelos e adaptadas à sua conveniência. Tanto que dão origem a novas abordagens. Embora no final o domínio da gestão permaneça nas mãos do Scrum e do Kanban, com inclusões inesperadas do modelo Waterfall ou RUP iterativo.
O que mais ler
Sites: Livros:
  • Andrew Stelman, Jennifer Greene: “Aprendizagem Ágil”;
  • Per Kroll, Bruce MacIsaac: “Agilidade e Disciplina Facilitadas: Práticas de OpenUP e RUP”;
  • Mike Cohn: Scrum. Desenvolvimento ágil";
  • Robert K. Martin: “Desenvolvimento rápido de software. Princípios, exemplos, prática”;
  • Markus Hammarberg, Joakim Sundén: “Kanban em Ação”;
  • A Jacobson, G. Booch, J. Rumbaugh: “Um Processo Unificado de Desenvolvimento de Software”.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION