terça-feira, 15 de maio de 2018

O que é Scrum?



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 BacklogUnidades 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), CrystalFeature 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