Escolar Documentos
Profissional Documentos
Cultura Documentos
Monografia apresentada ao Curso de Ps-Graduao em Engenharia de Sistemas, da Escola Superior Aberta do Brasil, como requisito para obteno do Ttulo em Engenharia de Sistemas, sob orientao do Prof. Me. Jesse Gomes Dos Santos.
AGRADECIMENTO
Agradeo a minha esposa, pelo incentivo, fora e por entender minha ausncia em vrios momentos e que esta comigo nos momentos bons e ruins. Tambm agradeo a Deus e ela, por trazer nosso filho com sade, um presente que recebi durante este projeto. Agradeo a todos professores, que elaboraram o material do curso, que forneceu uma base slida para o conhecimento da matria. Ao meu orientador pela competncia. A minha me, pois tudo que sou devo a ela.
A estratgia sem ttica o caminho mais lento para a vitria. Ttica sem estratgia o rudo antes da derrota. Sun Tzu
RESUMO
Este trabalho tem como objetivo principal demonstrar os fundamentos e caractersticas do framework scrum para gerenciamento de projetos e suas vantagens em relao ao Modelo Tradicional, desta forma abordamos todo o seu workflow. O scrum, apontado como a metodologia gil, que mais utilizado em empresas, cujo o foco Internet, seja na rea de entretenimento, e-commerce ou social Midia posso citar por exemplo, Yahoo, Google, Dafiti, Shoes4you, o framework scrum nada mais que uma boa prtica para gerenciamento de projetos, que tem como base um processo incremental e interativo, ideal para projetos que esto em constantes mudanas, sejam tecnolgicas ou de requisitos de sistemas, utilizando o framework scrum de forma correta, empresas e profissionais tm melhores resultados, tanto no que tange prazos, custos e satisfao final do cliente. Atravs da pesquisa, pretende-se chegar a uma concluso que favorea o framework scrum, demostrando suas TimeBox, papis e responsabilidades. Abordou-se ainda uma forma de se iniciar o gerenciamento de projetos com o framework scrum, demostrando como se iniciar o ciclo de desenvolvimento, acompanhamento ou cancelamento. Palavras-chave: scrum. Gerncia de Projetos. Mtodos geis. Mtodos Tradicionais.
SUMRIO
1 INTRODUO.....................................................................................................9 2 FUNDAMENTAO TERICA..........................................................................13 2.1 PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE.............................13 2.2 MTODOS GEIS............................................................................................15 3 SCRUM................................................................................................................17 3.1 FRAMEWORK SCRUM....................................................................................17 3.2 SPRINT - CICLO DE DESENVOLVIMENTO INCREMENTAL........................18 3.3 PAPIS NO SCRUM.........................................................................................20 3.4 O PRODUCT OWNER......................................................................................20 3.5 SCRUM MASTER.............................................................................................21 3.6 SCRUM TEAM..................................................................................................22 4 ARTEFATOS E INDICADORES..........................................................................23 4.1 ARTEFATOS.....................................................................................................23 4.2 PRODUCT BACKLOG......................................................................................23 4.3 SPRINT BACKLOG..........................................................................................24 4.4 BURNDOWN CHART.......................................................................................25 5 REUNIES..........................................................................................................28 5.1 SPRINT PLANNING MEETING........................................................................28 5.2 DAILY SCRUM MEETING................................................................................29 5.3 SPRINT REVIEW MEETING............................................................................30 5.4 SPRINT RETROSPECTIVE.............................................................................31 6 PREPARANDO A EQUIPE..................................................................................33 6.1 EVANGELIZAO DA EQUIPE.......................................................................33 6.2 COMO CRIAR SPRINTS..................................................................................34 6.3 CALCULANDO O ESFORO E VELOCIDADE...............................................35 6.4 INICIANDO UM SPRINT..................................................................................37 6.5 CANCELANDO UM SPRINT............................................................................37 7 COMPARAO COM A METODOLOGIAL TRADICIONAL.............................39 7.1 MODELOS TRADICIONAIS.............................................................................39 7.2 MODELO BALBRDIA.....................................................................................40 7.3 CICLO DE VIDA CLSSICO CASCATA...........................................................41
7.3.1 Definio de requisitos...............................................................................42 7.3.2 Projeto de software......................................................................................42 7.3.3 Desenvolvimento.........................................................................................43 7.3.4 Testes de sistema........................................................................................44 7.3.5 Implantao..................................................................................................44 7.4 SCRUM X MODELOS TRADICIONAIS............................................................46 8 CONCLUSO......................................................................................................47
1 INTRODUO
Exposio do assunto: O desenvolvimento de software se tornou uma das mais importantes atividades econmicas do nosso tempo, assim, gerando uma das maiores indstrias, do sculo XXI. Gerando milhes de empregos ao redor do mundo, atravs desta indstria so criados diversos produtos de software, dos quais muitos so de suma importncia para ns, seja para o nosso estilo de vida, sade, educao, comrcio, segurana, cincia e outras reas da vida. O produto de software, criado atravs das diversas tcnicas de desenvolvimento de software e linguagens de programao, tornou-se um dos maiores valores de propriedade intelectual. Este mercado, que sempre esta em constantes mudanas e evoluindo rapidamente, um dos setores econmicos mais competitivos, para os profissionais da rea e empresas, neste mbito o mercado consumidor desta indstria, inevitavelmente vai distingui as melhores prticas e as piores, exigindo cada vez mais produtos de softwares melhores, com entregas rpidas, e quer realmente atendam as necessidades dos clientes, consumidores deste produto. Existem diversas metodologias de desenvolvimento de softwares, mas sem dvida alguma os mtodos geis para desenvolvimento uma marco para empresas e para os profissionais que esto envolvidos no produto de software, acelerando os prazos para desenvolvimento dos projetos, aumentando a satisfao do cliente final, gerando a entrega de um produto final com melhor qualidade e que agregue valor. Como melhorar a qualidade de software utilizando scrum para gerenciamento de projetos?
10 Justificativa para escolha do tema: O desenvolvimento do produto de software reconhecido como um processo, cheio de possibilidades e muitas vezes complexo. Sabe-se que um produto de software, no construdo sempre da mesma maneira, havendo mudanas dentro das equipes, mudanas de pensamentos de desenvolvimento de software e de tecnologias. importantssimo reconhecer, como sendo um processo relativo, que composto do imprevisto e que tem ferramentas de ao corretiva para serem utilizadas dentro do processo de desenvolvimento do produto de software. Metodologias de desenvolvimento geis tem como principal caracterstica, serem extremamente adaptveis, levando em considerao o tamanho da equipe, do projeto, nvel de conhecimento tcnico dos envolvidos no processo de criao do produto de software, problemas que podem ocorrer durante o desenvolvimento, sem a necessidade de avaliar tudo anteriormente, ao inicio do projeto. Avaliaes prvias aumentam o custo do projeto e o prazo, alm de tornar muito difcil qualquer alterao de planejamento no decorrer do projeto, salientando, que o problema no a mudana, porque ela vai ocorrer em qualquer projeto e metodologia que esteja sendo aplicada, a grande questo como lidar com estas mudanas, e que em muitos casos levam ao fracasso do projeto, ou a entrega de um produto de baixa qualidade ao cliente final. Utilizando uma metodologia clssica, muitos produtos de software so
desenvolvidos por completo, e s na entrega acaba-se descobrindo que o produto no serve mais para o fim que foi desenvolvido, porque inevitavelmente muitos requisitos e regras podem mudar, durante o desenvolvimento do produto de software, e as mudanas se tornam to complexas que acabam ficando inviveis, para serem implementadas no produto de software. Utilizando metodologias de desenvolvimento geis, uma de suas premissas, o feedback constante, que permiti adequar-se rapidamente a mudanas nos requisitos, e o framework scrum tambm trabalha com esta premissa, um ponto que
11 tambm a destacar-se, nas metodologias de desenvolvimento geis so as entregas constantes dos artefatos do produto de software, assim o cliente final no precisa, aguardar a entrega final do produto de software, ele pode ir acompanhando as entregas e verificar partes do produto de software em funcionamento e se no estiver dentro das suas expectativas, as mudanas so efetuadas e os problemas resolvidos, dando continuidade ao projeto e integrando os artefatos. Objetivos geral e especificos: O objetivo geral da pesquisa apresentar o framework scrum em suas diversas funcionalidades e formas de aplicao para diversos tipos de projetos e equipes de tamanhos e nveis de conhecimento tcnico diferentes. Abordando seu desempenho para gerenciamento de projetos em diversos nveis, em que solues devem ser desenvolvidos, com agilidade, qualidade, dentro do escopo, prazo e qualidade definidos, demostrando suas vantagens em relao ao mtodo tradicional de gerenciamento de projetos. - Compreender a dinmica da metodologia scrum; - Descrever todos os processos de desenvolvimento de software utilizando scrum; - Relacionar os processos do scrum com o sucesso dos projetos no qual foi aplicado; - Foco no produto de software incremental; - Construo de artefatos empricos. Delimitao: Este trabalho tem como objetivo principal abordar a metodologia de desenvolvimento de software gil framework scrum, que utilizado por diversas empresas da indstria de tecnologia, para gerenciamento dos projetos de desenvolvimento de softwares e suas vantagens em relao Metodologia Tradicional de desenvolvimento de software.. Metodologia de Pesquisa: A pesquisa foi toda desenvolvida com base na leitura e anlise de livros, artigos, peridicos abordando as diferentes vises sobre scrum, os benefcios alcanados, as diferentes formas de se implementar scrum em equipes
de
desenvolvimento,
comparao
com
metodologia
tradicional
12 de
desenvolvimento e porque scrum, faz tanto sucesso e os projetos so cada vez mais bem sucedidos, trazendo ganho de performance dos profissionais envolvidos, melhorando a comunicao entre as reas envolvidas no projeto e o recursos financeiros so melhores aproveitados evitando gastos desnecessrios.
13
2 FUNDAMENTAO TERICA
Este captulo aborda, como implementado o processo de desenvolvimento de software, atravs da engenharia de software. Na seo 2.1, abordam-se as caractersticas do processo de desenvolvimento de software, fundamentos essenciais envolvidos no processo como requisitos, implementao, validao e manuteno. Com base nos conceitos da seo 2.1 a seo 2.2 aborda os mtodos geis, destacando suas caractersticas e levantado as principais metodologias geis de desenvolvimento mais conhecidas no mercado e praticadas. A seo 2.3 faz um breve levantamento histrico sobre o surgimento das metodologias geis, destacando seus principais mentores e suas diretrizes. Na seo 2.4 tem-se a transcrio do manifesto gil.
14 Projeto e implementao a etapa onde o produto de software em si desenvolvido de acordo com as especificaes e utilizando uma linguagem de programao (PRESSMAN, 2006). Validao do produto de software desenvolvido verificado se realmente o software atende todas as especificaes e funcionalidades levantadas (PRESSMAN, 2006). Manuteno do produto de software a continuidade do produto de software com relao a sua evoluo e necessidade de novas funes ou mudanas de requisitos para o produto de software continuar a ser til para o cliente (PRESSMAN, 2006). Toda metodologia de desenvolvimento deve lidar com problemas novos e requisitos, a manuteno uma etapa importante do desenvolvimento de software, e deve lidar com esta etapa do processo de desenvolvimento de software, boa parte do tempo de desenvolvimento gasto com reparos, e correes de requisitos que no foram levantados ou que deixaram questes em aberto (PRESSMAN, 2006). H muito tempo vem se tentando encontrar processos ou metodologias ideais para o gerenciamento de desenvolvimento de software, para melhorar qualidade do produto, custo e tempo de entrega, o primeiro modelo foi processo em Cascata, uma metodologia pesada e que tem como um dos seus pr-requisitos larga documentao, antes de desenvolver qualquer linha de cdigo (PICHLER, 2011). A engenharia de software responsvel por tratar todos os aspectos do desenvolvimento do produto de software, desdes as etapas iniciais dos requisitos at a Manuteno do produto de software, tambm parte importante para a engenharia de software, as metodologias, ferramentas e mtodos que os profissionais e empresas desenvolvedoras do produto de software baseiam-se para que os projetos sejam bem sucedidos (PRESSMAN, 2006). Uma metodologia nada mais que uma abordagem estruturada de como se deve desenvolver um produto de software, seguindo boas prticas que foram utilizadas
15 por outros indivduos, empresas e que estes projetos foram realizados com sucesso (COHN, 2011). utopia afirmar a existncia de um mtodo ideal, tudo depende do ambiente de desenvolvimento, projeto, pessoas e produto, existem mtodos que funcionam melhor e trazem resultados importantes para o gerenciamento de projetos (PRESSMAN, 2006).
processo e bem-vindas, os mtodos geis se tornam mais fortes e adaptveis dentro das organizaes e no decorrer deste processo evolutivo. Os mtodos geis quebram paradigmas tradicionais do gerenciamento de projetos, em relao como deve-se tratar as mudanas no escopo do projeto no decorrer dos projetos (KNIBERG, 2007). Mtodos tradicionais tratam o escopo sempre de forma fixa e no so flexveis as
16 mudanas de escopo, sempre controlando o mximo possvel, para que no haja este fluxo nos projetos em qual o mtodo tradicional aplicado (SURDEK; WOODWARD; GANIS, 2010). Todas as metodologias geis um dos princpios mais importantes ter um escopo manipulvel e ser flexvel, segundo o manifesto gil, Mudana de requisitos so bem vindas, mesmo em estgios tardios do desenvolvimento (SIMS; JOHNSON, HILLARY, 2007). Atualmente existem diversas metodologia de desenvolvimento, que tem como foco o manifesto gil, as mais importantes so: scrum, eXtreme Programming, Feature Driven Development, Crystal, DSDM e Lean. Estas metodologias tem seus princpios e tcnicas e a forma como gerenciam projetos, mas todas em comuns seguem os princpios do manifesto gil (VODDE; LAMAN, 2009). Scrum a mais importante e mais utilizada dentro das organizaes de diferentes seguimentos e tamanhos, principalmente em empresas do mercado de Internet, um mercado em constante evoluo que exige adaptao rpida e desenvolvimento gil para suas plataformas que esto em constantes mudanas e evoluindo diariamente, sejam elas, de comrcio eletrnico, Social Mida, entretenimento e informao (VODDE; LAMAN, 2009).
17
3 SCRUM
Este captulo tem como foco principal abordar o processo de desenvolvimento de software, gerenciado atravs do framework scrum utilizando o conceitos de desenvolvimento incremental e interativo. Na seo 3.1 destacando o conceito de product backlog e stakeholders relacionando aos requisitos de software para construo do produto de software. Na seo 3.2 feita uma anlise do ciclo de desenvolvimento do produto de software dentro do framework scrum, priorizao, planejamento e entrega. Na seo 3.3 encontra-se a estrutura dos papis destacando todos os envolvidos durante o ciclo de vida do desenvolvimento. Seo 3.4 so destacadas as principais atribuies do product owner. Seo 3.5 encontrase as tarefas do scrum master e relacionamos ao product owner, para o trabalho em conjunto. Na seo 3.6 abordado o scrum team, suas funes e grau de independncia e sua relao com o scrum master e demais membros da equipe.
18 conseguir entregar o incremento da funcionalidade do produto de software, para os stakeholders, avaliarem e solicitarem modificaes posteriores nos momentos certos (PICHLER, 2011). O Product Backlog o corao do scrum, normalmente uma lista de requisitos, estrias, coisas, funcionalidades que o cliente deseja. A cada nova interao o time deve avaliar os requisitos, as tecnologias envolvidas e domnio tcnico da equipe, para que haja a diviso do trabalho, para construir e entregar o produto de software dentro dos padres de qualidade exigido pelo cliente, respeitando prazos e tratando diariamente os problemas e surpresas que surgem durante o desenvolvimento do produto de software (KNIBERG, 2007) .
19 Normalmente cada sprint deve ter a durao entre duas e quatro semanas, todos os stakeholders (pessoas envolvidas no projeto), devem participar da reunio de sprint Planning Meeting, reunio que antecede o inicio de cada sprint, neste momento o product Owner e a equipe definem o sprint Backlog, tarefas que tem que ser entregues ao final do ciclo do sprint Backlog, a cada tarefa composta de trs variveis, escopo, importncia e estimativa (PICHLER, 2011) . Qualidade ponto importante, quando se trata de scrum seja ela interna ou externa, qualidade externa o que visto pelos usurios, qualidade interna refere-se a questes que no so observados pelo usurio, tal como estrutura do cdigo, testes de unidade, refatorao de cdigo (PHAM, 2011) . Geralmente um sistema com boa qualidade interna pode ter uma qualidade externa inferior, mas o caso inverso raramente vai ocorrer, este ponto importante porque em diversas ocasies o product Owner tentar espremer a estimativa do scrum team, isto no deve comprometer o cdigo, o ideal rever o escopo da tarefa (PHAM, 2011) . A equipe compromete-se a desenvolver e entregar as tarefas do sprint, em contra partida o product Owner tambm garante no trazer novos requisitos para serem desenvolvidos durante o ciclo do sprint Backlog. Requisitos funcionais e no funcionais podem mudar, mas sempre devem ocorrer fora do sprint Backlog (PHAM, 2011) . Ao final do planejamento do sprint deve-se chegar ao resultado final que indica, o objetivo do sprint, o sprint backlog, estimativa das tarefas, data para entrega do sprint e data e horrios para as reunies dirias (PHAM, 2011) . A partir do momento que a equipe comear a trabalhar no sprint Backlog, ela deve manter o foco no mesmo a fim de atingir o objetivo firmado, novos requisitos funcionais ou no funcionais no devero ser aceitos (KNIBERG, 2007) .
20 Diariamente o scrum team realiza a reunio chamada Daily, com durao de 15 minutos, para alinhar o trabalho da equipe e informar o scrum master sobre eventuais impedimentos no processo de desenvolvimento dos artefatos, definidos no sprint Planning (KNIBERG, 2007). Ao final de cada sprint BackLog, ocorre o sprint Review Meeting, neste momento o scrum team faz a entrega do produto de software desenvolvido no sprint (KNIBERG, 2007) . Antes de cada novo sprint, os stakeholders se renem para o Retrospective Meeting, no qual avaliada toda a pratica do scrum e o que precisa ser feito para melhorar o prximo sprint (SCHWABER, 2004) . A juno de todas estas prticas, fazem parte do ciclo de desenvolvimento dentro do framework scrum, no que contempla as diferentes etapas de um sprint, no sendo mandatria nenhuma etapa, mas sim considerada como boa prtica dentro do framework scrum, para atingir os objetivos (SCHWABER, 2004).
O framework scrum tem como base uma estrutura iterativa e incremental, no qual se apoio em trs papis de suma importncia para a metodologia, o product Owner, o scrum master, o scrum team, a responsabilidade de todo o projeto compartilhada por estes papis, eles ento formam os pilares de sustentao do framework scrum, as equipes se organizam de forma dinmica e so capazes de exercer diversas funes (KNIBERG, 2007). Toda equipe que trabalha com a metodologia de desenvolvimento scrum deve ser projetada para aprimorar a criatividade e produtividade (PHAM, 2011) .
21
22 O scrum master fornece vrios servios para todos os envolvidos no projeto, como o product Owner o scrum team e a para a Companhia, realizando as comunicaes dos avanos de forma clara e objetiva, orientando e liderando a equipe, seja no ambiente organizacional, removendo impedimentos, praticando a agilidade, alinhando os objetivos do Backlog para o desenvolvimento emprico de produtos (SIMS, 2007) .
23
4 ARTEFATOS E INDICADORES
Este captulo abordar todos os artefatos do framework scrum e os indicadores. Na seo 4.1 listam-se os artefatos e o que trazem de positivo para o processo de gerenciamento de projetos atravs do framework scrum. Na seo 4.2 aborda-se o product backlog e como estruturar um backlog, responsabilidade de priorizao e estimativas e adequao durante o ciclo de desenvolvimento. Na seo 4.3, como organizar o sprint backlog utilizando como base o product backlog, atualizao, andamento do sprint backlog, visibilidade e objetivo do sprint, que sempre deve ser definido antes do seu inicio. Na seo 4.4 traz o burndown chart, como utilizar e melhores prticas para monitoramento e andamento do sprint backlog.
4.1 ARTEFATOS
Os artefatos demonstram o trabalho de vrias maneiras, so indicadores durante todo o ciclo de desenvolvimento, so benficos por oferecer transparncia e oportunidades para acompanhamento e adaptao, so projetados para dar mais transparncia e garantir que as equipes scrum, tenham sucesso ao entregar o incremento do produto de software, composto por Product Backlog, sprint Backlog e o Burndown Chart (KNIBERG, 2007) .
24 pode incluir, retirar e definir a o ordem do Product Backlog, todos os itens so compostos por descrio, prioridade e estimativa de tempo (KNIBERG, 2007). Esta lista nunca completa no inicio do projeto, sendo formado apenas atravs de requisitos conhecidos no inicio, desta forma dinmica, evoluindo medida que o projeto vai sendo desenvolvido, desta forma pode ser modificada a qualquer momento no projeto (SURDEK, 2010) . Para atender algo no produto de software, que seja mais importante para tornar lo mais competitivo e a medida que o conhecimento do produto de software aumenta novas funcionalidades se fazem necessrias desta forma importantssimo a adequao do Product Backlog (KNIBERG, 2007).
O framework scrum no recomenda e no determina um padro de como esta lista deve ser formada, deixando livre para o product Owner definir como ele vai capturar os requisitos e apresent-los ao scrum team, em todos os projetos que utilizam o framework scrum para gerenciamento optam por utilizar a tcnica de listar cada item como uma estria, podendo ser inseridas em cartes pregados a paredes, quadros brancos ou utilizar softwares de gerenciamento de projetos que tem como plataforma o framework scrum (KNIBERG, 2007). A medida que um produto de software disponibilizado ao mercado consumidor de produtos de software, e ganha valor, inevitavelmente o mercado vai oferecer uma realimentao para o Product Backlog, requisitos no vo parar de mudar, a tecnologia no vai parar de evoluir tornando esta lista mais completa e longa, desta forma o Product Backlog um artefato em constante mudana (VODDE, 2009).
25 dirio, so selecionadas com base nas prioridades estipuladas pelo product Owner (PHAM, 2011). uma previso da equipe de desenvolvedores sobre as funcionalidades e o trabalho necessrio para realizar o desenvolvimento, testes e entrega da estria, inclui tambm a estratgia para obter o incremento do produto de software e realizar a entrega do sprint Backlog dentro do ciclo de vida determinado do sprint (KNIBERG, 2007). O sprint Backlog deixa visvel todo o trabalho da equipe de desenvolvimento, identifica o que necessrio para atingir o objetivo do sprint, a equipe de desenvolvimento, deve somente se comprometer com as estrias que efetivamente, sejam capazes de entregar dentro do ciclo de vida do sprint (PICHLER, 2011). No ciclo de vida do sprint, o scrum master, sempre vai manter o sprint Backlog, atualizado utilizando o grfico BurnDown Chart (KNIBERG, 2007). Assim toda a equipe pode acompanhar o andamento e avanos das estrias, refletindo as estrias prontas e as estrias a serem desenvolvidas, desta maneira demonstrando o quanto de tempo ainda necessrio para concluir as estrias em aberto e se a equipe est no prazo, a frente do tempo estimado ou atrasada em relao as estimativas de tempo para cada estria (KNIBERG, 2007). Durante o ciclo de vida de um sprint, possvel ter situaes no comuns, e que devem ser evitadas para que os projetos que utilizam o framework scrum para gerenciamento possam ser bem sucedidos, que a insero de estrias dentro de um sprint Backlog em andamento, estas estrias so tratadas como INTRUDERS, e se faz necessrio estimar novamente a quantidade de estrias do sprint Backlog, para que a equipe no seja sobrecarregada e consecutivamente o objetivo do sprint no seja cumprido (KNIBERG, 2007).
26
27 mau estimadas, itens no planejados foram colocados nos sprint BackLog, e ento deve haver uma readequao, se a linha de progresso estiver muito abaixo a estimativa da estrias podem estar erradas tambm, ou a equipe de desenvolvimento tem capacidade para um sprint maior do que fora definido neste ponto cabe ressaltar a importncia de incluir novas estrias no sprint BackLog, que a equipe seja capaz de finalizar durante o perodo restante do ciclo de vida do sprint. A equipe deve sempre seguir a ordem da estrias conforme a prioridade definida pelo product Owner, estrias de prioridade mais alta devem sempre ser as primeiras a serem desenvolvidas e entregues (KNIBERG, 2007).
28
5 REUNIES
Este captulo aborda as reunies que fazem parte do framework, destacando as caractersticas de cada uma delas e seus objetivos. Na seo 5.1 referencia-se a reunio mais importante do scrum o sprint plainning meeting, que engloba a definio dos escopos do sprint backlog, destacando a participao dos stakesholders. Na seo 5.2 especificada a reunio diria durante o ciclo de vida de um sprint e como conduzi-la. Na seo 5.3 aborda-se a reunio que marca o fim do ciclo de vida de um sprint, demostrando o que realmente foi entregue ao final do ciclo de desenvolvimento. Na seo 5.4 fala-se sobre retrospectiva e como melhorar o processo do scrum e sprint dentro de equipes.
29 necessrio para realizao das estrias, somente o scrum team pode definir o quanto capaz entregar durante o ciclo de vida do sprint (PICHLER, 2011). Em comum acordo product Owner, scrum team e scrum master, determinam um objetivo em comum para o ciclo de vida do sprint, que a descrio do que deve ser alcanado ao final do ciclo de desenvolvimento, as estimativas de esforo no devem sofrer influncia dos stakeholders e do Product Owner, cabe ao Scrum team definir de forma mais assertiva o possvel o grau de complexidade das estrias (KNIBERG, 2007). Durante o perodo ciclo de vida do sprint, os membros da equipe tem a liberdade de escolher quais estrias desejam trabalhar, estrias que ocupam o espao de desenvolvimento maior que um dia, so quebradas em sub tarefas, para sempre ter um incremento novo da estria principal (PHAM, 2011). Diariamente realizada a reunio Daily scrum Meeting, para uma breve discusso sobre o andamento das estrias, ser visto um pouco mais sobre esta reunio nos tpicos a seguir (PHAM, 2011) . Aps o ciclo de vida do sprint, ele deve ser avaliado de acordo com o objetivo traado, na reunio de sprint Review Meeting, analisando os pontos positivos, negativos, todas as lies devem ficar no histrico para melhorar os sprints futuros e todo o ciclo de vida do scrum dentro das equipes (KNIBERG, 2007).
30 anterior e o que pretendem fazer no dia, em relao as estrias do sprint, os ouvintes no so autorizados a falar no Daily scrum Meeting, atravs da Daily scrum Meeting possvel, identificar impedimentos que bloqueiam o desenvolvimento e concluso de qualquer estria que compem o Product Backlog do sprint (VODDE, 2009). O scrum master responsvel por tratar os impedimentos de forma rpida e objetiva para que a equipe possa avanar com as estrias, com os relatos do que foi feito, o que vai ser feito hoje e se h impedimentos (KNIBERG, 2007). possvel realizar priorizao de estrias dentro de um dia de trabalho e a equipe acaba com uma viso mais ampla do andamento do sprint, em relao as estrias j finalizadas e as que ainda devem ser desenvolvidas (KNIBERG, 2007). Na reunio de Daily scrum Meeting, no se deve resolver problemas, se por ventura algum problema for levantado, ele dever ser discutido fora da reunio, somente com os membros do scrum team envolvidos na estria e as pessoas envolvidas diretamente no problema que podem auxiliar de alguma forma para que o problema seja sanado (SURDEK, 2010). A Daily scrum Meeting, no dever ser encarada como uma ferramenta para atualizao de status do scrum team para o scrum master, mas sim para interao entre as pessoas e a proliferao do conhecimento entre scrum team, scrum master e Ouvintes participantes do Meeting, existem ferramentas apropriadas que podem fornecem atualizao de status e acompanhamento do projeto para o scrum master (KNIBERG, 2007).
31 pr-produo das funcionalidades incrementais do produto de software (KNIBERG, 2007). Esta reunio tem como participantes o scrum master, scrum team, product Owner e os StakeHolders, no decorrer da reunio o sprint finalizado avaliado, no qual levantado se o objetivo do sprint foi atingido, se as estrias inseridas do Product Backlog para o Product Backlog do sprint esto de acordo com os requisitos e se de uma forma geral a equipe conclui o ciclo de vida do sprint de forma satisfatria, analisando se os objetivos foram atingidos de forma satisfatria para os interessados no ciclo de vida do Sprint (COHN, 2011).
32 velocidades grande, tenta-se achar o que causou tamanha discrepncia (COHN, 2011). A diferena entre velocidade estimada, velocidade atingida, pode ser causada por erros de estimativa, interferncia externa, como por exemplo desenvolvedores sendo requisitados a realizar tarefas que no fazem parte do ciclo de vida do sprint, de forma alguma isto pode ocorrer, conforme a equipe vai adquirindo experincia no produto de software e com o framework scrum erros de estimativa so cada vez menores, toda e qualquer estimativa deve ser realizada por todos os membros do Scrum Team, e deve ser feita durante o planejamento do ciclo de vida do Sprint (COHN, 2011).
33
6 PREPARANDO A EQUIPE
Neste captulo abordamos como implementar scrum em equipes que nunca utilizaram mtodos geis de desenvolvimento ou outra ferramenta para gerenciamento de projetos. Na seo 6.1 destaca-se como evangelizar o time e a flexibilidade do scrum, que pode ser combinado com outros mtodos de desenvolvimento, sua curva de aprendizado estritamente pequena e fcil. Na seo 6.2, defini-se como criar sprints, organizar o backlog e o jogo plainning poker para torna as estimativas mais dinmicas e atraentes para os participantes. Na seo 6.3, entra-se no tema clculos de esforos, que tcnica melhor para equipes que nunca trabalharam com scrum, como realmente saber o quanto a equipe produz e entrega ao final de cada ciclo de desenvolvimento. Na seo 6.4 como inicia o sprint e as melhores prticas para gerenciamento e monitoramento. Na seo 6.5 abordado como cancelar um sprint e o quanto isto traumatizante para equipe, como evitar ou a melhor forma de se conduzir este processo.
gerenciamento de projetos, quando so colocados frente a frente com o scrum, tendem a colocar barreiras e impedimentos, devido a sua estrutura de planejamento, gerenciamento, por no conhecer o scrum ou por que a maioria das pessoas no gosta de mudanas ou impem barreira h algo que desconhecem, neste momento chegada a hora de evangelizar a equipe, abordando os principais conceitos, ganho de rentabilidade e visibilidade do trabalho durante projetos que utilizam o framework scrum. O framework scrum to flexvel que pode ser combinado com outros frameworks de desenvolvimento que a equipe j esteja utilizando em seus projetos, desta forma no impedimentos ou barreiras que impeam sua implantao.
34 A curva de aprendizado pequena, porque scrum tem conceitos muito bem definidos, de fcil assimilao e permiti a adaptao para qualquer tipo de equipe e projeto, deixando como foco principal o produto de software a ser desenvolvido e a melhor forma para atingir este objetivo, entregando um produto com qualidade e dentro do escopo definido pelos Stakeholders e patrocinadores do projeto, conforme descrito nos tpicos acima.
35 individuais e cada membro deve mostrar sua carta, com o esforo que julga necessrio para desenvolver a estria, no momento em que for solicitado, as estimativas menores e maiores para uma estria devem ser justificadas, para que a equipe seja capaz de definir um esforo em comum e para que todos se sintam confortveis para trabalhar na estria que esta sendo estimada. Ao finalizar a estimavas tem-se o quanto de esforo necessrio para concluso do ciclo de vida do sprint, conforme a equipe vai realizando os sprints, as estimativas no decorrer do tempo se tornam cada vez mais assertivas.
36 estimada e velocidade real, que so efetivamente as estrias terminadas e entregues, estrias no prontas ou no iniciadas ao final do sprint tem valor 0.
A velocidade dependente do grau de experincia do desenvolvedores, estimativas iniciais e problemas que no foram previstos no momento da estimativas, extremamente til quando esta velocidade no sera comparada com sprints anteriores ou futuros. A maneira mais simples de estimar velocidade e capacidade de um equipe que utiliza o framework scrum a tcnica tempo de ontem, que consiste em avaliar os sprints j terminados e a comparao entre estrias do sprint atual com as estrias de sprints anteriores, mas s possvel para equipes que j tenham efetivamente concludo um ciclo sprint, que o nmero de membros e grau de experincia seja o mesmo e forma de trabalho seja inalterada. O clculo simples de recurso, obtido atravs da velocidade do sprint anterior, dividido, pelo nmero de desenvolvedores, multiplicado pelo nmero de dias do ciclo de vida do sprint, por exemplo se temos 4 desenvolvedores e um sprint de 15 dias, tem-se 60 dias de recursos disponveis, e o sprint anterior com uma velocidade de 180 pontos, chega-se ao fator de foco, que auxilia para estimar a capacidade de sprints futuros. Formula: 180 (desenvolvedores x 15) = 3, ento tem-se aqui o fato de foco do desenvolvedores, se o sprint for de 10 dias ento a capacidade mxima da equipe 120 pontos de estria, utilizando como base o fator de foco 3 como citado no exemplo anterior. O Planning Poker uma atividade para que cada membro da equipe, estima a estria de acordo com o seu entendimento e para que no tenha uma combinao prvia do esforo para se concluir uma determinada estria, jogo no qual cada membro recebe um baralho com os pontos por estria que podem atribuir, desta
37 forma provocando uma discusso maior sobre o escopo e as discrepncias existentes, que muito melhor serem descobertas antes e discutidas.
38
39
Este captulo enfoca a metodologia tradicional de desenvolvimento balbrdia e cascata, abordando seus paradigmas e conceitos, realizada tambm uma comparao em relao ao framework scrum. Na seo 7.1 so levantados a essncia do workflow do modelo tradicional e foco nos requisitos no no desenvolvimento do produto de software. Na seo 7.2 aborda-se o modelo balbrdia e sua estrutura defasada. Na seo 7.3 trata-se do ciclo de vida clssico um modelo extremamente utilizado no inicio do desenvolvimento de softwares e que nos dias atuais ainda utilizada em diversas empresas de desenvolvimento de software, levando-se todas as fases de desenvolvimento contemplados por esta metodologia. Na seo 7.4 realizada a comparao entre scrum e os modelos tradicionais, evidenciando e demostrando como scrum extremamente vantajoso em relao ao modelo tradicional.
40 implementados. Estes modelos em muitas empresas e projetos, acabam se tornando inviveis para o gerenciamento de projetos, devido a quantidade de membros na equipe. Este modelo totalmente focado na documentao e anlise, tornando os projetos demorados, em virtude que se houver mudana nos requisitos uma nova documentao deve ser elaborado para estar em conformidade com os requisitos, desta forma o tempo do projeto vai aumentando, quando finalizados em muitos casos j esto obsoletos, no atendendo mais as necessidade do cliente.
um modelo totalmente inflexvel, que deve ser utilizado somente quando requisitos estiverem bem claros, este modelo dominou o gerenciamento de projetos durante muitos anos, apesar dos problemas e o grande nmero de projetos encerrados antes do trmino devido a sua inflexibilidade e as mtricas utilizadas para clculos de estimativas, normalmente os prazos tambm no so compridos, devido a todo o planejamento ser realizado no comeo do projeto. As etapas descritas abaixo, so as mais relevantes no modelo cascata, mas podem existir sub-etapas, pois existem uma variao grande entre um projeto e outro, mas sempre respeitando o formato sequencial, ou seja s se inicia uma etapa ao trmino da anterior. Pressman (2006) define que o ciclo de vida clssico o paradigma mais utilizando
42 na engenharia de software e tambm o mais antigo e at mesmo os mais fiis defensores deste modelo, passaram a questionar o seu ciclo de etapas e planejamento.
43 documentao, que engloba os modelos e entidades que sero desenvolvidas com base nos requisitos de um determinado sistema. Aps o levantamento de requisitos, consegue-se identificar o problema que o produto de software, ser capaz de resolver. Nesta etapa do projeto o objetivo principal representar os requisitos levantados atravs de uma representao de produto de software, com informaes detalhadas para que possa ser implementado, reforando os requisitos: arquitetura do software, projeto da interface e a estrutura de dados. A fase de projeto de software deve ser toda documentada, tendo como base a definio de requisitos, quando mais detalhada esta fase a construo ser mais objetiva no gerando problema de interpretao e atrasos na construo do produto de software.
7.3.3 Desenvolvimento
Conforme Pressman (2006), a etapa de desenvolvimento o ato de transformar, utilizando ferramentas e linguagens de programao, o projeto de software em um produto de software utilizvel pelo cliente. nesta etapa que criado o cdigo fonte do produto de software, em conformidade com o Projeto de software, utilizando linguagem de programao adequado ao projeto. No inicio do desenvolvimento de software utilizava-se linguagens estruturadas, hoje em dia se utilizam-se linguagens orientadas a objetos, no se deve misturar diferentes linguagens no mesmo produto de software, pois isto dificulta a manuteno da aplicao, tambm nesta etapa criada toda a estruturada de dados.
44 Aps o encerramento da etapa de desenvolvimento, segue-se para etapa de testes e avaliao do produto de software gerado, avaliando se o objetivo do produto de software realmente atende aos requisitos anteriormente definidos e se as condies de aceite do produto esto em conformidade.
45
7.3.5 Implantao
Conforme Pressman (2006), implantao a entrega do produto de software para o usurio final, a partir deste momento o usurio final vai avaliar o produto de software entregue e se ele realmente atende as suas expectativas e reais necessidades para solucionar o problema levantados na anlise de requisitos. Toda e qualquer modificao deve ser documentada para dar inicio a manuteno do produto de software se este for o caso, neste momento o cliente final pode no estar de acordo com o produto de software entregue, levando ao fracasso do projeto, por falhas em uma das fases do modelo Cascata e em virtude do cliente tem acesso ao produto de software somente ao final do ciclo de implantao. Para o produto de software pode ser necessrio manuteno, quando erros forem encontrados e novas funcionalidades so requisitadas para atender o domnio do problema, toda manuteno de software que o projeto utiliza o modelo Cascata, cada uma das etapas anteriores deve ser repetida.
46
- Entregas constantes, diminuindo as expectativas do cliente em relao ao produto - Atrasos afetam o projeto como um tudo;
47
8 CONCLUSO
No inicio deste estudo o objetivo foi identificar como melhorar a qualidade de software utilizando scrum para gerenciamento de projetos? Nas pginas anteriores, foi realizada uma comparao com a metodologia tradicional cascata, abordando todas as fases do desenvolvimento de um produto de software, paradigmas e conceitos das metodologias, foi descrito de forma simples, como implementar dentro de equipes o framework scrum, at mesmo em equipes que nunca utilizam nenhuma metodologia para o desenvolvimento de software. Ao final deste estudo, pode-se afirmar e concluir que o framework de desenvolvimento scrum, efetivamente melhora a qualidade do produto de software, em virtude do seu workflow dinmico, por ser incremental, interativo e por ter participao constante dos indivduos envolvidos em todo o processo. Todas as etapas de desenvolvimento de software so avaliadas constantemente desta forma as tomadas de decises so mais assertivas e no tempo certo, com o objetivo de entregar um produto final dentro dos padres de aceite do cliente e mercado consumidor, em conformidade com os requisitos, respeitando prazos e custos pr estabelecidos no inicio do projeto. Com a competitividade entre empresas desenvolvedoras de software e empresas dos diversos setores de tecnologia, a procura por reduo de custos, aliada a necessidade de desenvolver produtos de softwares cada vez mais rpido e com qualidade, a metodologia de desenvolvimento aplicada sem dvida alguma, faz grande diferena dentro desta indstria. As boas prticas devem ser seguidas para que empresas e negcios possam se sobressair perante os seus concorrentes, empresas com mtodos de desenvolvimento que no tem como foco o feedback constante ao cliente, uma integrao com a equipe de analistas, desenvolvedores e qualidade, esto sujeita ao fracasso dos projetos e consequentemente prejuzos extremos.
48 Utilizando de forma correta o framework scrum, todos os processos so organizados de forma fcil e dinmica, em todas reas das empresas, facilitando o processo de comunicao, especificao e entrega de um produto de forma organizada. A metodologia scrum totalmente flexvel e pode ser utilizada em conjunto com outros mtodos geis existentes no mercado, tambm no existe uma frmula mgica de implementao ou conduta, mas sim princpios bsicos que ajudam na implantao do framework dentro das equipes e no decorrer do tempo equipes mais maduras podem perfeitamente definir novos princpios e prticas para melhorar o scrum, desta forma tornando o processo evolutivo e em conformidade com as necessidades das equipes e produto de software que esta sendo desenvolvido. As metodologias utilizadas para gerenciamento do desenvolvimento de software so importantes tal como o processo de codificao e a evoluo das linguagens de desenvolvimento, as metodologias no devem ficar alheias os avanos tecnolgicos e o aumento do grau de experincia de todos os envolvidos no processo, este trabalho faz estudo do workflow padro do framework Scrum, mas vrios requisitos do framework podem ser modificados e analisado os seus impactos, positivos no gerenciamento de desenvolvimento de software, como por exemplo, sprints de uma semana e no duas, a quebra de estrias e micros tarefas, a participao das reas envolvidos na solicitaes como parte do processo de validao do produto e qualidade, deve ser realizada a comparao com outros metodologias de desenvolvimento, tais como Crystal, Lean, XP, RUP e CMMI. software com acompanhamento do cliente, atingindo as metas, reduzindo custos e prazos de
49
REFERNCIAS
SIMS, Chris; JOHNSON, Hillary Louise. The Elements of Scrum. Califrnia: Dymaxicon, 2007. KNIBERG, Henrik. SCRUM AND XP FROM THE TRENCHES. Estocolmo: Lightning Source, 2007. COHN, Mike. Desenvolvimento de software com Scrum - Aplicando Mtodos geis com Sucesso. So Paulo: Bookman, 2011. SCHWABER, Ken. Agile Project Management With Scrum. Washington: Microsoft Pr, 2004. SCHWABER, Ken; Sutherland, Jef. O guia definitivo do Scrum, as regras do jogo. Jul. 2011. Scrum.org, p.5 p.14. SURDEK, Steffan; WOODWARD, Elizabeth, GANIS Matthew. A Practical Guide to Distributed Scrum. Boston: Ibm Press, 2010. FOWLER, Martin. The New Methodology. MartinFowler, Chicago, dec. 2005: Disponvel em: Acesso em: fev. 2012. VODDE, Bas; LAMAN, Cralg. Scaling Lean & Agile Development-Thinking And Organizational Tools For Large-scale Scrum. Massachusetts: Addison-wesley Professional, 2009. PRESSMAN, Roger. Engenharia de software. So Paulo: McGraw-Hill Brasil, 2006. PICHLER, Roman. Gesto de Produtos com Scrum - 2011. So Paulo: Campus, 2011. PHAM, Andrew; PHAM, Phuong Van. Scrum em Ao. So Paulo: Novatec, 2011.