Nos últimos anos, novas metodologias foram
aplicadas, devido a rapidez no desenvolvimento do software, aliado à qualidade do processo e do
produto. Desta forma, surgem os métodos ágeis popularizados
por Kent Becker e 16 outros desenvolvedores, produtores e consultores de softwares, conhecidos como “Aliança Ágil” que assinaram
o “Manifesto para o Desenvolvimento de Software Ágil”.
Eles declararam os itens que seriam mais valorizados no desenvolvimento
do software[1]:
- Indivíduos e iterações são mais importantes que processos e
ferramentas
- Software funcionando é mais importante que documentação detalhada
- Colaboração dos clientes é mais importante que negociação de
contratos
- Resposta a modificações é mais importante que seguir um plano
A agilidade no desenvolvimento de software corresponde a capacidade da equipe do
projeto responder rapidamente às modificações propostas para o sistema[2]. O
método ágil encoraja estruturas e atitudes de equipes com pró-atividade,
enfatiza a rápida entrega do software, dá menos importância para a elaboração
da documentação, adota o cliente como parte da equipe de desenvolvimento,
reconhece que o planejamento em um mundo de constantes mudanças tem seus
limites e que o plano de projeto deverá ser flexível para atender essas
mudanças.
Uma das metodologias ágeis é o Scrum, desenvolvido na década de 90 por Jeff Sutherland
e sua equipe. Os princípios do Scrum estão
alinhados com o “Manifesto para o Desenvolvimento de Software Ágil”, entre os
quais:
- Formação de pequenas equipes de trabalho para maximizar a
comunicação, minimizar a supervisão e compartilhar o conhecimento;
- O processo de desenvolvimento de software deverá ser adaptável às
modificações técnicas e de negócios para produzir o melhor produto;
- O processo produz incrementos de software que podem ser
inspecionados, ajustados, testados, documentados e expandidos;
- A equipe é dividida para atender a um determinado requisito;
- Testes e documentações do projeto são realizados à medida que o
produto é construído. O Scrum explora
o uso de um conjunto de padrões de processos de software para projetos com
prazos apertados, requisitos em constante mudança, criticidade de
negócios, comunicação e frequente feedback do
cliente.
Os processos do Scrum são
usados para guiar o desenvolvimento dentro de um processo com as seguintes
atividades: requisitos, análise, projeto, evolução e entrega.
Cada atividade possui tarefas de
trabalho dentro de um processo chamado sprint, que
varia dependendo da sua complexidade, tamanho do produto e pode ser modificado
em tempo real pela equipe Scrum. Cada processo
de software possui um conjunto de atividades de desenvolvimento, conforme
mostra a Figura 1[3].
Figura 1 – O
processo Scrum
Product Backlog. A
equipe elabora uma lista priorizada de requisitos que agregam valor ao negócio
do cliente. Itens podem ser adicionados à lista de pendências a qualquer
momento e priorizados pelo gerente de produtos.
Sprint Backlog. Unidades de
trabalho necessárias para satisfazer um requisito definido nas pendências
e que precisam ser cumpridos em um intervalo de tempo predefinido (máximo
30dias). Durante o sprint, itens
são congelados a fim de que a equipe possa trabalhar em um ambiente de prazo
curto e de forma mais estável.
Reuniões Scrum. Reuniões
de 15 minutos realizadas diariamente pela equipe respondendo as seguintes
perguntas: a) O que você fez desde a última reunião de equipe? b)Que
obstáculos foram encontrados? c)O que você pretende realizar até a
próxima reunião de equipe? O líder da equipe, denominado Scrum Master, lidera a reunião e avalia as
respostas do grupo. As reuniões diárias ajudam identificar problemas o mais
breve possível, além de intensificar o compartilhamento das informações pela
equipe.
Resultado do sprint. Entrega
do incremento de software para avaliação pelo cliente. Esse demo não contém
todas as funcionalidades planejadas do projeto, porém a entrega parcial
contribui para homologação e aceite do cliente no desenvolvimento do projeto de
forma mais rápida e segura, devido a um contexto organizacional de
grandes mudanças e incertezas.
Além desse modelo, existem outras metodologias
ágeis como eXtreme Programming(XP),
Desenvolvimento Adaptativo de Software (DAS), Dynamic Systems
DevelopmentMethod (DSDM), Crystal, Feature Driven Development (FDD) e Agile Modeling(AM). Muitas dessas metodologias possuem
semelhanças entre si em relação a filosofia e práticas. Cada organização deverá
escolher a metodologia que mais se aplica no seu contexto organizacional45.
Uma das principais diferenças dos processos ágeis
em relação aos modelos tradicionais é o conceito denominado barely sufficient, ou seja, mínimo necessário. Enquanto abordagens como o modelo cascata,
entre outros, procuram estabelecer o uso das “melhores práticas”, os processos
ágeis sugerem o uso de um conjunto reduzido dessas práticas, o que pode ser
suficiente para muitos projetos comerciais que envolvam pequenas equipes[4].
Mônica Mancini, PhD, PMP Tem Pós-Doutoramento em Sistemas de Informação/Projetos/USP
(2017), Gestão Estratégica de EAD/Senac(2016), MBA em Gestão Empresarial/FGVSP
(2007), Doutorado em Ciências Sociais/PUCSP (2005), Mestrado em
Administração/PUCSP (1999), Especialização em Administração Industrial/USP
(1992) e Graduação em Administração com ênfase em Análise de sistemas/FASP
(1989). Possui certificação PMP, COBIT, ITIL-F, ISO 20000, ISO 27002, Green IT
Citizen. Sócia Diretora da MM Project Treinamento e Soluções em TI com foco em
Treinamento, Projetos e Internet das Coisas. Mais de 30 anos de experiência na
área de tecnologia e projetos. Conselheira de Governança do PMI São Paulo
(2017-2018). Prêmio Diretora do Ano 2015 e Prêmio Voluntária do Ano 2012 do PMI
São Paulo. Gerente, Mentora e Consultora do NepIOT - Núcleo de Estudos e
Pesquisas em Internet das Coisas / IpT. Professora nos cursos de Graduação e Pós-Graduação
Lato Sensu.
[1] PRESSMAN, R.
S. Engenharia de software. 7º ed. São Paulo: MCGraw-Hill,
2011.
[2] PRADO, D.;
ARCHIBALD, R. D. Gerenciamento de projetos para executivos: inclui
portfólios e programas. Nova Lima: INDG Tecnologia e Serviços Ltda, 2011.
[3] TELES, V.
M. Um estudo de caso da adoção das práticas e valores do eXtreme
Programming. (Dissertação de Mestrado – Universidade Federal do Rio
de Janeiro / Núcleo de Computação Eletrônica). 2005. Disponível em: <http://www.improveit.com.br/xp/dissertacaoXP.pdf.>.
Acesso em 22 out. 2017.
[4] MANCINI,
Mônica. Gerenciamento de Projetos. In: VASQUES, Edmir; SOUZA, César
(Orgs.). Fundamentos sistemas de informação. São Paulo: Editora
Elsevier, 2014.
Nenhum comentário:
Postar um comentário
COMENTE