top of page

Métodos ágeis para um bom desempenho no desenvolvimento.

Atualizado: 22 de set. de 2018





Quais são os principais tipos de métodos ágeis?

ESCRITO POR PROJECT BUILDER EM 30/05/2017. POSTADO EM PROJETOS.

Diante dos desafios de um mundo corporativo, marcado pela alta tecnologia e competitividade, o desenvolvimento de produtos e serviços de software precisou acompanhar esse ritmo. Para isso, surgiram os chamados métodos ágeis.

Os métodos ágeis (do inglês Agile Software Development), como o próprio nome diz, envolve um conjunto de metodologias que serve para acelerar o ritmo dos processos de desenvolvimento de software.

Com sua origem datada em meados dos anos 1990, o conceito de Agile não demorou a ser difundido entre os especialistas, o que resultou na criação de diferentes modelos que dão suporte à gestão de projetos.

A razão pela qual sugiram os métodos ágeis é fazer frente aos modelos tradicionais de desenvolvimento, apontados como lentos e burocráticos, com o objetivo de reduzir o ciclo de desenvolvimento em semanas ou meses — nos modelos “conservadores”, esse ciclo pode durar anos.

Vale destacar que o termo “projetos”, no universo do desenvolvimento de software, de acordo com o PMBoK (Project Management Body of Knowledge), significa “esforço temporário empreendido para criar um produto, serviço ou resultado exclusivo”.

Portanto, partindo do princípio de que os projetos têm início e fim definidos, e que eles são planejados e desenvolvidos em etapas, algumas das principais características — além de agilidade — dos métodos ágeis são:

  • processo incremental (quase uma antítese do tradicional modelo de cascata);

  • colaboração do cliente;

  • adaptabilidade (cada projeto está sujeito a passar por várias modificações);

  • simplicidade;

  • feedback constante;

  • equipes pequenas (mas com alto nível técnico) etc.

Em 2001 foi lançado o Manifesto Ágil, onde o conceito é explicado detidamente e os seus 12 princípios estão disponibilizados — recomendamos que confira o texto oficial para melhor compreender o Agile.

Após essa breve introdução sobre os métodos ágeis, daremos prosseguimento ao conteúdo apresentando:

  • os benefícios do Agile para os clientes;

  • as principais vantagens para a equipe;

  • os principais tipos de métodos ágeis.

Vantagens dos métodos ágeis para os clientes

Agilidade

O tempo de entrega do produto é um dos maiores benefícios dos métodos ágeis na perspectiva do cliente. O ciclo extremamente reduzido — em comparação aos outros métodos — é um atrativo que faz toda a diferença.

Imaginemos, por exemplo, como o consumidor, potencialmente interessado em adquirir soluções desenvolvidas “na medida”, atendendo a todas as suas necessidades, receberia a notícia de que a previsão de entrega é de 10 meses.

Ou seja, durante todo esse tempo a empresa terá que se conformar em ficar estagnada, sendo atropelada pela concorrência, adquirindo produtos de software prontos para mitigar os efeitos negativos do atraso.

Colocando-se no lugar do cliente, qual seria a sua resposta? Valeria a pena aceitar que o processo é demorado, custa caro e é dificultoso em termos de implementação?

Esse panorama muda completamente quando o desenvolvedor utiliza métodos ágeis, pois o prazo de entrega é consideravelmente reduzido e, de quebra, se baseia em várias entregas, em vez de uma.

Múltiplas entregas

Dando continuidade ao tema, as múltiplas entregas que fazem parte do ciclo ágil permitem que o cliente adquira expectativas de como o software funcionará, muito antes de chegar à versão final.

Outro destaque é que a equipe pode desenvolver uma versão do software a ser utilizada pelo cliente, antecipando o desenvolvimento das partes funcionais do programa, assegurando que ele veja um retorno de investimento (ROI, return on investment) quase imediato.

Por fim, as eventuais falhas apresentadas pelo software podem ser detectadas pelo cliente e, assim, corrigidas com antecedência pelos desenvolvedores.

Participação no projeto

Além da entrega contínua de versões do software, as metodologias ágeis integram o consumidor ao projeto, de modo que as suas solicitações e feedbacks sejam prontamente assimilados pela equipe.

O diferencial dessa intensa participação do cliente está, acima de tudo, na transparência agregada ao ciclo do projeto. Isto é, o cliente fica a par do que está acontecendo, dos recursos que estão sendo desenvolvidos no momento etc.

Em adição a isso, o cliente tem a oportunidade de estimar as novas funcionalidades em cada fase do projeto. Portanto, sempre que uma nova fase se iniciar, o cliente terá uma expectativa bastante realista dos recursos que receberá.

Customização do produto

Por último, está a possibilidade de customizar o produto de acordo com as necessidades e preferências porque os métodos ágeis têm alta adaptabilidade.

Suponha que, devido a mudanças em alguns processos do negócio, o cliente precise solicitar modificações — tanto sutis quanto radicais — de última hora, como a exclusão de recursos recentemente adicionados e a inclusão de outros até então não cogitáveis.

