Escolar Documentos
Profissional Documentos
Cultura Documentos
2009 - Eric Cavalcanti Et Al. - Ferramenta OpenSource para Apoio Ao Uso Do Scrum Por Equipes Distribuídas PDF
2009 - Eric Cavalcanti Et Al. - Ferramenta OpenSource para Apoio Ao Uso Do Scrum Por Equipes Distribuídas PDF
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
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
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.O backend desenvolvido utilizando a
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].
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
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
OinteresseeaceitaodoFireScrumpodeserobservadoatravsdonmerodeacessos
aositeutilizandosoluescomooGoogleAnalytics(http://www.google.com/analytics).
Como indicador do grau de abrangncia da ferramenta, podese atestado pela
distribuiogeogrficadosacessosaosite,conformeapresentadonaFigura5.
Figura5InformaesdeacessoprovidaspeloGoogleAnalytics.
VersionOneferramentadesenvolvidapelaVersionOnepossuindoumaverso
comercial(EnterpriseEdtion)eumaversogratuitaporumano(TeamEdition)
comlimitaesdenmerodeusurioserecursos;
58
IIIWorkshopdeDesenvolvimentoDistribudodeSoftware
Agilo for Scrum ferramenta open source desenvolvida pela agile42 GmbH
implementada como plugin para o software wiki e gerenciador de tickets
chamadoTrac.
AGILOFOR
SCRUM
FIRESCRUM
SCRUMWORKS
FUNCIONALIDADES
TARGETPROCESS
VERSIONONE
Tabela1.Anlisecomparativadefuncionalidades
ProductManagement
SprintManagement
ReportandAnalytics
UserManagement
WebServicesAPI
BugTracking
TaskBoard
TestManagement
SprintReview
SprintRetrospective
ReleasePlanning
ImpedimentsManagement
DesktopAgent
PlanningPoker
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
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