Você está na página 1de 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.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].

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.

AGILOFOR
SCRUM

FIRESCRUM

SCRUMWORKS

FUNCIONALIDADES

TARGETPROCESS

VERSIONONE

Tabela1.Anlisecomparativadefuncionalidades

ProductManagement

SprintManagement

ReportandAnalytics

UserManagement

WebServicesAPI

BugTracking

TaskBoard

TestManagement

SprintReview

SprintRetrospective

ReleasePlanning

ImpedimentsManagement

DesktopAgent

PlanningPoker

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

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

Você também pode gostar