Anda di halaman 1dari 10

IIIWorkshopdeDesenvolvimentoDistribudodeSoftware

FerramentaOpenSourceparaApoioaoUsodoScrumpor EquipesDistribudas
EricCavalcanti34, TeresaM.deMedeirosMaciel1234,JonesAlbuquerque134
1

UniversidadeFederalRuraldePernambucoRecife,Brasil
2

UniversidadeFederaldePernambucoRecife,Brasil

C.E.S.A.RCentrodeEstudoseSistemasAvanadosdoRecifeRecife,Brasil
4

INESInstitutoNacionalparaEngenhariadeSoftware

eric@cesar.org.br,tmmm@cin.ufpe.br,joa@deinfo.ufrpe.br

Abstract.ThispaperpresentsFireScrum,aprojectplanningandmanagement tool designed to support distributed Scrum teams. FireScrum is an open source tool developed based on Rich Internet Application (RIA) technology andcanbeespeciallyusefulacrossdistributedteams.Thispapercomprisesan overview of distributed Scrum teams, FireScrum architecture proposal, its functionalitiesandcomparativeanalysiswithothertools.StatusofFireScrum andresultsofitsvalidationisdiscussed. Resumo. Este artigo apresenta o FireScrum, uma ferramenta de apoio ao planejamento e gerenciamento de projetos com Scrum, sendo especialmente til para apoio a equipes distribudas, sendo opensource e baseada em tecnologiaRichInternetApplication(RIA).Esteartigocompreendeumaviso geral do ciclo Scrum, a proposta arquitetural do FireScrum e uma anlise funcional comparativa com outras ferramentas. Resultados de validaes realizadassoanalisados.

1.Contextualizao
Aadoodeabordagensgeistemsidocrescentenaindstriadesoftware,apresentando resultados positivos em termos de prazo, custo e qualidade [Versionone 2008]. Tais abordagens visam desburocratizao das atividades [Schwaber 2004], e empregam princpioscomociclositerativoseentregasrpidasdesoftwarefuncionando[Beck,Kat all 2001]. A essncia desse movimento calcado na agilidade, flexibilidade e habilidadedecomunicao[Highsmith,J.2004]. Dentre as metodologias geis propostas, o Scrum tem se apresentado como uma das mais adotadas, o se observa em pesquisas que apontam sua adoo por cerca de 70% entreempresasqueusammetodologiasgeis[Versionone2008]. Assimcomooutrasmetodologiasgeis,oScrumenfatizaainteraodotimeatravsde comunicao constante e facetoface. Por outro lado, desenvolvimento por equipes remotas tem apresentado um crescimento contnuo, particularmente visvel desde a ltima dcada [Damian & Moitra 2006]. Entre as razes para a adoo por times distribudos, podese ressaltar a reduo de custos de locomoo, a facilidade de
51

IIIWorkshopdeDesenvolvimentoDistribudodeSoftware

envolvimento de especialistas em reaschave de, alem da flexibilidade para criaoe desativao de equipes de trabalho. Neste contexto, o modelo de Scrum de Scrums distribudorecomendadopelaScrumAlliance(www.scrumalliance.com),oqualdivide o trabalho em partes dentre times Scrum isolados, eliminado a maioria das dependncias entre os mesmos [Sutherland at all 2007]. Se ferramentas de gerenciamento tradicional de projetos podem comprometer o apelo visual e simplista defendido pela metodologia, o uso de artefatos no automatizados como cartes e murais, podem representar um desafio adoo da metodologia por equipes remotas [Mountain 2009]. Neste contexto uma boa iniciativa pode ser o desenvolvimento de ferramentasdeapoioaoScrumemequipesdistribudas[Cristal2008]. Inserido neste contexto, este artigo apresenta uma aplicao opensource, FireScrum, desenvolvida para facilitar a adoo do Scrum por times distribudos contemplando apoio ao planejamento e controle de projetos, utilizandose fortemente de design centradonousurioetecnologiasRIA.2. OFireScrumfoiconcebidocomoresultadodeumtrabalhodeconclusodecursoesua propostaaperfeioadapeladissertaodeummestradoprofissionalizante.Combasena definio arquitetural e funcional, a aplicao foi implementada por cerca de 60 estudantes de psgraduao, sendo atualmente estudo de caso de 4 dissertaes em andamento.

