Muitos profissionais falam sobre método ágil de desenvolvimento, mas, o que isso significa?

 

O método ágil de desenvolvimento de software, que na realidade pode ser aplicado em vários outros processos e não somente na área de tecnologia da informação, é um conjunto de métodos e processos que facilitam a interação entre clientes e desenvolvedores, possibilitando uma maior eficiência e ganho de produtividade.

O método ágil tem por princípios, garantir a satisfação do cliente, entregando de forma eficiente e contínua, produtos funcionais, antecipando prazos e estimulando a cooperação diária entre o cliente, o desenvolvedor e outros colaboradores (stakeholders).

Os projetos criados no processo ágil, valorizam as interações, ou seja, a cooperação entre os indivíduos, mais do que as ferramentas, ou mesmo, os processos utilizados. Nesta metodologia de trabalho, um produto funcional e que atenda aos requisitos do cliente se sobrepõe as necessidades de documentação. O produto é entregue em etapas e cada etapa acompanhada de perto pelo cliente.O design do produto preza pela qualidade e excelência técnica, que visam responder às mudanças de forma rápida, sempre em colaboração com o cliente.

puzzle_pieces_house_teamwork_1600_clr

Startup Sorocaba: Você sabe o que é desenvolvimento ágil?

 

Para um processo de desenvolvimento ágil, é importante que a empresa tenha uma cultura que apoie o processo, fazendo com que os colaboradores se sintam motivados e confiantes. É importante ainda, manter uma equipe pequena, porém, competente, com facilidade de comunicação entre seus membros. A cultura empresarial pode ser uma das principais barreiras para a implantação do processo ágil, porém uma vez superadas, as vantagens do desenvolvimento ágil em relação ao modelo de desenvolvimento em cascata (baseado no planejamento) farão as mudanças culturais valerem a pena.

É importante ressaltar que o método ágil de desenvolvimento, se não for bem gerenciado, pode acabar gerando uma indisciplina no desenvolvimento, já que visa atender todos os requisitos do cliente, criando códigos funcionais, porém, desorganizados e lentos.

Uma das metodologias mais usuais é conhecida como “Scrum”, que, apesar do nome assustador, Scrum não é uma linguagem de programação, nem um novo seriado de TV. É um processo de planejamento e desenvolvimento de software, ou produto de forma ágil.  É um conceito recente aplicado à criação e projeto com foco na solução e nos resultados.

Quando comecei a programar, na década de 80, fazíamos os fluxogramas que eram, na verdade, diagramas de blocos representativos da programação estruturada onde cada comando era equivalente a um símbolo bastante específico.

Depois, aprendi a usar o UML e seus diagramas de caso de uso, de classes, diagrama de sequência, de objetos, de instalação e outros. Estes diagramas ajudavam a projetar um programa orientado a objetos.

A programação orientada a objetos revolucionou a forma de desenvolver código e para quem veio da programação estruturada, era uma forma muito mais simples de realizar o projeto de um software. Mas seus diagramas e excesso de planejamento tornam o desenvolvimento lento e muitas vezes o cliente não tem ou não compreende este fator.

Existem vários processos de criação iterativa e incremental para desenvolvimento de software ágil, como a prototipagem (onde são criados protótipos do código para o cliente e após definir as especificações, cria-se o produto real), processo em espiral (onde se agregam funções ao projeto e as especificações são implementadas).

O Scrum é o nome dado a um processo ágil onde o mais importante são os resultados e funcionalidade e não manuais complexos. E a participação de todos, desenvolvedores e clientes (product owner) é fundamental.

Muitas vezes, o cliente pode alterar a necessidade ou especificações do produto. Cabe ao Scrum Master manter a equipe direcionada da forma correta e assegurar as práticas do Scrum.

O desenvolvimento Scrum, começa ouvindo o cliente através de “histórias dos processos” que o sistema realizará. Isso irá gerar o product backlog (funcionalidades do sistema). Os processos do sistema são divididos em sprints, que são unidades básicas daquilo que será criado.

Cada sprint começa com uma reunião (Sprint Planning) que irá definir as tarefas daquela unidade, sempre seguido por reuniões de revisão ou retrospectiva. Em cada sprint a equipe (Scrum team) cria algo funcional e perceptível pelo product owner, dentro de um prazo estabelecido e gera um “feedback”.

Muitas empresas de desenvolvimento de software estão adotando o processo Scrum, pois seus resultados têm se mostrados mais vantajosos que os processos similares.  Se você leitor é um desenvolvedor e esta é a primeira vez que ouve sobre o assunto, segue abaixo alguns links para mais informações:

 

Manifesto ágil

 

Using na Agile Software Process with OffShore Development

 

O guia do Scrum: Um PDF sobre método Scrum

 

O site do Scrum (em Inglês).

 

Vídeos da Universidade Scrum

 


E você, o que pensa sobre o assunto? Gostou do artigo? Compartilhe conosco sua opinião. Não gostou? Acha que podemos melhorar? Então nos ajude a aprimorar nosso trabalho.

Siga o Startup Sorocaba no Facebook e cadastre-se para receber nossa newsletter e para ser informado sobre todas as novidades.

Compartilhe:

Desenvolvedor, Professor e Conteudista Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus Salto/SP