Hoje vou abordar um assunto que vem sendo muito comentado no mercado de TI: SCRUM. Porém, a abordagem será voltada para testes. Vamos lá!
O que é SCRUM?
Scrum é uma metodologia ágil para gestão e planejamento de projetos de software. (NE.: Lembram do nosso post em que indicamos uma leitura sobre Metodologia Ágil?)
No Scrum, os projetos são dividos em ciclos que variam de 2 a 4 semanas e são chamados de Sprints.
Sprint
Um Sprint representa um período de tempo dentro do qual um conjunto de atividades deve ser executado. Ou seja, os Sprints são as iterações no Scrum. Para ilustrar melhor como funciona a metodologia Scrum. Veja a seguinte imagem:
Vamos destrinchar a imagem acima:
Product Backlog
É um arquivo que contém as funcionalidades a serem implementadas durante o ciclo de vida do software (do produto).
Sprint Backlog
Por analogia, nota-se que são as funcionalidades a serem implementadas no Sprint corrente.
Daily Scrum Meeting
Reuniões diárias de, no máximo, 15 minutos, que servirão para alinhar o que está ocorrendo durante o sprint (onde os desenvolvedores estão trabalhando, problemas, mudanças, etc).
Potentially shippable product increment
É o produto pronto para ser entregue.
Com a breve explicação acima, já podemos ter uma ideia de como funciona o Scrum. E agora?
Agora, vamos falar mais sobre o Scrum mas com o foco em Testes. Preparados?
Como testar e garatir qualidade em um projeto que utiliza metodologia SCRUM?
Uma vez testador em um projeto que utiliza a metodologia SCRUM, o profissional deve atentar-se a duas características básicas da metodologia: ciclo-de-vida iterativo e comunicação frequente entre os componentes do time. Logo, a adaptação do testador convencional para um time SCRUM deve ser baseada em mudanças de comportamento, como por exemplo:
SCRUM X RUP: Qual metodologia adotar? São realmente opostos?
Não podemos dizer que SCRUM é melhor que RUP, ou que RUP é melhor que SCRUM. A escolha da metodologia vai depender de diversos fatores, tais como, tamanho do time, tamanho do projeto, proximidade do cliente, entre muitos outros fatores. Nesse caso, a escolha é baseada numa análise prévia.
Por exemplo: utilizar e tentar aplicar em um projeto toda a suite do RUP com um time de 5 pessoas é, na certa um tiro no pé. Para adotar o RUP é necessário um time numeroso, pois são diversos os roles em RUP. (Se Você deseja entender como funcionam os roles em RUP, acesse o seguinte artigo:
http://www.ibm.com/developerworks/rational/library/apr05/crain/index.html)
Outro ponto: RUP e SCRUM não são metodologias opostas, ou rivais. Percebe-se muita picuinha entre adeptos de SCRUM (e Agile em geral) com adeptos do RUP.
RUP e SCRUM podem ser perfeitamente complementares. Existe a possibilidade de utilizarmos RUP com iterações, de por exemplo 3 meses. Assim como podemos adotar práticas de RUP para pontos que a metodologia SCRUM deixa sem nó.
Esse assunto é muito vasto e necessita de um estudo bem aprofundado de engenharia de software. Como o nosso foco é voltado para testes, vou deixar alguns links ao final do post para quem deseja saber mais sobre o assunto.
A lição que fica é: não existe metodologia perfeita e infalível. Existe sim, aquela metodologia que melhor se adequa a determinada situação.
SCRUM: modismo ou tendência?
Pois é, ponto delicado. 'Os dois' seria a minha resposta. Explico: modismo porque a metodologia SCRUM tomou uma proporção que não deveria; parece aquela história de "chegou a solução para todos os seus problemas"; e tendência porque realmente funciona quando aplicada corretamente e, dependendo da situação, é extremamente eficiente e prática.
Links
Para mais informações sobre SCRUM, indico os seguintes links:
Excelente pdf em português explicando o funcionamento do desenvolvimento de um produto utilizando a metodologia SCRUM - http://www.mountaingoatsoftware.com/system/hidden_asset/file/52/PortugueseScrum.pdf
Overview muito bem condensado sobre a metodologia SCRUM; os links no decorrer do texto dão uma noção mais aprofundada dos elementos que compoem a metodologia - http://improveit.com.br/scrum
Boa e velha - não tão velha assim - Wikipedia; bons links na seção 'Ligações externas' - http://pt.wikipedia.org/wiki/Scrum
Artigo que me inspirou a escrever esse post - http://www.informit.com/articles/article.aspx?p=415981
Para mais informações sobre as metodologias e engenharia de software:
SCRUM and RUP - A Comparison Doesn't Go on All Fours - http://www.rupopmaat.nl/AgileRecord_01_Scrum_and_RUP.pdf
Testes no RUP - Parte 1 - http://qahouse.blogspot.com/2009/12/testes-no-rup.html
Testes no RUP - Parte 2 - http://qahouse.blogspot.com/2010/04/testes-no-rup-parte-2.html
O que é SCRUM?
Scrum é uma metodologia ágil para gestão e planejamento de projetos de software. (NE.: Lembram do nosso post em que indicamos uma leitura sobre Metodologia Ágil?)
No Scrum, os projetos são dividos em ciclos que variam de 2 a 4 semanas e são chamados de Sprints.
Sprint
Um Sprint representa um período de tempo dentro do qual um conjunto de atividades deve ser executado. Ou seja, os Sprints são as iterações no Scrum. Para ilustrar melhor como funciona a metodologia Scrum. Veja a seguinte imagem:
(fonte: http://improveit.com.br/scrum)
Vamos destrinchar a imagem acima:
Product Backlog
É um arquivo que contém as funcionalidades a serem implementadas durante o ciclo de vida do software (do produto).
Sprint Backlog
Por analogia, nota-se que são as funcionalidades a serem implementadas no Sprint corrente.
Daily Scrum Meeting
Reuniões diárias de, no máximo, 15 minutos, que servirão para alinhar o que está ocorrendo durante o sprint (onde os desenvolvedores estão trabalhando, problemas, mudanças, etc).
Potentially shippable product increment
É o produto pronto para ser entregue.
Com a breve explicação acima, já podemos ter uma ideia de como funciona o Scrum. E agora?
Agora, vamos falar mais sobre o Scrum mas com o foco em Testes. Preparados?
Como testar e garatir qualidade em um projeto que utiliza metodologia SCRUM?
Uma vez testador em um projeto que utiliza a metodologia SCRUM, o profissional deve atentar-se a duas características básicas da metodologia: ciclo-de-vida iterativo e comunicação frequente entre os componentes do time. Logo, a adaptação do testador convencional para um time SCRUM deve ser baseada em mudanças de comportamento, como por exemplo:
- Testar dentro de cada iteração (Sprint), em vez de testar ao final do desenvolvimento;
- Decidir o que testar enquanto o produto ainda não está pronto;
- Colaborar com os membros da equipe, em vez de trabalhar isoladamente;
- Participar das reuniões diárias com todo o time (Daily Scrum Meeting);
- Procurar informações sobre produto durante os testes e com os outros membros do time, para verificar o que testar; ao invés de buscar informações em documentos de requerimentos.
SCRUM X RUP: Qual metodologia adotar? São realmente opostos?
Não podemos dizer que SCRUM é melhor que RUP, ou que RUP é melhor que SCRUM. A escolha da metodologia vai depender de diversos fatores, tais como, tamanho do time, tamanho do projeto, proximidade do cliente, entre muitos outros fatores. Nesse caso, a escolha é baseada numa análise prévia.
Por exemplo: utilizar e tentar aplicar em um projeto toda a suite do RUP com um time de 5 pessoas é, na certa um tiro no pé. Para adotar o RUP é necessário um time numeroso, pois são diversos os roles em RUP. (Se Você deseja entender como funcionam os roles em RUP, acesse o seguinte artigo:
http://www.ibm.com/developerworks/rational/library/apr05/crain/index.html)
Outro ponto: RUP e SCRUM não são metodologias opostas, ou rivais. Percebe-se muita picuinha entre adeptos de SCRUM (e Agile em geral) com adeptos do RUP.
RUP e SCRUM podem ser perfeitamente complementares. Existe a possibilidade de utilizarmos RUP com iterações, de por exemplo 3 meses. Assim como podemos adotar práticas de RUP para pontos que a metodologia SCRUM deixa sem nó.
Esse assunto é muito vasto e necessita de um estudo bem aprofundado de engenharia de software. Como o nosso foco é voltado para testes, vou deixar alguns links ao final do post para quem deseja saber mais sobre o assunto.
A lição que fica é: não existe metodologia perfeita e infalível. Existe sim, aquela metodologia que melhor se adequa a determinada situação.
SCRUM: modismo ou tendência?
Pois é, ponto delicado. 'Os dois' seria a minha resposta. Explico: modismo porque a metodologia SCRUM tomou uma proporção que não deveria; parece aquela história de "chegou a solução para todos os seus problemas"; e tendência porque realmente funciona quando aplicada corretamente e, dependendo da situação, é extremamente eficiente e prática.
Links
Para mais informações sobre SCRUM, indico os seguintes links:
Excelente pdf em português explicando o funcionamento do desenvolvimento de um produto utilizando a metodologia SCRUM - http://www.mountaingoatsoftware.com/system/hidden_asset/file/52/PortugueseScrum.pdf
Overview muito bem condensado sobre a metodologia SCRUM; os links no decorrer do texto dão uma noção mais aprofundada dos elementos que compoem a metodologia - http://improveit.com.br/scrum
Boa e velha - não tão velha assim - Wikipedia; bons links na seção 'Ligações externas' - http://pt.wikipedia.org/wiki/Scrum
Artigo que me inspirou a escrever esse post - http://www.informit.com/articles/article.aspx?p=415981
Para mais informações sobre as metodologias e engenharia de software:
SCRUM and RUP - A Comparison Doesn't Go on All Fours - http://www.rupopmaat.nl/AgileRecord_01_Scrum_and_RUP.pdf
Testes no RUP - Parte 1 - http://qahouse.blogspot.com/2009/12/testes-no-rup.html
Testes no RUP - Parte 2 - http://qahouse.blogspot.com/2010/04/testes-no-rup-parte-2.html
Comentários
Postar um comentário