2.MetodologiasgeiseScrum
O termo Metodologias geis tornouse popular em 2001 quando especialistas em processosdesoftwareestabeleceramprincpioscomuns,sendocriadaaAlianagileo estabelecidooManifestogil[Beck,Katall.2001]. Alinhado aos princpios geis, o Scrum foi criado inicialmente como um framework para gerenciamento de projetos na indstria convencional e publicado no artigo The New New Product DevelopmentGame[Takeuchi1986].Oprimeirodesenvolvimento desoftwarecomScrumfoirealizadoem1993porJeffSutherlandnaEaselCorporation [Sutherland 2004], e junto com Ken Schwaber formalizaram o Scrum [Sutherland 2007],comoprocessodedesenvolvimentonaOOPSLA[Schwaber1997]. O Scrum compreende atividades de monitoramento e feedback, em geral, atravs de reunies rpidas e dirias com toda a equipe, visando identificao e correo de deficincias e/ou impedimentos no desenvolvimento [Schwaber 2002]. A proposta baseadaemumcicloiterativoeincremental,ondecadaiteraoplanejadadeacordo comaprioridadedefinidapelocliente. O Scrum implementa um esqueleto iterativo e incremental, atravs de trs papis principais[Schwaber2004].ProductOnwer(PO),queestabeleceobjetivosdoproduto, define e prioriza as funcionalidades, ou itens de backlog e participa ativamente do desenvolvimento,validandooprodutodecadasprint;ScrumMaster(SM),cujopapel facilitar o trabalho do time, removendo os impedimentos levantados pelo time e apoiandoomesmonousodoScrum;Time,responsvelpelodesenvolvimentodositens de backlog, define como transformar o product backlog em incremento de funcionalidades,gerenciandoseuprpriotrabalho.Soresponsveiscoletivamentepelo sucessodaiteraoeconseqentementepeloprojetocomoumtodo.

52

IIIWorkshopdeDesenvolvimentoDistribudodeSoftware

2.1OCicloScrum No Scrum, um projeto se inicia com uma viso do produto que ser desenvolvido [Schwaber2004].OciclodevidadeprojetosScrumdefinidoemiteraesquepodem ser de duas a quatro semanas, conhecidas como sprint. Ao final de cada sprint entregue um incremento do produto tendo passado por todo o processo de desenvolvimento,auditoriaeteste.

Figura1.VisogeraldoprocessodoScrum

No incio de cada sprint realizada a reunio de planejamento (Sprint Planning Meeting),ondeoTimecolaborativamentecomoPOdefineoobjetivodaprximasprint eositensqueserodesenvolvidosnamesma(SelectedProductBacklog).Emseguida,o Time define as tarefas necessrias para a realizao de cada item selecionado para a sprint.Astarefasnopodemlevarmaisde16horasparaserexecutadasouteremmais de 1 dia de durao. O prprio time escolhe quais tarefas desejam realizar, ou seja, tarefas nunca devem ser atribudas. Diariamente realizada uma reunio de reviso (Scrum Daily Meeting), conduzida pelo SM, com durao mxima de 15 minutos, estandotodosdep,paraacompanhamentoeidentificaodeimpedimentos. Ao trmino da execuo da sprint, o Time renese com o PO (Sprint Review) para demonstrarosresultadosobtidoseparaqueoPOvalideseosobjetivosdasprintforam alcanados. Em seguida, o SM conduz a Sprint Retrospective, onde so levantados pontosdemelhoria.Todoocicloentoreiniciadoataconclusodoprodutofinal. Para monitoramento do andamento do projeto dois grficos so gerados o Product Burndown e o Sprint Burndown, que representam o quanto de funcionalidades foram entreguesdoprodutoedasprintrespectivamentenalinhadotempo.

53

IIIWorkshopdeDesenvolvimentoDistribudodeSoftware

