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.
Compreender 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.
As 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”.
|
GO TO FULL VERSION