Pela excelência técnica e conhecimento das práticas envolvidas nas metodologias, a equipe estará pronta para atender às solicitações e, então, entregar um produto em conformidade com as novas especificações.

Vantagens dos métodos ágeis para a equipe

Entregas rápidas e frequentes

Logicamente, esse é um benefício que abrange tanto as perspectivas do cliente quanto da equipe. No caso da empresa, a maior vantagem é ter que gerenciar equipes menores e com profissionais experientes, o que facilita todo o processo.

Na prática, as equipes são subdivididas de maneira que cada uma se responsabilize por determinada funcionalidade do produto, ou seja, cada grupo tem suas metas e responsabilidades que, ao fim de cada estágio, se integram às demais partes.

Isso traz vantagens em dois aspectos: o foco e a qualidade final de cada entrega.

A primeira delas é porque, simplesmente, os desenvolvedores se concentram numa quantidade limitada de atribuições — inclusive, é o que ajuda a manter o pessoal motivado.

Em adição ao foco vem a qualidade do produto porque, com menos atribuições, os desenvolvedores têm mais tempo para aplicarem a excelência técnica no código e no design.

Qualidade do produto

Em métodos tradicionais, o cliente somente é ouvido quando o produto está finalizado, correndo sérios riscos de apontar erros logo na implementação e, também, de contrariar boa parte das suas menores exigências.

Os métodos ágeis, por outro lado, consistem nas entregas em escala semanal ou mensal, integrando o cliente ao processo de desenvolvimento — no caso, prestando auxílio por meio de feedbacks.

Isso faz notável diferença para a qualidade final do software, visto que todas as falhas e modificações foram realizadas muito antes do último lançamento. Assim, a expectativa do cliente tende a ser atendida com incomparável eficiência.

Previsão de cronograma e custos

Conforme veremos no decorrer do artigo, os métodos ágeis têm como parte do processo os Sprints, mas, para facilitar a explicação, vamos nos adiantar sobre o seu conceito.

Basicamente, o Sprint nada mais é que uma reunião formada pelos envolvidos no projeto. Em cada Sprint é estabelecido um conjunto de atividades a serem executadas em determinado espaço de tempo (Time Box).

Sendo assim, como em cada Sprint é definido o que será feito, é possível prever o tempo que o time levará para entregar o release, bem como planejar um cronograma para otimizar a agilidade e estimar o custo de cada recurso adicionado.

Desse modo, a equipe define junto ao cliente quais recursos devem ser priorizados. A partir dos detalhes do Sprint, as duas partes analisam se haverá necessidade de iterações extras e quantas.

Mitigação de riscos

Levando em conta a participação do cliente no processo e os constantes testes de software feitos pela equipe, os bugs e falhas que surgem durante o projeto são rapidamente identificados, seja pelo loop de feedbacks, seja pelos resultados dos testes.

Essa vantagem muito se deve à liberdade que têm os projetos das numerosas restrições impostas pelo planejamento. Supondo que o modelo de cascata fosse seguido, os bugs seriam detectados tardiamente e, sem dúvida, levariam mais tempo para serem corrigidos.

Principais tipos de métodos ágeis

Daqui em diante abordaremos brevemente os principais métodos ágeis aos quais a sua equipe pode aderir (FDD, XP, MSF, DSDM e Scrum).

Vale salientar que não há a “melhor metodologia”, mas a solução mais adequada dentro do contexto da empresa. Então, sem mais delongas, vamos a elas!

Feature Driven Development (FDD)

Criado em Cingapura, entre 1997 e 1999, o FDD é um método ágil que reúne as melhores práticas de outros métodos, como o Coad.

A sua premissa básica tem o foco em funcionalidades, o que permite à equipe do projeto realizar um planejamento incremental, isto é, por fases.

Esse tipo de atuação ajuda a dar agilidade ao desenvolvimento de soluções em ambientes de extrema incerteza, em que as mudanças são inevitáveis.

A programação por FDD começa com a visão global do negócio, já que esse método considera a soma de tudo mais importante que cada uma das partes separadamente.

Passa-se, então, para o detalhamento do produto com a subdivisão por áreas a serem modeladas, culminando na descrição de cada funcionalidade.

Por se tratar de uma ferramenta com foco no desenvolvimento — assim como o XP, que veremos a seguir —, o FDD pode ser perfeitamente integrado ao Scrum, outro método ágil muito utilizado que também tem foco no planejamento e na execução do projeto.

Assim como todos os demais métodos ágeis, o FDD também apresenta melhores práticas que visam criar o ambiente ideal para o desenvolvimento de projetos. São elas:

  • desenvolvimento por funcionalidades;

  • um único programador é responsável pela funcionalidade desenvolvida;

  • controle de qualidade em todas as fases do projeto;

  • gerenciamento de configurações;

  • integração contínua das funcionalidades;

  • planejamento incremental;

  • teste de software.

eXtreme Programming (XP)

Também criado na década de 1990, o eXtreme Programming, chamado de XP, é um método ágil com foco no desenvolvimento de softwares com base em três pilares: agilidade no desenvolvimento da solução, economia de recursos e qualidade do produto final.