2.2ScrumDistribudo Assimcomooutrasmetodologiasgeis,oScrumenfatizaainteraodotimeatravsde comunicao constante e facetoface. Por outro lado, desenvolvimento por equipes remotas tem apresentado um crescimento contnuo, particularmente visvel desde a ltima dcada [Damian & Moitra 2006]. Entre as razes para a adoo por times distribudos, podese ressaltar a reduo de custos de locomoo, a facilidade de envolvimento de especialistas em reaschave de, alem da flexibilidade para criaoe desativao de equipes de trabalho. Neste contexto, o modelo de Scrum de Scrums distribudorecomendadopelaScrumAlliance(www.scrumalliance.com),oqualdivide o trabalho em partes dentre times Scrum isolados, eliminado a maioria das dependncias entre os mesmos [Sutherland at all 2007]. Se ferramentas de gerenciamento tradicional de projetos podem comprometer o apelo visual e simplista defendido pela metodologia, o uso de artefatos no automatizados como cartes e murais, podem representar um desafio adoo da metodologia por equipes remotas [Mountain 2009]. Neste contexto uma boa iniciativa pode ser o desenvolvimento de ferramentasdeapoioaoScrumemequipesdistribudas[Cristal2008]. 3.OFireScrum O FireScrum uma ferramenta que rene um conjunto de aplicaes integradas para suportar equipes que utilizam o Scrum como base para o desenvolvimento de seus projetos,sendoespecialmentetilparaequipesquetrabalhamremotamente. A idia do FireScrum foi concebida por um trabalho de dissertao de mestrado, motivadaporlacunasexistentesempropostassimilaresepelademandaporferramentas de apoio ao Scrum. Durante o desenvolvimento da dissertao, as funcionalidades definidas foram implementadas por cerca de 60 psgraduandos da disciplina de EngenhariadeSoftwarenaUniversidadeFederaldePernambuco. OsdesafiosenfrentadospeloFireScrumnoforampoucos.Ousodepostitsemurais exigiaumainterfacesimples,masmuitoprximadoreal,oquedecertaformaatornava complexa de ser definida e implementada. A interao facetoface, defendidapelas metodologiasgeis,demandavarecursosmultimdiaparagarantirinteraoentreotime mesmoqueremoto.Aarquiteturadeveriasermodularizadaparanocriardependncias entreseusmdulos.Almdisso,aferramentadeveriaseropensource. O FireScrum foi desenvolvido utilizando conceitos da Web 2.0 e de Rich Internet Applications,apresentandofocoemusabilidadeparagarantirasimplicidadedoseuuso. umaaplicaoWeb,oquesignificaqueamesmaacessvelremotamenteatravsde um browser, podendo ser utilizada em um ambiente de Internet ou Intranet, apresentandoumaarquiteturamodulareextensvel.
3.1Arquitetura

AarquiteturadoFireScrumestdivididaemduaspartes:ofrontendeoback end. O frontend, tambm conhecido como camada de apresentao, composto pela parte da aplicao responsvel pela interface do usurio e seu comportamento. acessvelatravsdeumbrowsercomoFlashPlayerinstalado.Esterequisitosedem funo do uso do Adobe Flex, framework de cdigo aberto que permite a criao e manutenodeRichInternetApplications. backend desenvolvido utilizando a O plataforma Java que contm a regra de negcio, os servios e o mecanismo de
54

IIIWorkshopdeDesenvolvimentoDistribudodeSoftware

persistncia.ParaquesejapossvelacomunicaoentreoAdobeFlexeoJavadeforma eficiente, foi utilizado o BlazeDS que uma tecnologia da Adobe que possibilita a comunicao entre aplicaes desenvolvidas em Adobe Flex/Air utilizando um protocolobinriodenominadoAMF(ActionMessageFormat)[Adobe2008]. Na Figura 2 apresentada a arquitetura macro da aplicao onde os servios JavadobackendsoexpostosatravsdoBlazeDSeconsumidospelofrontendAdobe Flex. A comunicao realizada atravs de chamadas RPC (Remote Procedure Call) utilizandooformatodemensagemAMF.

Figura2.ArquiteturaMacrodoFireScrum

Arquiteturadofrontend

OAdobeFlexfoiumpoderosoframeworkparadesenvolvidodeaplicaesdeinternet ricas(RIA),eporteroFlashPlayercomoseuambientedeexecuonoqualsegundoa Adobeestinstaladoem99%dosPCsconectadosWeb.Naarquiteturadofrontendfoi adotadooCairngorm,queumamicroarquiteturaparadesenvolvimentodeaplicaes de internet rica para o Adobe Flex. O Cairngorm utiliza o padro arquitetural MVC ondeaseparaodepapiseresponsabilidadessobemevidentes[Cairngorm].
Arquiteturadobackend

Obackendcompostobasicamenteporentidadesdenegcios,serviosepersistncia. A escolha pela tecnologia Java para o backend se deu pela existncia de uma infra estrutura fornecida por tal tecnologia para a implementao deaplicaocorporativas, almdaexistnciadoBlazeDSfornecidopelaAdobecomoprodutoOpenSourceeque temcomoobjetivointegraraplicaesFlexcomoJavautilizandooprotocoloAMF. 4.FuncionalidadesdoFireScrum As funcionalidades do FireScrum foram definidas com base em um trabalho de benchmarkingondeforamconsideradas estoorganizadasemmdulosintegrados,masindependentesentresi.OmduloCore considerado o principal da ferramenta, sendo autosuficiente para contemplar todo o ciclodeumprojetoScrum.Osdemaissoconsideradosmdulosdeapoio,excluindoa necessidadedeferramentasdeterceiros. Aseguirsoapresentadasasprincipaisfuncionalidadesdivididasemmdulos.

55

IIIWorkshopdeDesenvolvimentoDistribudodeSoftware

4.1Core

ResponsvelportodaaparteoperacionalbsicadoScrum.Dentreasfuncionalidades, disponveis destacamse: controle de acesso, cadastro de usurios, cadastro de projeto criao de itens de backlog, priorizao de itens de backlog, criao de sprints, associao de itens de backlog a sprints, criao de tarefas para um dado item de backlog, alocao do membro do time a determinada tarefa, gerao do grfico de burndowndasprintegrficodeburndowndoproduto.
4.2TaskBoard

ReproduzoquadrofsicooumuralutilizadoemprojetosreaisbaseadosemScrum.O intuito permitir que, atravs do quadro, os usurios da aplicao possam manipular postits virtuais de forma simples. Dentre as funcionalidades disponveis no mdulo TaskBoard destacamse: visualizar os itens de backlog para a sprint selecionada, priorizarositensdebacklogdasprintselecionada,cadastrartarefas(representadaspor postits virtuais) para um dado item de backlog informando um responsvel e uma estimativadeesforo,mudaroestadodastarefasarrastandoaspeloquadro,cadastrar impedimentos,associarimpedimentosatarefasouitensdebacklog,efetuarzoominou zoomoutnoquadro,aplicarfiltrosvisuaisparadestacartarefasquepossuamumadada informaoevisualizaropercentualdeprogressodasprintcorrente.

Figura3TeladoMduloTaskBoarddoFireScrum.

4.3PlanningPoker

ViabilizaousoremotodatcnicadeestimativaPlanningPoker.Estemdulocontacom recursosmultimdiaparareuniesdeestimativasutilizandocomunicaoviachat,vdeo ou texto. Dentre as funcionalidades disponveis destacamse: visualizar os itens do backlog a serem estimados, definir os valores das estimativas a serem utilizados, possibilidadedecompartilharudioevdeodosparticipantes,chatentreosparticipantes egerenciaroprocessodeestimativaentreosparticipantes.

56

IIIWorkshopdeDesenvolvimentoDistribudodeSoftware

Figura4TeladoMduloPlanningPokerdoFireScrum.

4.4TestManagement

Possibilitaracriaodecasosdetesteseseugerenciamento,evitandoassimautilizao deferramentasexternasparatalfinalidade.Dentreasfuncionalidadesdisponveisneste mdulodestacamse:criaodeplanodeteste,criaodecasosdeteste,criaodejob deexecuodetestes(TestRunner),associarcasosdetesteaitensdobacklog,registro dosresultadosdostestes,criarbibliotecadecasosdetestesedisponibilizar.