Para chegar à excelência nos serviços prestados, uma equipe XP deve se basear em valores, isto é, um contrato de atitudes e comportamentos que levam ao sucesso.

Esses comportamentos e atitudes norteiam as ações da equipe XP em cada atividade a ser desempenhada, garantindo a integração e a sinergia necessárias para o bom desempenho. No caso, esses valores são:

  • comunicação;

  • simplicidade;

  • feedback;

  • coragem;

  • respeito.

Além dos valores, o método ágil XP também leva em consideração melhores práticas de trabalho, que têm como objetivo garantir a efetividade do trabalho da equipe XP, assim como a satisfação do cliente durante todo o processo de desenvolvimento. São elas:

  • cliente sempre à disposição;

  • uso de metáforas;

  • reuniões de planejamento (planning game);

  • reuniões diárias, de 15 minutos, para alinhamento (stand up meeting);

  • integração contínua dos módulos desenvolvidos;

  • mudanças incrementais;

  • entregas frequentes ao cliente (small releases);

  • design simples e funcional;

  • testes de aceitação;

  • refatoração (refactoring) ou melhoria contínua.

Microsoft Solutions Framework (MSF)

O MSF é um dos métodos ágeis mais usados por se destinar ao desenvolvimento de soluções tecnológicas por equipes reduzidas, com foco na diminuição de riscos para o negócio e no aumento da qualidade do produto final.

O propósito é identificar as falhas mais comuns em projetos de tecnologia, mitigando-as e aumentando as taxas de sucesso de cada iniciativa.

Dessa forma, assim como o Scrum, o MSF tem mais foco na gestão do projeto do que no desenvolvimento da solução em si. As suas premissas são:

  • alinhamento da tecnologia desenvolvida com os objetivos de negócio do cliente;

  • escopo bem estruturado e detalhado;

  • desenvolvimento iterativo;

  • gerenciamento de riscos;

  • agilidade na resposta a mudanças.

Assim como os outros métodos ágeis, o MSF também tem melhores práticas que devem ser observadas pela equipe para atingir os níveis de excelência buscados:

  • comunicação aberta e transparente entre todos os envolvidos;

  • visão compartilhada do negócio;

  • equipe capacitada;

  • atribuição de papéis e responsabilidades desde o início do projeto;

  • entregas incrementais;

  • flexibilidade para mudar sempre que necessário;

  • qualidade das entregas;

  • aprendizado constante com as experiências adquiridas;

  • parceria com clientes internos e externos.

Dynamic System Development Model (DSDM)

O DSDM é um dos métodos ágeis mais antigos empregados não só no desenvolvimento de projetos como no meio tecnológico.

Um tanto diverso dos demais métodos ágeis, ele é destinado ao desenvolvimento de projetos com orçamento fixo e prazos curtos, levando em consideração que o cliente não tem como saber quanto custará a solução final.

Entre as suas melhores práticas estão o desenvolvimento incremental e iterativo, a colaboração entre cliente e equipe, além da integração de funcionalidades, o que também vemos nos demais métodos ágeis.

Vale ressaltar que o DSDM diverge dos demais métodos ágeis tanto em sua estrutura, que é composta por processos interligados de modelagem, concepção, construção e implementação, como na gestão do tempo, que não é flexível, até permitindo que as funcionalidades mudem, mas desde que os prazos de execução continuem os mesmos.

Scrum

O Scrum é, sem dúvida, o método ágil mais usado nos dias de hoje, principalmente porque pode ser integrado a outros métodos ágeis com facilidade, aplicando-se não só ao desenvolvimento de softwares como a qualquer ambiente de trabalho.

Com foco na gestão do projeto, o Scrum tem como base o planejamento iterativo e incremental, que se dá, conforme já explicado, pelas reuniões conhecidas como Sprints — desta vez, abordaremos o conceito em detalhes.

Ele reitera, desde o início do projeto, a lista de funcionalidades a serem desenvolvidas — prática também chamada, no caso, de product backlog.

No andamento do processo, cada funcionalidade se torna um Sprint, cujos detalhes a serem criados e desenvolvidos passam do product backlog para o sprint backlog.

Do sprint backlog, as atividades são distribuídas entre os membros do Scrum Team, que devem desenvolvê-las dentro de um prazo que geralmente não leva mais de quatro semanas.

Ao final de cada sprint é realizada a sprint review meeting, uma reunião de alinhamento sobre o que foi entregue. A partir daí, começa-se a planejar o próximo sprint. Essas etapas acontecem sucessivamente até que o produto final esteja pronto para a entrega.

Diferentemente dos demais métodos ágeis, o Scrum tem papéis muito bem definidos e absolutamente essenciais para o sucesso do projeto:

  • indivíduos e interação mais do que processos e ferramentas;

  • software em funcionamento mais do que documentação;

  • colaboração com o cliente mais do que contratos e negociações;

  • respostas a mudanças mais do que planejamento.

FONTE: https://www.projectbuilder.com.br/blog/quais-sao-os-principais-tipos-de-metodos-ageis/

0 visualização0 comentário

Comments


bottom of page