4.5BugTracking

Oobjetivodestemdulofornecerrecursosparao registrodebugsetodoociclode vida necessrio para a soluo dos mesmos, evitando assim a necessidade de ferramentas externas para tal finalidade. Dentre as funcionalidades disponveis destacamse: registrar bug, associar um item de backlog a um bug, definir um responsvel e adicionar notas ao bug, anexar arquivos ao bug, enviar emails para envolvidoscomobug,manterhistricoegerarrelatrioscomfiltrossobrebugs.
4.6DesktopAgent

Facilita o acesso as funcionalidades do FireScrum, uma vez emqueomesmoquando executadoestardisponvelatravsdabandejadoSistemaOperacional,ondeousurio ter acesso a tais funcionalidades atravs de um menu suspenso. Dentre as funcionalidades destacamse: visualizar tarefas e tarefas do usurio, editar tarefas, receberalertasdosistema,reportarbugsefornecerumchatentreosintegrantesdotime.

5.DiferenciaisdoFireScrumsobreFerramentasSimilares
OFireScrumatualmenteseencontraemtestedevalidao,disponvelparaumnmero restrito de avaliadores voluntrios, os quais esto sugerindo melhorias emergenciais antes que a ferramenta seja disponibilizada para download. O trabalho de ajustes e validao deve prosseguir at setembro deste ano, quando a ferramenta dever ser disponibilizada para a comunidade global. No entanto, o cdigo fonte da aplicao se encontraestvel,disponvelparadownloadapartirdositedaferramenta. Alm do design centrado no usurio, baseado em recursos multimdia, RIA e Adobe Flex, o qual fornece uma interface prxima dos artefatos manuais recomendados pelo
57

IIIWorkshopdeDesenvolvimentoDistribudodeSoftware

Scru, o FireScrum uma ferramenta freeware e open source, favorecendo especialmentepequenasemdiasempresasquenopodemoneraraadoodeprticas geisdedesenvolvimentodesoftwarecomcustoadicionaldeferramentas.
5.1MotivacaoglobalpeloFireScrum

OinteresseeaceitaodoFireScrumpodeserobservadoatravsdonmerodeacessos aositeutilizandosoluescomooGoogleAnalytics(http://www.google.com/analytics). Como indicador do grau de abrangncia da ferramenta, podese atestado pela distribuiogeogrficadosacessosaosite,conformeapresentadonaFigura5.

Figura5InformaesdeacessoprovidaspeloGoogleAnalytics.

O mapa apresentado na Figura 5 apresenta o nmero e distribuio do acesso ao site desdesuapublicao,noinciodesuaconcepoem2008.Emboracomparadoaoutras ferramentas j consolidadas nesta rea como ScrumWorks, o nmero de acesso possa serconsideradobaixo,omesmosetornarelevanteconsiderandoqueoFireScrumuma iniciativa desenvolvida por trabalho voluntrio de estudantes da Engenharia de Software.Arelevnciadosdadosintensificaseseobservandoaabrangnciageogrfica deacessosaosite,provenientesde97localidades(videreaverdedomapa).
5.2FuncionalidadesdoFireScrumversusferramentassimilares

Para se definir a arquitetura funcional do FireScrum, uma anlise de algumas das ferramentasmaisconhecidasnacomunidadefoirealizada,paraseidentificarlacunase diferenciais potenciais Na anlise de ferramentas foram avaliadas algumas das mais conhecidasnomercado,queso: VersionOneferramentadesenvolvidapelaVersionOnepossuindoumaverso comercial(EnterpriseEdtion)eumaversogratuitaporumano(TeamEdition) comlimitaesdenmerodeusurioserecursos; TargetProcess ferramenta desenvolvida pela TargetProcess possuindo uma verso comercial (Full Edtion) e uma verso gratuita (Community Edition) limitadaa5usurios;

58

IIIWorkshopdeDesenvolvimentoDistribudodeSoftware

ScrumWorks ferramenta desenvolvida pela Danube Technologies possuindo umaversocomercial(Pro Edition)eumaversogratuita(BasicEdition) com recursosmaisbsicos; Agilo for Scrum ferramenta open source desenvolvida pela agile42 GmbH implementada como plugin para o software wiki e gerenciador de tickets chamadoTrac.

A Tabela 1 apresenta um mapeamento de funcionalidades relevantes entres as ferramentasanalisadaseasfuncionalidadesimplementadaspeloFireScrum.


Tabela1.Anlisecomparativadefuncionalidades
TARGETPROCESS SCRUMWORKS VERSIONONE

FIRESCRUM

FUNCIONALIDADES

ProductManagement SprintManagement ReportandAnalytics UserManagement WebServicesAPI BugTracking TaskBoard TestManagement SprintReview SprintRetrospective ReleasePlanning ImpedimentsManagement DesktopAgent PlanningPoker

X X X X X X X X X X

X X X X X X X X X X

X X X X X X X X

X X X X X X X X X X X X

Analisando a Tabela 1, possvel observar que o FireScrum atende a maioria das funcionalidadesfornecidaspelasdemaisferramentasconjuntamente.DesktopAgenteo Planning Poker, focado no suporte ao planejamento de sprints incluindo recursos multimdiaparaintensificarainteraodotime.

6.ConsideraesFinais
EsteartigoapresentouoFireScrum,umaaplicaoopensourcequereneumconjunto de aplicaes para suportar o planejamento e gerenciamento de projetos com Scrum, sendotilespecialmenteparaequipesdistribudas. Como trabalhos futuros, esto planejadas otimizaes da ferramenta a partir dos resultados dos testes pela comunidade, alm do desenvolvimento de funcionalidades

59

AGILOFOR SCRUM

X X X X X X X

IIIWorkshopdeDesenvolvimentoDistribudodeSoftware

paraapoiosreuniesdeSprintRevieweSprintRetrospectivefechandoassimtodoo cicloScrum.

Referncias
Adobe Systems Incorporated (2008) BlazeDSOverview. Disponvel em: http://opensource.adobe.com/wiki/display/blazeds/Overview.Acessoem:31/03/2009. Adobe Systems Incorporated (2008) About Cairngorm. Disponvel em: http://opensource.adobe.com/wiki/display/cairngorm/About.Acessoem:05/04/2009. Beck, K at all. (2001) Manifesto for Agile Software Development. Disponvel em: http://www.agilemanifesto.org.Acessoem:2/04/2008. CristalM.,WildtD.,Prikladnicki,R.(2008)UsageofScrumPracticesWithinaglobal Company, "Usage of SCRUM Practices within a Global Company", 2008 IEEE InternationalConferenceonGlobalSoftwareEngineering,pp.222226. Damian, D., Moitra, D. (2006). Guest Editors' Introduction: Global Software Development:HowfarHaveWeCome?,IEEESoftware,23(5),pp.1719. Highsmith, J. (2004) Agile Project Management Creating Innovative Products, AddisonWesley. Schwaber, K. et al. (1997) Scrum Development Process, OOPSLA Business Object DesignandImplementationWorkshop,Eds.London:Springer. Schwaber,K.andBeedle,M.(2002)AgileSoftwareDevelopmentWithScrum.NJ: PrentenceHall. Schwaber, K. (2004) Agile Project Management With Scrum, Redmond: Microsoft Press. Sutherland, J. (2004) Agile Development: Lessons Learned from the First Scrum,CutterAgileProjectManagementAdvisoryService:ExecutiveUpdate,vol. 5,pp.14. Sutherland J., Viktorov A., Blount J., Puntikov N. (2007) "Distributed Scrum: Agile Project Management with Outsourced Development Teams," HICSS'40, Hawaii InternationalConferenceonSoftwareSystems,BigIsland,Hawaii,2007. Versionone (2008) The State of Agile Development Survey Results, http://www.versionone.com/pdf/3rdAnnualStateOfAgile_FullDataReport.pdf.Acesso em:29/03/2009. Takeuchi,H.,Nonaka,I.(1986)TheNewNewProductDevelopmentGame.Harvard BusinessReview,86116,JaneiroFevereiro,pp137146.

60

Anda mungkin juga menyukai