Caio Teixeira da Quinta Eugênio Augusto Jimenes …Lean Startup 2.1 Lean Startup: O que é 2.1.1...

65

Transcript of Caio Teixeira da Quinta Eugênio Augusto Jimenes …Lean Startup 2.1 Lean Startup: O que é 2.1.1...

Universidade de Satildeo Paulo

Instituto de Matemaacutetica e Estatiacutestica

Bacharelado em Ciecircncia da Computaccedilatildeo

Caio Teixeira da Quinta

Eugecircnio Augusto Jimenes

Desenvolvimento de uma Plataforma Web para

divulgaccedilatildeo e centralizaccedilatildeo de eventos aplicando conceitos

de Meacutetodos Aacutegeis e Lean Startup

Satildeo Paulo

Dezembro de 2016

Desenvolvimento de uma Plataforma Web paradivulgaccedilatildeo e centralizaccedilatildeo de eventos aplicando conceitos

de Meacutetodos Aacutegeis e Lean Startup

Monograa nal da disciplina

MAC0499 Trabalho de Formatura Supervisionado

Supervisor Prof Dr Alfredo Goldman vel Lejbman

Cosupervisor Jorge Melegati

Satildeo Paulo

Dezembro de 2016

Agradecimentos

01 Caio

Primeiramente gostaria de agradecer ao professor Alfredo e ao Jorge por acreditarem no

projeto desde o comeccedilo e darem todo o suporte e ajuda necessaacuterias para seu desenvolvimento

ao longo do ano muito obrigado

Aos amigos Thiciene Nico Denise Rafel Fuzitani Everton e todos aqueles que de alguma

forma ajudaram ou simplesmente me aguentaram nesse periacuteodo muitiacutessimo obrigado

Agrave Fernanda minha namorada pelo suporte atenccedilatildeo e conselhos valiosos Muito obrigado

por me motivar e escutar sempre que eu precisei te amo

Natildeo foram poucas as duacutevidas e problemas pessoais que tive ao longo de toda a gradu-

accedilatildeo entatildeo seria injusto natildeo dedicar esse trabalho aos meus pais que acima de tudo nunca

deixaram de acreditar em mim mesmo quando eu jaacute havia desistido Dizer que esse trabalho

tambeacutem eacute de vocecircs ainda eacute muito pouco entatildeo prero dizer que eacute apenas a primeira de

muitas conquistas que viratildeo Obrigado por estarem sempre ao meu lado

Caio Teixeira da Quinta Novembro de 2016

02 Eugenio

Agradeccedilo ao orientador professor Alfredo Goldman vel Lejbman e ao coorientador Jorge

Melegati pelo apoio e suporte neste projeto Muito obrigado pela lideranccedila e paciecircncia

Dedico este trabalho especialmente agrave minha irmatilde Carolina Jimenes que sempre me

apoiou e incentivou desde antes da graduaccedilatildeo Provou-me que dislexia natildeo eacute uma deciecircncia

mas sim uma outra forma de ver e enfrentar o mundo

Eugenio Augusto Jimenes Novembro de 2016

i

Resumo

Neste texto descreveremos todo o ciclo de desenvolvimento da plataforma USP Even-

tos A ferramenta foi criada a partir da constataccedilatildeo de que a Cidade Universitaacuteria possui

grande diversidade acadecircmica e cultural que manifesta-se em uma variedade de eventos que

satildeo promovidos e realizados em toda sua extensatildeo Levando em consideraccedilatildeo essa grande

quantidade de eventos eacute esperado que existam problemas para sua divulgaccedilatildeo Ao realizar

uma enquete junto agrave comunidade USP constatou-se a necessidade de um sistema para cen-

tralizar a divulgaccedilatildeo desses eventos Como consequecircncia desse resultado foi proposto criar

o USP Eventos Para auxiliar no desenvolvimento do sistema foi utilizada uma abordagem

que combinou a metodologia Lean Startup com conceitos de Meacutetodos Aacutegeis Ao longo do

processo foi possiacutevel observar os benefiacutecios e desvantagens das metodologias escolhidas e

desenvolver um sistema direcionado aos interesses dos usuaacuterios

Palavras-chave eventos meacutetodos aacutegeis lean startup desenvolvimento web

iii

Abstract

In this text we will describe the entire development cycle of the platform USP Events

The tool was created on because the Campus has great academic and cultural diversity ma-

nifesting itself in a variety of events that are promoted and done throughout the Campus

extension Taking in consideration this great amount of events some trouble in disclosure

them is expected By making an enquiry to the USP community it was determined the need

for a system that would centralize the propagation of these events As a consequence of this

result the creation of USP Events was proposed To help the system development an appro-

ach combining the methodology Lean Startup with the concepts of Agile Methodologies was

used Throughout the process it was possible to observe the advantages and disadvantages

of the chosen methodologies and to develop a system directed to the users interests

Keywords agile methodologies lean startup web development

v

Sumaacuterio

01 Caio i

02 Eugenio i

Lista de Abreviaturas ix

1 Introduccedilatildeo 1

11 Motivaccedilatildeo e Objetivos 1

2 Lean Startup 3

21 Lean Startup O que eacute 3

211 Startup uma deniccedilatildeo 3

212 Lean Startup 3

22 Produto Miacutenimo Viaacutevel (MVP) 4

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn) 5

24 Desenvolvimento de Clientes 7

25 Conceitos Utilizados 8

3 Meacutetodos Aacutegeis 9

31 Origem 9

32 Deniccedilatildeo 9

33 Meacutetodos Aacutegeis especiacutecos 10

331 Scrum 10

332 Test Driven Development (TDD) 11

333 Continuous Integration (CI) 12

334 Kanban 13

34 Um contraponto O modelo Cascata 14

35 Conceitos Utilizados 15

4 Tecnologias 17

41 Ruby on Rails 17

411 Ruby 17

412 Rails 18

413 Porque escolher Ruby on Rails 19

vii

viii SUMAacuteRIO

42 Heroku 20

43 Travis CI 20

44 Trello 21

45 Github 21

46 Google Analytics e Google Tag Manager 22

47 Painel de opiniotildees Populares - POP 22

48 HeatMap 23

49 Typeform 23

5 Usp Eventos 25

51 Deniccedilatildeo do Projeto 25

511 Motivaccedilatildeo 25

512 Enquete e deniccedilatildeo do projeto 25

52 Denindo as caracteriacutesticas do Sistema 27

521 Pesquisa de Sistemas Semelhantes 27

522 Plataforma Web x Moacutevel 28

53 Kanban 29

54 Primeira Iteraccedilatildeo 31

541 Construccedilatildeo 31

542 Divulgaccedilatildeo 33

543 Meacutetricas 33

544 Aprendizado 34

55 Segunda Iteraccedilatildeo 36

551 Construccedilatildeo 36

552 Divulgaccedilatildeo 39

553 Meacutetricas 39

554 Aprendizado 40

56 Terceira Iteraccedilatildeo 41

561 Construccedilatildeo 41

562 Meacutetricas 44

563 Aprendizado 45

57 Uacuteltimas Atualizaccedilotildees 47

6 Conclusotildees 49

7 Proacuteximos Passos 51

Referecircncias Bibliograacutecas 53

Lista de Abreviaturas

MVP Produto Miacutenimo Viaacutevel ( Minimum Viable Product)

CoC Convenccedilatildeo sobre Conguraccedilatildeo ( Convention over Conguration)

DRY Natildeo se repita (Dont Repeat yourself )

ORM Mapeamento Objeto Relacional(Object Relational Mapping)

POP Painel de Opiniatildeo Popular

UX Experiecircncia do Usuaacuterio ( User Experience)

UI Interface de Usuaacuterio (User Interface)

RoR Ruby on Rails

PasS Plataforma como Serviccedilo (Platform as Service)

GA Google Analytics

SO Sistema Operacional

ix

Capiacutetulo 1

Introduccedilatildeo

11 Motivaccedilatildeo e Objetivos

A Cidade Universitaacuteria possui uma variedade de eventos sociais e acadecircmicos que ocor-rem por vezes simultaneamente em toda sua extensatildeo Esse cenaacuterio se daacute pela complexidadecultural existente no campus que envolve discentes docentes e comunidade

Junto agrave comunidade USP foi realizada uma enquete via e-mail na qual constatou-se ointeresse em uma plataforma para divulgar e centralizar os inuacutemeros eventos acadecircmicosou natildeo da Cidade Universitaacuteria Para atender a essa demanda de interesse foi propostaa criaccedilatildeo do USP Eventos um sistema web voltado para os usuaacuterios se informarem sobreo que ocorre no campus aleacutem de incentivar a organizaccedilatildeo de eventos de modo a ocupar oespaccedilo puacuteblico

Para o desenvolvimento do projeto foi escolhida uma abordagem baseada em conceitos deLean Startup e Meacutetodos Aacutegeis A escolha dessa metodologia combinada daacute-se pela sua amplaaplicaccedilatildeo em projetos com grande grau de incerteza nos quais um tratamento interativo eum desenvolvimento incremental auxiliam no aprendizado sobre os interesses do usuaacuterios

O objetivo do trabalho foi aplicar os conceitos de Lean Startup e Meacutetodos Aacutegeis em umprojeto praacutetico a m de desenvolver um software consistente que atendesse agraves necessidadesdos usuaacuterios aleacutem de possibilitar observar as vantagens e desvantagens das abordagensescolhidas

Os dois primeiros capiacutetulos dessa monograa tem como objetivo contextualizar os concei-tos de Lean Startup e Meacutetodos Aacutegeis Em sequecircncia o capiacutetulo Tecnologias descreve breve-mente os programas serviccedilos linguagens e arcabouccedilos utilizados durante o desenvolvimentoO capiacutetulo USP Eventos mostra com detalhes os ciclos de desenvolvimento do projeto EmConclusotildees eacute feita uma anaacutelise dos resultados obtidos e nalizando a Parte Subjetiva naqual satildeo feitos comentaacuterios sobre os desaos disciplinas relevantes e proacuteximos passos

1

Capiacutetulo 2

Lean Startup

21 Lean Startup O que eacute

211 Startup uma deniccedilatildeo

Por meio da popularizaccedilatildeo da Internet e dos computadores pessoais nos anos seguintesde 1990 o termo startup foi generalizado para classicar pequenas empresas com propostasinovadoras sejam por atuarem com as novas tecnologias que surgiram para o grande mercadona eacutepoca como as chamadas empresas online ou ponto com seja pelo seu novo modo deorganizaccedilatildeo e processo de produccedilatildeo

Paternoster (2014) provecirc uma deniccedilatildeo de uma startup de software baseada nos desaosque ela enfrenta

bull Pouco ou nenhum histoacuterico operacional startups possuem pouca ou nenhuma experi-ecircncia em desenvolver processos de negoacutecio e gerenciamento organizacional

bull Recursos limitados startups tipicamente focam em lanccedilar um uacutenico produto promovecirc-lo e construir alianccedilas estrateacutegicas

bull Muacuteltiplas inuecircncias pressatildeo dos investidores clientes parceiros e competidores im-pactam nas tomadas de decisotildees de uma empresa Apesar de importantes nas startupselas tendem a ser inconsistentes

bull Mercado e tecnologias dinacircmicas empresas novas de softwares frequentemente pre-cisam desenvolver ou operar com tecnologias disruptivas para atuar em potenciaismercados alvos

Com o passar dos anos e com o impacto da internet no mercado global o termo startupamadureceu para englobar empresa grupo ou organizaccedilatildeo que busca um modelo de negoacuteciosescalaacutevel geralmente envolvida em implementaccedilotildees de processos inovadores de desenvolvi-mento e pesquisa de mercado-alvo (Blank 2003)

212 Lean Startup

Lean Startup (Startup Enxuta) eacute um conceito introduzido por Eric Ries empreendedorde diversas startups do Vale do Siliacutecio Trata-se de uma metodologia de projeto derivada dacombinaccedilatildeo de outros padrotildees de negoacutecios como Produto Miacutenimo Viaacutevel (Minimal ViableProduct) Desenvolvimento de Clientes (Customer Development) e Desenvolvimento Aacutegil deSoftware ou Meacutetodo Aacutegil (Agile Software Development)

3

4 LEAN STARTUP 22

Ries propotildee que eacute possiacutevel encurtar os ciclos de implementaccedilatildeo de um produto (ousoluccedilatildeo) adotando uma combinaccedilatildeo de testes hipoacuteteses de negoacutecio e experimentaccedilotildees emconjunto com o puacuteblico-alvo Por meio do lanccedilamento perioacutedico eacute possiacutevel avaliar natildeo apenasquesitos teacutecnicos como tambeacutem a reaccedilatildeo do mercado Consequentemente o retorno de cadainteraccedilatildeo afeta o planejamento do produto e suas futuras versotildees (Ries 2011)

Esse desenvolvimento ciacuteclico eacute chamado de ciclo de Construir-Medir-Aprender e baseia-senatildeo soacute em construir uma versatildeo atualizada do produto como tambeacutem em obter um apren-dizado vaacutelido por meio de experimentos que permitam comprovar a aceitaccedilatildeo ou natildeo dashipoacuteteses de negoacutecio Proposta em 1996 por Frank Robinson CEO da empresa SyncDev1trata-se da produccedilatildeo de versotildees simples do produto em muacuteltiplos ciclos de avaliaccedilatildeo estra-teacutegia derivada do padratildeo de Produto Miacutenimo Viaacutevel popularizado anos depois por SteveBlank (Junk 2000)

Robinson propotildee o lanccedilamento de uma versatildeo o mais simples possiacutevel do produto demodo a antecipar a anaacutelise de mercado e assim minimizar o risco de retorno por parte daempresa A inovaccedilatildeo de Steve Blank foi adaptar essa estrateacutegia incluindo o lado do clienteo que ele chama de Desenvolvimento do Cliente (Customer Development) Blank vai aleacutemde apenas minimizar o risco de retorno busca compreender as necessidades do cliente

O Lean Startup aprimora ainda mais o conceito de avaliaccedilotildees sob cada interaccedilatildeo com ointuito de maximizar o aprendizado e alinhar a evoluccedilatildeo do projeto com o desenvolvimentodo cliente

22 Produto Miacutenimo Viaacutevel (MVP)

O conceito de Produto Miacutenimo Viaacutevel (MVP) eacute baseado em construir uma versatildeo doproduto de modo a maximizar a validaccedilatildeo de aprendizado utilizando o menor esforccedilo possiacutevelO tempo de validaccedilatildeo do produto eacute um fator decisivo para o seu sucesso no cumprimentoda demanda do mercado e no uso otimizado de recursos da empresa (Ries 2011)

Um MVP deve possuir 3 caracteriacutesticas 2

1 Ter valor suciente para que uma pessoa queira utilizaacute-lo ou compraacute-lo

2 Possuir sucientes benefiacutecios para reter os chamados usuaacuterios pioneiros (early adop-ters) 3

3 Ser capaz de prover um ciclo de feedback suciente para guiar o desenvolvimento

Durante a concepccedilatildeo do projeto satildeo denidas algumas hipoacuteteses sobre o produto Naetapa do MVP satildeo denidas quais funcionalidades ou estrateacutegias deseja-se testar de modoque possam validar as hipoacuteteses iniciais e obter o maacuteximo de aprendizado possiacutevel

O MVP permite testar se a funcionalidade ou hipoacutetese sobre um projeto eacute bem aceitapelo puacuteblico alvo implementando-a de uma forma simplicada sem despender horas a o noseu desenvolvimento Assim caso comprove-se que tal premissa natildeo eacute interessante para oprojeto seu desenvolvimento eacute interrompido sem que tenham sido desperdiccedilados tempo erecursos

Os termos miacutenimo e maacuteximo referentes a produto miacutenimo viaacutevel e maacuteximo apren-dizado respectivamente frequentemente se mostram vagos na documentaccedilatildeo do que eacute um

1 Retirado de SyncDev httpwwwsyncdevcomminimum-viable-product Acesso em 19 ago 20162 Retirado de Techopedia Minimum Viable Product (MVP) httpswwwtechopediacomdenition

27809minimum-viable-product-mvp Acesso em 19 ago 20163Os primeiros consumidores de um produto que acaba de tornar-se disponiacutevel

23 O CICLO DE CONSTRUIR-MEDIR-APRENDER (BUILD-MEASURE-LEARN) 5

MVP Como o proacuteprio Eric Ries esclarece a aplicaccedilatildeo desses termos natildeo eacute riacutegida e variamde acordo com o contexto e julgamento de quem o estiver aplicando 4

Eacute importante ressaltar que um MVP natildeo eacute um produto completo com as funcionalidadesmiacutenimas e sim um conjunto de caracteriacutesticas miacutenimas que conguram o serviccedilo ou produtoque estaacute sendo oferecido Desta forma um MVP pode ser apenas um protoacutetipo ou mesmoapenas um mockup do que seraacute oferecido na versatildeo completa

Alguns tipos de MVP satildeo 5

bull Viacutedeo explicativo um viacutedeo curto contendo uma explicaccedilatildeo clara do que o produto faze porque as pessoas deveriam utilizaacute-lo Esse eacute o caso do Dropbox que fez um viacutedeo6

com cerca de 5 minutos explicando o que era o seu serviccedilo

bull Landing page criar uma paacutegina inicial contendo uma explicaccedilatildeo detalhada do queeacute o produto que seraacute oferecido assim como um formulaacuterio de contato Por meio doGoogle Analytics eacute possiacutevel manter um registro de conversotildees (no caso cadastros doformulaacuterio) a m de medir o interesse das pessoas no produto

bull MVP Mago de OZ A ideia eacute criar uma paacutegina visualmente completa que funcionecomo o produto nal mas que na verdade exista algueacutem executando as tarefas manu-almente Esse foi o caso da Zappos hoje a maior vendedora de sapatos dos EstadosUnidos

bull MVP com Consierge Em vez de prover um produto realiza-se manualmente o ser-viccedilo executando exatamente os mesmos passos para o usuaacuterio que a empresa realizariaEacute um meacutetodo natildeo escalaacutevel e lento para executar pois requer que se esteja em contatodireto com o cliente e realize as tarefas manualmente No entanto isso permite raacutepidoaprendizado tanto sobre o produto como sobre e o cliente

Esse foi o caso da empresa Food on the Table que ajuda seus consumidores a criaremlistas de compras acharem receitas e conseguirem descontos nos ingredientes em seussupermercados favoritos Inicialmente seus fundadores encontraram uma senhora in-teressada no serviccedilo e por 10 doacutelaressemana eles mantinham as listas de compra eprocuravam por descontos nos supermercados em que ela fazia compras

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)

Com o surgimento das Metodologia Aacutegeis foi possiacutevel criar softwares de maneira interativae envolver o cliente no processo Poreacutem devido agrave falta de um arcabouccedilo para testar ashipoacuteteses comerciais acabava-se muitas vezes por desenvolver um software com todas asfuncionalidades que o cliente gostaria mas sem obter um sucesso comercial7

O modelo de Construir-Medir-Aprender surge entatildeo com o principal objetivo de eliminaras incertezas sobre as hipoacuteteses do produto alinhando-o com as expectativas dos usuaacuterios

4Fonte Startup Lessons Learned Minimum Viable Product a guide httpwwwstartuplessonslearnedcom200908minimum-viable-product-guidehtml

5 Fonte Scale my Business The Ultimate Guide to Minimum Viable Products httpscalemybusinesscomthe-ultimate-guide-to-minimum-viable-products Acesso em 19 ago 2016

6Link para o viacutedeo httpswwwyoutubecomwatchv=7QmCUDHpNzE Acesso em 3 set 20167Fonte Por Steve Blank em httpventurebeatcom20150506

build-measure-learn-doesnt-mean-throwing-things-against-the-wall-to-see-if-they-stick Acesso em 19ago 2016

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Desenvolvimento de uma Plataforma Web paradivulgaccedilatildeo e centralizaccedilatildeo de eventos aplicando conceitos

de Meacutetodos Aacutegeis e Lean Startup

Monograa nal da disciplina

MAC0499 Trabalho de Formatura Supervisionado

Supervisor Prof Dr Alfredo Goldman vel Lejbman

Cosupervisor Jorge Melegati

Satildeo Paulo

Dezembro de 2016

Agradecimentos

01 Caio

Primeiramente gostaria de agradecer ao professor Alfredo e ao Jorge por acreditarem no

projeto desde o comeccedilo e darem todo o suporte e ajuda necessaacuterias para seu desenvolvimento

ao longo do ano muito obrigado

Aos amigos Thiciene Nico Denise Rafel Fuzitani Everton e todos aqueles que de alguma

forma ajudaram ou simplesmente me aguentaram nesse periacuteodo muitiacutessimo obrigado

Agrave Fernanda minha namorada pelo suporte atenccedilatildeo e conselhos valiosos Muito obrigado

por me motivar e escutar sempre que eu precisei te amo

Natildeo foram poucas as duacutevidas e problemas pessoais que tive ao longo de toda a gradu-

accedilatildeo entatildeo seria injusto natildeo dedicar esse trabalho aos meus pais que acima de tudo nunca

deixaram de acreditar em mim mesmo quando eu jaacute havia desistido Dizer que esse trabalho

tambeacutem eacute de vocecircs ainda eacute muito pouco entatildeo prero dizer que eacute apenas a primeira de

muitas conquistas que viratildeo Obrigado por estarem sempre ao meu lado

Caio Teixeira da Quinta Novembro de 2016

02 Eugenio

Agradeccedilo ao orientador professor Alfredo Goldman vel Lejbman e ao coorientador Jorge

Melegati pelo apoio e suporte neste projeto Muito obrigado pela lideranccedila e paciecircncia

Dedico este trabalho especialmente agrave minha irmatilde Carolina Jimenes que sempre me

apoiou e incentivou desde antes da graduaccedilatildeo Provou-me que dislexia natildeo eacute uma deciecircncia

mas sim uma outra forma de ver e enfrentar o mundo

Eugenio Augusto Jimenes Novembro de 2016

i

Resumo

Neste texto descreveremos todo o ciclo de desenvolvimento da plataforma USP Even-

tos A ferramenta foi criada a partir da constataccedilatildeo de que a Cidade Universitaacuteria possui

grande diversidade acadecircmica e cultural que manifesta-se em uma variedade de eventos que

satildeo promovidos e realizados em toda sua extensatildeo Levando em consideraccedilatildeo essa grande

quantidade de eventos eacute esperado que existam problemas para sua divulgaccedilatildeo Ao realizar

uma enquete junto agrave comunidade USP constatou-se a necessidade de um sistema para cen-

tralizar a divulgaccedilatildeo desses eventos Como consequecircncia desse resultado foi proposto criar

o USP Eventos Para auxiliar no desenvolvimento do sistema foi utilizada uma abordagem

que combinou a metodologia Lean Startup com conceitos de Meacutetodos Aacutegeis Ao longo do

processo foi possiacutevel observar os benefiacutecios e desvantagens das metodologias escolhidas e

desenvolver um sistema direcionado aos interesses dos usuaacuterios

Palavras-chave eventos meacutetodos aacutegeis lean startup desenvolvimento web

iii

Abstract

In this text we will describe the entire development cycle of the platform USP Events

The tool was created on because the Campus has great academic and cultural diversity ma-

nifesting itself in a variety of events that are promoted and done throughout the Campus

extension Taking in consideration this great amount of events some trouble in disclosure

them is expected By making an enquiry to the USP community it was determined the need

for a system that would centralize the propagation of these events As a consequence of this

result the creation of USP Events was proposed To help the system development an appro-

ach combining the methodology Lean Startup with the concepts of Agile Methodologies was

used Throughout the process it was possible to observe the advantages and disadvantages

of the chosen methodologies and to develop a system directed to the users interests

Keywords agile methodologies lean startup web development

v

Sumaacuterio

01 Caio i

02 Eugenio i

Lista de Abreviaturas ix

1 Introduccedilatildeo 1

11 Motivaccedilatildeo e Objetivos 1

2 Lean Startup 3

21 Lean Startup O que eacute 3

211 Startup uma deniccedilatildeo 3

212 Lean Startup 3

22 Produto Miacutenimo Viaacutevel (MVP) 4

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn) 5

24 Desenvolvimento de Clientes 7

25 Conceitos Utilizados 8

3 Meacutetodos Aacutegeis 9

31 Origem 9

32 Deniccedilatildeo 9

33 Meacutetodos Aacutegeis especiacutecos 10

331 Scrum 10

332 Test Driven Development (TDD) 11

333 Continuous Integration (CI) 12

334 Kanban 13

34 Um contraponto O modelo Cascata 14

35 Conceitos Utilizados 15

4 Tecnologias 17

41 Ruby on Rails 17

411 Ruby 17

412 Rails 18

413 Porque escolher Ruby on Rails 19

vii

viii SUMAacuteRIO

42 Heroku 20

43 Travis CI 20

44 Trello 21

45 Github 21

46 Google Analytics e Google Tag Manager 22

47 Painel de opiniotildees Populares - POP 22

48 HeatMap 23

49 Typeform 23

5 Usp Eventos 25

51 Deniccedilatildeo do Projeto 25

511 Motivaccedilatildeo 25

512 Enquete e deniccedilatildeo do projeto 25

52 Denindo as caracteriacutesticas do Sistema 27

521 Pesquisa de Sistemas Semelhantes 27

522 Plataforma Web x Moacutevel 28

53 Kanban 29

54 Primeira Iteraccedilatildeo 31

541 Construccedilatildeo 31

542 Divulgaccedilatildeo 33

543 Meacutetricas 33

544 Aprendizado 34

55 Segunda Iteraccedilatildeo 36

551 Construccedilatildeo 36

552 Divulgaccedilatildeo 39

553 Meacutetricas 39

554 Aprendizado 40

56 Terceira Iteraccedilatildeo 41

561 Construccedilatildeo 41

562 Meacutetricas 44

563 Aprendizado 45

57 Uacuteltimas Atualizaccedilotildees 47

6 Conclusotildees 49

7 Proacuteximos Passos 51

Referecircncias Bibliograacutecas 53

Lista de Abreviaturas

MVP Produto Miacutenimo Viaacutevel ( Minimum Viable Product)

CoC Convenccedilatildeo sobre Conguraccedilatildeo ( Convention over Conguration)

DRY Natildeo se repita (Dont Repeat yourself )

ORM Mapeamento Objeto Relacional(Object Relational Mapping)

POP Painel de Opiniatildeo Popular

UX Experiecircncia do Usuaacuterio ( User Experience)

UI Interface de Usuaacuterio (User Interface)

RoR Ruby on Rails

PasS Plataforma como Serviccedilo (Platform as Service)

GA Google Analytics

SO Sistema Operacional

ix

Capiacutetulo 1

Introduccedilatildeo

11 Motivaccedilatildeo e Objetivos

A Cidade Universitaacuteria possui uma variedade de eventos sociais e acadecircmicos que ocor-rem por vezes simultaneamente em toda sua extensatildeo Esse cenaacuterio se daacute pela complexidadecultural existente no campus que envolve discentes docentes e comunidade

Junto agrave comunidade USP foi realizada uma enquete via e-mail na qual constatou-se ointeresse em uma plataforma para divulgar e centralizar os inuacutemeros eventos acadecircmicosou natildeo da Cidade Universitaacuteria Para atender a essa demanda de interesse foi propostaa criaccedilatildeo do USP Eventos um sistema web voltado para os usuaacuterios se informarem sobreo que ocorre no campus aleacutem de incentivar a organizaccedilatildeo de eventos de modo a ocupar oespaccedilo puacuteblico

Para o desenvolvimento do projeto foi escolhida uma abordagem baseada em conceitos deLean Startup e Meacutetodos Aacutegeis A escolha dessa metodologia combinada daacute-se pela sua amplaaplicaccedilatildeo em projetos com grande grau de incerteza nos quais um tratamento interativo eum desenvolvimento incremental auxiliam no aprendizado sobre os interesses do usuaacuterios

O objetivo do trabalho foi aplicar os conceitos de Lean Startup e Meacutetodos Aacutegeis em umprojeto praacutetico a m de desenvolver um software consistente que atendesse agraves necessidadesdos usuaacuterios aleacutem de possibilitar observar as vantagens e desvantagens das abordagensescolhidas

Os dois primeiros capiacutetulos dessa monograa tem como objetivo contextualizar os concei-tos de Lean Startup e Meacutetodos Aacutegeis Em sequecircncia o capiacutetulo Tecnologias descreve breve-mente os programas serviccedilos linguagens e arcabouccedilos utilizados durante o desenvolvimentoO capiacutetulo USP Eventos mostra com detalhes os ciclos de desenvolvimento do projeto EmConclusotildees eacute feita uma anaacutelise dos resultados obtidos e nalizando a Parte Subjetiva naqual satildeo feitos comentaacuterios sobre os desaos disciplinas relevantes e proacuteximos passos

1

Capiacutetulo 2

Lean Startup

21 Lean Startup O que eacute

211 Startup uma deniccedilatildeo

Por meio da popularizaccedilatildeo da Internet e dos computadores pessoais nos anos seguintesde 1990 o termo startup foi generalizado para classicar pequenas empresas com propostasinovadoras sejam por atuarem com as novas tecnologias que surgiram para o grande mercadona eacutepoca como as chamadas empresas online ou ponto com seja pelo seu novo modo deorganizaccedilatildeo e processo de produccedilatildeo

Paternoster (2014) provecirc uma deniccedilatildeo de uma startup de software baseada nos desaosque ela enfrenta

bull Pouco ou nenhum histoacuterico operacional startups possuem pouca ou nenhuma experi-ecircncia em desenvolver processos de negoacutecio e gerenciamento organizacional

bull Recursos limitados startups tipicamente focam em lanccedilar um uacutenico produto promovecirc-lo e construir alianccedilas estrateacutegicas

bull Muacuteltiplas inuecircncias pressatildeo dos investidores clientes parceiros e competidores im-pactam nas tomadas de decisotildees de uma empresa Apesar de importantes nas startupselas tendem a ser inconsistentes

bull Mercado e tecnologias dinacircmicas empresas novas de softwares frequentemente pre-cisam desenvolver ou operar com tecnologias disruptivas para atuar em potenciaismercados alvos

Com o passar dos anos e com o impacto da internet no mercado global o termo startupamadureceu para englobar empresa grupo ou organizaccedilatildeo que busca um modelo de negoacuteciosescalaacutevel geralmente envolvida em implementaccedilotildees de processos inovadores de desenvolvi-mento e pesquisa de mercado-alvo (Blank 2003)

212 Lean Startup

Lean Startup (Startup Enxuta) eacute um conceito introduzido por Eric Ries empreendedorde diversas startups do Vale do Siliacutecio Trata-se de uma metodologia de projeto derivada dacombinaccedilatildeo de outros padrotildees de negoacutecios como Produto Miacutenimo Viaacutevel (Minimal ViableProduct) Desenvolvimento de Clientes (Customer Development) e Desenvolvimento Aacutegil deSoftware ou Meacutetodo Aacutegil (Agile Software Development)

3

4 LEAN STARTUP 22

Ries propotildee que eacute possiacutevel encurtar os ciclos de implementaccedilatildeo de um produto (ousoluccedilatildeo) adotando uma combinaccedilatildeo de testes hipoacuteteses de negoacutecio e experimentaccedilotildees emconjunto com o puacuteblico-alvo Por meio do lanccedilamento perioacutedico eacute possiacutevel avaliar natildeo apenasquesitos teacutecnicos como tambeacutem a reaccedilatildeo do mercado Consequentemente o retorno de cadainteraccedilatildeo afeta o planejamento do produto e suas futuras versotildees (Ries 2011)

Esse desenvolvimento ciacuteclico eacute chamado de ciclo de Construir-Medir-Aprender e baseia-senatildeo soacute em construir uma versatildeo atualizada do produto como tambeacutem em obter um apren-dizado vaacutelido por meio de experimentos que permitam comprovar a aceitaccedilatildeo ou natildeo dashipoacuteteses de negoacutecio Proposta em 1996 por Frank Robinson CEO da empresa SyncDev1trata-se da produccedilatildeo de versotildees simples do produto em muacuteltiplos ciclos de avaliaccedilatildeo estra-teacutegia derivada do padratildeo de Produto Miacutenimo Viaacutevel popularizado anos depois por SteveBlank (Junk 2000)

Robinson propotildee o lanccedilamento de uma versatildeo o mais simples possiacutevel do produto demodo a antecipar a anaacutelise de mercado e assim minimizar o risco de retorno por parte daempresa A inovaccedilatildeo de Steve Blank foi adaptar essa estrateacutegia incluindo o lado do clienteo que ele chama de Desenvolvimento do Cliente (Customer Development) Blank vai aleacutemde apenas minimizar o risco de retorno busca compreender as necessidades do cliente

O Lean Startup aprimora ainda mais o conceito de avaliaccedilotildees sob cada interaccedilatildeo com ointuito de maximizar o aprendizado e alinhar a evoluccedilatildeo do projeto com o desenvolvimentodo cliente

22 Produto Miacutenimo Viaacutevel (MVP)

O conceito de Produto Miacutenimo Viaacutevel (MVP) eacute baseado em construir uma versatildeo doproduto de modo a maximizar a validaccedilatildeo de aprendizado utilizando o menor esforccedilo possiacutevelO tempo de validaccedilatildeo do produto eacute um fator decisivo para o seu sucesso no cumprimentoda demanda do mercado e no uso otimizado de recursos da empresa (Ries 2011)

Um MVP deve possuir 3 caracteriacutesticas 2

1 Ter valor suciente para que uma pessoa queira utilizaacute-lo ou compraacute-lo

2 Possuir sucientes benefiacutecios para reter os chamados usuaacuterios pioneiros (early adop-ters) 3

3 Ser capaz de prover um ciclo de feedback suciente para guiar o desenvolvimento

Durante a concepccedilatildeo do projeto satildeo denidas algumas hipoacuteteses sobre o produto Naetapa do MVP satildeo denidas quais funcionalidades ou estrateacutegias deseja-se testar de modoque possam validar as hipoacuteteses iniciais e obter o maacuteximo de aprendizado possiacutevel

O MVP permite testar se a funcionalidade ou hipoacutetese sobre um projeto eacute bem aceitapelo puacuteblico alvo implementando-a de uma forma simplicada sem despender horas a o noseu desenvolvimento Assim caso comprove-se que tal premissa natildeo eacute interessante para oprojeto seu desenvolvimento eacute interrompido sem que tenham sido desperdiccedilados tempo erecursos

Os termos miacutenimo e maacuteximo referentes a produto miacutenimo viaacutevel e maacuteximo apren-dizado respectivamente frequentemente se mostram vagos na documentaccedilatildeo do que eacute um

1 Retirado de SyncDev httpwwwsyncdevcomminimum-viable-product Acesso em 19 ago 20162 Retirado de Techopedia Minimum Viable Product (MVP) httpswwwtechopediacomdenition

27809minimum-viable-product-mvp Acesso em 19 ago 20163Os primeiros consumidores de um produto que acaba de tornar-se disponiacutevel

23 O CICLO DE CONSTRUIR-MEDIR-APRENDER (BUILD-MEASURE-LEARN) 5

MVP Como o proacuteprio Eric Ries esclarece a aplicaccedilatildeo desses termos natildeo eacute riacutegida e variamde acordo com o contexto e julgamento de quem o estiver aplicando 4

Eacute importante ressaltar que um MVP natildeo eacute um produto completo com as funcionalidadesmiacutenimas e sim um conjunto de caracteriacutesticas miacutenimas que conguram o serviccedilo ou produtoque estaacute sendo oferecido Desta forma um MVP pode ser apenas um protoacutetipo ou mesmoapenas um mockup do que seraacute oferecido na versatildeo completa

Alguns tipos de MVP satildeo 5

bull Viacutedeo explicativo um viacutedeo curto contendo uma explicaccedilatildeo clara do que o produto faze porque as pessoas deveriam utilizaacute-lo Esse eacute o caso do Dropbox que fez um viacutedeo6

com cerca de 5 minutos explicando o que era o seu serviccedilo

bull Landing page criar uma paacutegina inicial contendo uma explicaccedilatildeo detalhada do queeacute o produto que seraacute oferecido assim como um formulaacuterio de contato Por meio doGoogle Analytics eacute possiacutevel manter um registro de conversotildees (no caso cadastros doformulaacuterio) a m de medir o interesse das pessoas no produto

bull MVP Mago de OZ A ideia eacute criar uma paacutegina visualmente completa que funcionecomo o produto nal mas que na verdade exista algueacutem executando as tarefas manu-almente Esse foi o caso da Zappos hoje a maior vendedora de sapatos dos EstadosUnidos

bull MVP com Consierge Em vez de prover um produto realiza-se manualmente o ser-viccedilo executando exatamente os mesmos passos para o usuaacuterio que a empresa realizariaEacute um meacutetodo natildeo escalaacutevel e lento para executar pois requer que se esteja em contatodireto com o cliente e realize as tarefas manualmente No entanto isso permite raacutepidoaprendizado tanto sobre o produto como sobre e o cliente

Esse foi o caso da empresa Food on the Table que ajuda seus consumidores a criaremlistas de compras acharem receitas e conseguirem descontos nos ingredientes em seussupermercados favoritos Inicialmente seus fundadores encontraram uma senhora in-teressada no serviccedilo e por 10 doacutelaressemana eles mantinham as listas de compra eprocuravam por descontos nos supermercados em que ela fazia compras

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)

Com o surgimento das Metodologia Aacutegeis foi possiacutevel criar softwares de maneira interativae envolver o cliente no processo Poreacutem devido agrave falta de um arcabouccedilo para testar ashipoacuteteses comerciais acabava-se muitas vezes por desenvolver um software com todas asfuncionalidades que o cliente gostaria mas sem obter um sucesso comercial7

O modelo de Construir-Medir-Aprender surge entatildeo com o principal objetivo de eliminaras incertezas sobre as hipoacuteteses do produto alinhando-o com as expectativas dos usuaacuterios

4Fonte Startup Lessons Learned Minimum Viable Product a guide httpwwwstartuplessonslearnedcom200908minimum-viable-product-guidehtml

5 Fonte Scale my Business The Ultimate Guide to Minimum Viable Products httpscalemybusinesscomthe-ultimate-guide-to-minimum-viable-products Acesso em 19 ago 2016

6Link para o viacutedeo httpswwwyoutubecomwatchv=7QmCUDHpNzE Acesso em 3 set 20167Fonte Por Steve Blank em httpventurebeatcom20150506

build-measure-learn-doesnt-mean-throwing-things-against-the-wall-to-see-if-they-stick Acesso em 19ago 2016

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Agradecimentos

01 Caio

Primeiramente gostaria de agradecer ao professor Alfredo e ao Jorge por acreditarem no

projeto desde o comeccedilo e darem todo o suporte e ajuda necessaacuterias para seu desenvolvimento

ao longo do ano muito obrigado

Aos amigos Thiciene Nico Denise Rafel Fuzitani Everton e todos aqueles que de alguma

forma ajudaram ou simplesmente me aguentaram nesse periacuteodo muitiacutessimo obrigado

Agrave Fernanda minha namorada pelo suporte atenccedilatildeo e conselhos valiosos Muito obrigado

por me motivar e escutar sempre que eu precisei te amo

Natildeo foram poucas as duacutevidas e problemas pessoais que tive ao longo de toda a gradu-

accedilatildeo entatildeo seria injusto natildeo dedicar esse trabalho aos meus pais que acima de tudo nunca

deixaram de acreditar em mim mesmo quando eu jaacute havia desistido Dizer que esse trabalho

tambeacutem eacute de vocecircs ainda eacute muito pouco entatildeo prero dizer que eacute apenas a primeira de

muitas conquistas que viratildeo Obrigado por estarem sempre ao meu lado

Caio Teixeira da Quinta Novembro de 2016

02 Eugenio

Agradeccedilo ao orientador professor Alfredo Goldman vel Lejbman e ao coorientador Jorge

Melegati pelo apoio e suporte neste projeto Muito obrigado pela lideranccedila e paciecircncia

Dedico este trabalho especialmente agrave minha irmatilde Carolina Jimenes que sempre me

apoiou e incentivou desde antes da graduaccedilatildeo Provou-me que dislexia natildeo eacute uma deciecircncia

mas sim uma outra forma de ver e enfrentar o mundo

Eugenio Augusto Jimenes Novembro de 2016

i

Resumo

Neste texto descreveremos todo o ciclo de desenvolvimento da plataforma USP Even-

tos A ferramenta foi criada a partir da constataccedilatildeo de que a Cidade Universitaacuteria possui

grande diversidade acadecircmica e cultural que manifesta-se em uma variedade de eventos que

satildeo promovidos e realizados em toda sua extensatildeo Levando em consideraccedilatildeo essa grande

quantidade de eventos eacute esperado que existam problemas para sua divulgaccedilatildeo Ao realizar

uma enquete junto agrave comunidade USP constatou-se a necessidade de um sistema para cen-

tralizar a divulgaccedilatildeo desses eventos Como consequecircncia desse resultado foi proposto criar

o USP Eventos Para auxiliar no desenvolvimento do sistema foi utilizada uma abordagem

que combinou a metodologia Lean Startup com conceitos de Meacutetodos Aacutegeis Ao longo do

processo foi possiacutevel observar os benefiacutecios e desvantagens das metodologias escolhidas e

desenvolver um sistema direcionado aos interesses dos usuaacuterios

Palavras-chave eventos meacutetodos aacutegeis lean startup desenvolvimento web

iii

Abstract

In this text we will describe the entire development cycle of the platform USP Events

The tool was created on because the Campus has great academic and cultural diversity ma-

nifesting itself in a variety of events that are promoted and done throughout the Campus

extension Taking in consideration this great amount of events some trouble in disclosure

them is expected By making an enquiry to the USP community it was determined the need

for a system that would centralize the propagation of these events As a consequence of this

result the creation of USP Events was proposed To help the system development an appro-

ach combining the methodology Lean Startup with the concepts of Agile Methodologies was

used Throughout the process it was possible to observe the advantages and disadvantages

of the chosen methodologies and to develop a system directed to the users interests

Keywords agile methodologies lean startup web development

v

Sumaacuterio

01 Caio i

02 Eugenio i

Lista de Abreviaturas ix

1 Introduccedilatildeo 1

11 Motivaccedilatildeo e Objetivos 1

2 Lean Startup 3

21 Lean Startup O que eacute 3

211 Startup uma deniccedilatildeo 3

212 Lean Startup 3

22 Produto Miacutenimo Viaacutevel (MVP) 4

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn) 5

24 Desenvolvimento de Clientes 7

25 Conceitos Utilizados 8

3 Meacutetodos Aacutegeis 9

31 Origem 9

32 Deniccedilatildeo 9

33 Meacutetodos Aacutegeis especiacutecos 10

331 Scrum 10

332 Test Driven Development (TDD) 11

333 Continuous Integration (CI) 12

334 Kanban 13

34 Um contraponto O modelo Cascata 14

35 Conceitos Utilizados 15

4 Tecnologias 17

41 Ruby on Rails 17

411 Ruby 17

412 Rails 18

413 Porque escolher Ruby on Rails 19

vii

viii SUMAacuteRIO

42 Heroku 20

43 Travis CI 20

44 Trello 21

45 Github 21

46 Google Analytics e Google Tag Manager 22

47 Painel de opiniotildees Populares - POP 22

48 HeatMap 23

49 Typeform 23

5 Usp Eventos 25

51 Deniccedilatildeo do Projeto 25

511 Motivaccedilatildeo 25

512 Enquete e deniccedilatildeo do projeto 25

52 Denindo as caracteriacutesticas do Sistema 27

521 Pesquisa de Sistemas Semelhantes 27

522 Plataforma Web x Moacutevel 28

53 Kanban 29

54 Primeira Iteraccedilatildeo 31

541 Construccedilatildeo 31

542 Divulgaccedilatildeo 33

543 Meacutetricas 33

544 Aprendizado 34

55 Segunda Iteraccedilatildeo 36

551 Construccedilatildeo 36

552 Divulgaccedilatildeo 39

553 Meacutetricas 39

554 Aprendizado 40

56 Terceira Iteraccedilatildeo 41

561 Construccedilatildeo 41

562 Meacutetricas 44

563 Aprendizado 45

57 Uacuteltimas Atualizaccedilotildees 47

6 Conclusotildees 49

7 Proacuteximos Passos 51

Referecircncias Bibliograacutecas 53

Lista de Abreviaturas

MVP Produto Miacutenimo Viaacutevel ( Minimum Viable Product)

CoC Convenccedilatildeo sobre Conguraccedilatildeo ( Convention over Conguration)

DRY Natildeo se repita (Dont Repeat yourself )

ORM Mapeamento Objeto Relacional(Object Relational Mapping)

POP Painel de Opiniatildeo Popular

UX Experiecircncia do Usuaacuterio ( User Experience)

UI Interface de Usuaacuterio (User Interface)

RoR Ruby on Rails

PasS Plataforma como Serviccedilo (Platform as Service)

GA Google Analytics

SO Sistema Operacional

ix

Capiacutetulo 1

Introduccedilatildeo

11 Motivaccedilatildeo e Objetivos

A Cidade Universitaacuteria possui uma variedade de eventos sociais e acadecircmicos que ocor-rem por vezes simultaneamente em toda sua extensatildeo Esse cenaacuterio se daacute pela complexidadecultural existente no campus que envolve discentes docentes e comunidade

Junto agrave comunidade USP foi realizada uma enquete via e-mail na qual constatou-se ointeresse em uma plataforma para divulgar e centralizar os inuacutemeros eventos acadecircmicosou natildeo da Cidade Universitaacuteria Para atender a essa demanda de interesse foi propostaa criaccedilatildeo do USP Eventos um sistema web voltado para os usuaacuterios se informarem sobreo que ocorre no campus aleacutem de incentivar a organizaccedilatildeo de eventos de modo a ocupar oespaccedilo puacuteblico

Para o desenvolvimento do projeto foi escolhida uma abordagem baseada em conceitos deLean Startup e Meacutetodos Aacutegeis A escolha dessa metodologia combinada daacute-se pela sua amplaaplicaccedilatildeo em projetos com grande grau de incerteza nos quais um tratamento interativo eum desenvolvimento incremental auxiliam no aprendizado sobre os interesses do usuaacuterios

O objetivo do trabalho foi aplicar os conceitos de Lean Startup e Meacutetodos Aacutegeis em umprojeto praacutetico a m de desenvolver um software consistente que atendesse agraves necessidadesdos usuaacuterios aleacutem de possibilitar observar as vantagens e desvantagens das abordagensescolhidas

Os dois primeiros capiacutetulos dessa monograa tem como objetivo contextualizar os concei-tos de Lean Startup e Meacutetodos Aacutegeis Em sequecircncia o capiacutetulo Tecnologias descreve breve-mente os programas serviccedilos linguagens e arcabouccedilos utilizados durante o desenvolvimentoO capiacutetulo USP Eventos mostra com detalhes os ciclos de desenvolvimento do projeto EmConclusotildees eacute feita uma anaacutelise dos resultados obtidos e nalizando a Parte Subjetiva naqual satildeo feitos comentaacuterios sobre os desaos disciplinas relevantes e proacuteximos passos

1

Capiacutetulo 2

Lean Startup

21 Lean Startup O que eacute

211 Startup uma deniccedilatildeo

Por meio da popularizaccedilatildeo da Internet e dos computadores pessoais nos anos seguintesde 1990 o termo startup foi generalizado para classicar pequenas empresas com propostasinovadoras sejam por atuarem com as novas tecnologias que surgiram para o grande mercadona eacutepoca como as chamadas empresas online ou ponto com seja pelo seu novo modo deorganizaccedilatildeo e processo de produccedilatildeo

Paternoster (2014) provecirc uma deniccedilatildeo de uma startup de software baseada nos desaosque ela enfrenta

bull Pouco ou nenhum histoacuterico operacional startups possuem pouca ou nenhuma experi-ecircncia em desenvolver processos de negoacutecio e gerenciamento organizacional

bull Recursos limitados startups tipicamente focam em lanccedilar um uacutenico produto promovecirc-lo e construir alianccedilas estrateacutegicas

bull Muacuteltiplas inuecircncias pressatildeo dos investidores clientes parceiros e competidores im-pactam nas tomadas de decisotildees de uma empresa Apesar de importantes nas startupselas tendem a ser inconsistentes

bull Mercado e tecnologias dinacircmicas empresas novas de softwares frequentemente pre-cisam desenvolver ou operar com tecnologias disruptivas para atuar em potenciaismercados alvos

Com o passar dos anos e com o impacto da internet no mercado global o termo startupamadureceu para englobar empresa grupo ou organizaccedilatildeo que busca um modelo de negoacuteciosescalaacutevel geralmente envolvida em implementaccedilotildees de processos inovadores de desenvolvi-mento e pesquisa de mercado-alvo (Blank 2003)

212 Lean Startup

Lean Startup (Startup Enxuta) eacute um conceito introduzido por Eric Ries empreendedorde diversas startups do Vale do Siliacutecio Trata-se de uma metodologia de projeto derivada dacombinaccedilatildeo de outros padrotildees de negoacutecios como Produto Miacutenimo Viaacutevel (Minimal ViableProduct) Desenvolvimento de Clientes (Customer Development) e Desenvolvimento Aacutegil deSoftware ou Meacutetodo Aacutegil (Agile Software Development)

3

4 LEAN STARTUP 22

Ries propotildee que eacute possiacutevel encurtar os ciclos de implementaccedilatildeo de um produto (ousoluccedilatildeo) adotando uma combinaccedilatildeo de testes hipoacuteteses de negoacutecio e experimentaccedilotildees emconjunto com o puacuteblico-alvo Por meio do lanccedilamento perioacutedico eacute possiacutevel avaliar natildeo apenasquesitos teacutecnicos como tambeacutem a reaccedilatildeo do mercado Consequentemente o retorno de cadainteraccedilatildeo afeta o planejamento do produto e suas futuras versotildees (Ries 2011)

Esse desenvolvimento ciacuteclico eacute chamado de ciclo de Construir-Medir-Aprender e baseia-senatildeo soacute em construir uma versatildeo atualizada do produto como tambeacutem em obter um apren-dizado vaacutelido por meio de experimentos que permitam comprovar a aceitaccedilatildeo ou natildeo dashipoacuteteses de negoacutecio Proposta em 1996 por Frank Robinson CEO da empresa SyncDev1trata-se da produccedilatildeo de versotildees simples do produto em muacuteltiplos ciclos de avaliaccedilatildeo estra-teacutegia derivada do padratildeo de Produto Miacutenimo Viaacutevel popularizado anos depois por SteveBlank (Junk 2000)

Robinson propotildee o lanccedilamento de uma versatildeo o mais simples possiacutevel do produto demodo a antecipar a anaacutelise de mercado e assim minimizar o risco de retorno por parte daempresa A inovaccedilatildeo de Steve Blank foi adaptar essa estrateacutegia incluindo o lado do clienteo que ele chama de Desenvolvimento do Cliente (Customer Development) Blank vai aleacutemde apenas minimizar o risco de retorno busca compreender as necessidades do cliente

O Lean Startup aprimora ainda mais o conceito de avaliaccedilotildees sob cada interaccedilatildeo com ointuito de maximizar o aprendizado e alinhar a evoluccedilatildeo do projeto com o desenvolvimentodo cliente

22 Produto Miacutenimo Viaacutevel (MVP)

O conceito de Produto Miacutenimo Viaacutevel (MVP) eacute baseado em construir uma versatildeo doproduto de modo a maximizar a validaccedilatildeo de aprendizado utilizando o menor esforccedilo possiacutevelO tempo de validaccedilatildeo do produto eacute um fator decisivo para o seu sucesso no cumprimentoda demanda do mercado e no uso otimizado de recursos da empresa (Ries 2011)

Um MVP deve possuir 3 caracteriacutesticas 2

1 Ter valor suciente para que uma pessoa queira utilizaacute-lo ou compraacute-lo

2 Possuir sucientes benefiacutecios para reter os chamados usuaacuterios pioneiros (early adop-ters) 3

3 Ser capaz de prover um ciclo de feedback suciente para guiar o desenvolvimento

Durante a concepccedilatildeo do projeto satildeo denidas algumas hipoacuteteses sobre o produto Naetapa do MVP satildeo denidas quais funcionalidades ou estrateacutegias deseja-se testar de modoque possam validar as hipoacuteteses iniciais e obter o maacuteximo de aprendizado possiacutevel

O MVP permite testar se a funcionalidade ou hipoacutetese sobre um projeto eacute bem aceitapelo puacuteblico alvo implementando-a de uma forma simplicada sem despender horas a o noseu desenvolvimento Assim caso comprove-se que tal premissa natildeo eacute interessante para oprojeto seu desenvolvimento eacute interrompido sem que tenham sido desperdiccedilados tempo erecursos

Os termos miacutenimo e maacuteximo referentes a produto miacutenimo viaacutevel e maacuteximo apren-dizado respectivamente frequentemente se mostram vagos na documentaccedilatildeo do que eacute um

1 Retirado de SyncDev httpwwwsyncdevcomminimum-viable-product Acesso em 19 ago 20162 Retirado de Techopedia Minimum Viable Product (MVP) httpswwwtechopediacomdenition

27809minimum-viable-product-mvp Acesso em 19 ago 20163Os primeiros consumidores de um produto que acaba de tornar-se disponiacutevel

23 O CICLO DE CONSTRUIR-MEDIR-APRENDER (BUILD-MEASURE-LEARN) 5

MVP Como o proacuteprio Eric Ries esclarece a aplicaccedilatildeo desses termos natildeo eacute riacutegida e variamde acordo com o contexto e julgamento de quem o estiver aplicando 4

Eacute importante ressaltar que um MVP natildeo eacute um produto completo com as funcionalidadesmiacutenimas e sim um conjunto de caracteriacutesticas miacutenimas que conguram o serviccedilo ou produtoque estaacute sendo oferecido Desta forma um MVP pode ser apenas um protoacutetipo ou mesmoapenas um mockup do que seraacute oferecido na versatildeo completa

Alguns tipos de MVP satildeo 5

bull Viacutedeo explicativo um viacutedeo curto contendo uma explicaccedilatildeo clara do que o produto faze porque as pessoas deveriam utilizaacute-lo Esse eacute o caso do Dropbox que fez um viacutedeo6

com cerca de 5 minutos explicando o que era o seu serviccedilo

bull Landing page criar uma paacutegina inicial contendo uma explicaccedilatildeo detalhada do queeacute o produto que seraacute oferecido assim como um formulaacuterio de contato Por meio doGoogle Analytics eacute possiacutevel manter um registro de conversotildees (no caso cadastros doformulaacuterio) a m de medir o interesse das pessoas no produto

bull MVP Mago de OZ A ideia eacute criar uma paacutegina visualmente completa que funcionecomo o produto nal mas que na verdade exista algueacutem executando as tarefas manu-almente Esse foi o caso da Zappos hoje a maior vendedora de sapatos dos EstadosUnidos

bull MVP com Consierge Em vez de prover um produto realiza-se manualmente o ser-viccedilo executando exatamente os mesmos passos para o usuaacuterio que a empresa realizariaEacute um meacutetodo natildeo escalaacutevel e lento para executar pois requer que se esteja em contatodireto com o cliente e realize as tarefas manualmente No entanto isso permite raacutepidoaprendizado tanto sobre o produto como sobre e o cliente

Esse foi o caso da empresa Food on the Table que ajuda seus consumidores a criaremlistas de compras acharem receitas e conseguirem descontos nos ingredientes em seussupermercados favoritos Inicialmente seus fundadores encontraram uma senhora in-teressada no serviccedilo e por 10 doacutelaressemana eles mantinham as listas de compra eprocuravam por descontos nos supermercados em que ela fazia compras

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)

Com o surgimento das Metodologia Aacutegeis foi possiacutevel criar softwares de maneira interativae envolver o cliente no processo Poreacutem devido agrave falta de um arcabouccedilo para testar ashipoacuteteses comerciais acabava-se muitas vezes por desenvolver um software com todas asfuncionalidades que o cliente gostaria mas sem obter um sucesso comercial7

O modelo de Construir-Medir-Aprender surge entatildeo com o principal objetivo de eliminaras incertezas sobre as hipoacuteteses do produto alinhando-o com as expectativas dos usuaacuterios

4Fonte Startup Lessons Learned Minimum Viable Product a guide httpwwwstartuplessonslearnedcom200908minimum-viable-product-guidehtml

5 Fonte Scale my Business The Ultimate Guide to Minimum Viable Products httpscalemybusinesscomthe-ultimate-guide-to-minimum-viable-products Acesso em 19 ago 2016

6Link para o viacutedeo httpswwwyoutubecomwatchv=7QmCUDHpNzE Acesso em 3 set 20167Fonte Por Steve Blank em httpventurebeatcom20150506

build-measure-learn-doesnt-mean-throwing-things-against-the-wall-to-see-if-they-stick Acesso em 19ago 2016

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Resumo

Neste texto descreveremos todo o ciclo de desenvolvimento da plataforma USP Even-

tos A ferramenta foi criada a partir da constataccedilatildeo de que a Cidade Universitaacuteria possui

grande diversidade acadecircmica e cultural que manifesta-se em uma variedade de eventos que

satildeo promovidos e realizados em toda sua extensatildeo Levando em consideraccedilatildeo essa grande

quantidade de eventos eacute esperado que existam problemas para sua divulgaccedilatildeo Ao realizar

uma enquete junto agrave comunidade USP constatou-se a necessidade de um sistema para cen-

tralizar a divulgaccedilatildeo desses eventos Como consequecircncia desse resultado foi proposto criar

o USP Eventos Para auxiliar no desenvolvimento do sistema foi utilizada uma abordagem

que combinou a metodologia Lean Startup com conceitos de Meacutetodos Aacutegeis Ao longo do

processo foi possiacutevel observar os benefiacutecios e desvantagens das metodologias escolhidas e

desenvolver um sistema direcionado aos interesses dos usuaacuterios

Palavras-chave eventos meacutetodos aacutegeis lean startup desenvolvimento web

iii

Abstract

In this text we will describe the entire development cycle of the platform USP Events

The tool was created on because the Campus has great academic and cultural diversity ma-

nifesting itself in a variety of events that are promoted and done throughout the Campus

extension Taking in consideration this great amount of events some trouble in disclosure

them is expected By making an enquiry to the USP community it was determined the need

for a system that would centralize the propagation of these events As a consequence of this

result the creation of USP Events was proposed To help the system development an appro-

ach combining the methodology Lean Startup with the concepts of Agile Methodologies was

used Throughout the process it was possible to observe the advantages and disadvantages

of the chosen methodologies and to develop a system directed to the users interests

Keywords agile methodologies lean startup web development

v

Sumaacuterio

01 Caio i

02 Eugenio i

Lista de Abreviaturas ix

1 Introduccedilatildeo 1

11 Motivaccedilatildeo e Objetivos 1

2 Lean Startup 3

21 Lean Startup O que eacute 3

211 Startup uma deniccedilatildeo 3

212 Lean Startup 3

22 Produto Miacutenimo Viaacutevel (MVP) 4

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn) 5

24 Desenvolvimento de Clientes 7

25 Conceitos Utilizados 8

3 Meacutetodos Aacutegeis 9

31 Origem 9

32 Deniccedilatildeo 9

33 Meacutetodos Aacutegeis especiacutecos 10

331 Scrum 10

332 Test Driven Development (TDD) 11

333 Continuous Integration (CI) 12

334 Kanban 13

34 Um contraponto O modelo Cascata 14

35 Conceitos Utilizados 15

4 Tecnologias 17

41 Ruby on Rails 17

411 Ruby 17

412 Rails 18

413 Porque escolher Ruby on Rails 19

vii

viii SUMAacuteRIO

42 Heroku 20

43 Travis CI 20

44 Trello 21

45 Github 21

46 Google Analytics e Google Tag Manager 22

47 Painel de opiniotildees Populares - POP 22

48 HeatMap 23

49 Typeform 23

5 Usp Eventos 25

51 Deniccedilatildeo do Projeto 25

511 Motivaccedilatildeo 25

512 Enquete e deniccedilatildeo do projeto 25

52 Denindo as caracteriacutesticas do Sistema 27

521 Pesquisa de Sistemas Semelhantes 27

522 Plataforma Web x Moacutevel 28

53 Kanban 29

54 Primeira Iteraccedilatildeo 31

541 Construccedilatildeo 31

542 Divulgaccedilatildeo 33

543 Meacutetricas 33

544 Aprendizado 34

55 Segunda Iteraccedilatildeo 36

551 Construccedilatildeo 36

552 Divulgaccedilatildeo 39

553 Meacutetricas 39

554 Aprendizado 40

56 Terceira Iteraccedilatildeo 41

561 Construccedilatildeo 41

562 Meacutetricas 44

563 Aprendizado 45

57 Uacuteltimas Atualizaccedilotildees 47

6 Conclusotildees 49

7 Proacuteximos Passos 51

Referecircncias Bibliograacutecas 53

Lista de Abreviaturas

MVP Produto Miacutenimo Viaacutevel ( Minimum Viable Product)

CoC Convenccedilatildeo sobre Conguraccedilatildeo ( Convention over Conguration)

DRY Natildeo se repita (Dont Repeat yourself )

ORM Mapeamento Objeto Relacional(Object Relational Mapping)

POP Painel de Opiniatildeo Popular

UX Experiecircncia do Usuaacuterio ( User Experience)

UI Interface de Usuaacuterio (User Interface)

RoR Ruby on Rails

PasS Plataforma como Serviccedilo (Platform as Service)

GA Google Analytics

SO Sistema Operacional

ix

Capiacutetulo 1

Introduccedilatildeo

11 Motivaccedilatildeo e Objetivos

A Cidade Universitaacuteria possui uma variedade de eventos sociais e acadecircmicos que ocor-rem por vezes simultaneamente em toda sua extensatildeo Esse cenaacuterio se daacute pela complexidadecultural existente no campus que envolve discentes docentes e comunidade

Junto agrave comunidade USP foi realizada uma enquete via e-mail na qual constatou-se ointeresse em uma plataforma para divulgar e centralizar os inuacutemeros eventos acadecircmicosou natildeo da Cidade Universitaacuteria Para atender a essa demanda de interesse foi propostaa criaccedilatildeo do USP Eventos um sistema web voltado para os usuaacuterios se informarem sobreo que ocorre no campus aleacutem de incentivar a organizaccedilatildeo de eventos de modo a ocupar oespaccedilo puacuteblico

Para o desenvolvimento do projeto foi escolhida uma abordagem baseada em conceitos deLean Startup e Meacutetodos Aacutegeis A escolha dessa metodologia combinada daacute-se pela sua amplaaplicaccedilatildeo em projetos com grande grau de incerteza nos quais um tratamento interativo eum desenvolvimento incremental auxiliam no aprendizado sobre os interesses do usuaacuterios

O objetivo do trabalho foi aplicar os conceitos de Lean Startup e Meacutetodos Aacutegeis em umprojeto praacutetico a m de desenvolver um software consistente que atendesse agraves necessidadesdos usuaacuterios aleacutem de possibilitar observar as vantagens e desvantagens das abordagensescolhidas

Os dois primeiros capiacutetulos dessa monograa tem como objetivo contextualizar os concei-tos de Lean Startup e Meacutetodos Aacutegeis Em sequecircncia o capiacutetulo Tecnologias descreve breve-mente os programas serviccedilos linguagens e arcabouccedilos utilizados durante o desenvolvimentoO capiacutetulo USP Eventos mostra com detalhes os ciclos de desenvolvimento do projeto EmConclusotildees eacute feita uma anaacutelise dos resultados obtidos e nalizando a Parte Subjetiva naqual satildeo feitos comentaacuterios sobre os desaos disciplinas relevantes e proacuteximos passos

1

Capiacutetulo 2

Lean Startup

21 Lean Startup O que eacute

211 Startup uma deniccedilatildeo

Por meio da popularizaccedilatildeo da Internet e dos computadores pessoais nos anos seguintesde 1990 o termo startup foi generalizado para classicar pequenas empresas com propostasinovadoras sejam por atuarem com as novas tecnologias que surgiram para o grande mercadona eacutepoca como as chamadas empresas online ou ponto com seja pelo seu novo modo deorganizaccedilatildeo e processo de produccedilatildeo

Paternoster (2014) provecirc uma deniccedilatildeo de uma startup de software baseada nos desaosque ela enfrenta

bull Pouco ou nenhum histoacuterico operacional startups possuem pouca ou nenhuma experi-ecircncia em desenvolver processos de negoacutecio e gerenciamento organizacional

bull Recursos limitados startups tipicamente focam em lanccedilar um uacutenico produto promovecirc-lo e construir alianccedilas estrateacutegicas

bull Muacuteltiplas inuecircncias pressatildeo dos investidores clientes parceiros e competidores im-pactam nas tomadas de decisotildees de uma empresa Apesar de importantes nas startupselas tendem a ser inconsistentes

bull Mercado e tecnologias dinacircmicas empresas novas de softwares frequentemente pre-cisam desenvolver ou operar com tecnologias disruptivas para atuar em potenciaismercados alvos

Com o passar dos anos e com o impacto da internet no mercado global o termo startupamadureceu para englobar empresa grupo ou organizaccedilatildeo que busca um modelo de negoacuteciosescalaacutevel geralmente envolvida em implementaccedilotildees de processos inovadores de desenvolvi-mento e pesquisa de mercado-alvo (Blank 2003)

212 Lean Startup

Lean Startup (Startup Enxuta) eacute um conceito introduzido por Eric Ries empreendedorde diversas startups do Vale do Siliacutecio Trata-se de uma metodologia de projeto derivada dacombinaccedilatildeo de outros padrotildees de negoacutecios como Produto Miacutenimo Viaacutevel (Minimal ViableProduct) Desenvolvimento de Clientes (Customer Development) e Desenvolvimento Aacutegil deSoftware ou Meacutetodo Aacutegil (Agile Software Development)

3

4 LEAN STARTUP 22

Ries propotildee que eacute possiacutevel encurtar os ciclos de implementaccedilatildeo de um produto (ousoluccedilatildeo) adotando uma combinaccedilatildeo de testes hipoacuteteses de negoacutecio e experimentaccedilotildees emconjunto com o puacuteblico-alvo Por meio do lanccedilamento perioacutedico eacute possiacutevel avaliar natildeo apenasquesitos teacutecnicos como tambeacutem a reaccedilatildeo do mercado Consequentemente o retorno de cadainteraccedilatildeo afeta o planejamento do produto e suas futuras versotildees (Ries 2011)

Esse desenvolvimento ciacuteclico eacute chamado de ciclo de Construir-Medir-Aprender e baseia-senatildeo soacute em construir uma versatildeo atualizada do produto como tambeacutem em obter um apren-dizado vaacutelido por meio de experimentos que permitam comprovar a aceitaccedilatildeo ou natildeo dashipoacuteteses de negoacutecio Proposta em 1996 por Frank Robinson CEO da empresa SyncDev1trata-se da produccedilatildeo de versotildees simples do produto em muacuteltiplos ciclos de avaliaccedilatildeo estra-teacutegia derivada do padratildeo de Produto Miacutenimo Viaacutevel popularizado anos depois por SteveBlank (Junk 2000)

Robinson propotildee o lanccedilamento de uma versatildeo o mais simples possiacutevel do produto demodo a antecipar a anaacutelise de mercado e assim minimizar o risco de retorno por parte daempresa A inovaccedilatildeo de Steve Blank foi adaptar essa estrateacutegia incluindo o lado do clienteo que ele chama de Desenvolvimento do Cliente (Customer Development) Blank vai aleacutemde apenas minimizar o risco de retorno busca compreender as necessidades do cliente

O Lean Startup aprimora ainda mais o conceito de avaliaccedilotildees sob cada interaccedilatildeo com ointuito de maximizar o aprendizado e alinhar a evoluccedilatildeo do projeto com o desenvolvimentodo cliente

22 Produto Miacutenimo Viaacutevel (MVP)

O conceito de Produto Miacutenimo Viaacutevel (MVP) eacute baseado em construir uma versatildeo doproduto de modo a maximizar a validaccedilatildeo de aprendizado utilizando o menor esforccedilo possiacutevelO tempo de validaccedilatildeo do produto eacute um fator decisivo para o seu sucesso no cumprimentoda demanda do mercado e no uso otimizado de recursos da empresa (Ries 2011)

Um MVP deve possuir 3 caracteriacutesticas 2

1 Ter valor suciente para que uma pessoa queira utilizaacute-lo ou compraacute-lo

2 Possuir sucientes benefiacutecios para reter os chamados usuaacuterios pioneiros (early adop-ters) 3

3 Ser capaz de prover um ciclo de feedback suciente para guiar o desenvolvimento

Durante a concepccedilatildeo do projeto satildeo denidas algumas hipoacuteteses sobre o produto Naetapa do MVP satildeo denidas quais funcionalidades ou estrateacutegias deseja-se testar de modoque possam validar as hipoacuteteses iniciais e obter o maacuteximo de aprendizado possiacutevel

O MVP permite testar se a funcionalidade ou hipoacutetese sobre um projeto eacute bem aceitapelo puacuteblico alvo implementando-a de uma forma simplicada sem despender horas a o noseu desenvolvimento Assim caso comprove-se que tal premissa natildeo eacute interessante para oprojeto seu desenvolvimento eacute interrompido sem que tenham sido desperdiccedilados tempo erecursos

Os termos miacutenimo e maacuteximo referentes a produto miacutenimo viaacutevel e maacuteximo apren-dizado respectivamente frequentemente se mostram vagos na documentaccedilatildeo do que eacute um

1 Retirado de SyncDev httpwwwsyncdevcomminimum-viable-product Acesso em 19 ago 20162 Retirado de Techopedia Minimum Viable Product (MVP) httpswwwtechopediacomdenition

27809minimum-viable-product-mvp Acesso em 19 ago 20163Os primeiros consumidores de um produto que acaba de tornar-se disponiacutevel

23 O CICLO DE CONSTRUIR-MEDIR-APRENDER (BUILD-MEASURE-LEARN) 5

MVP Como o proacuteprio Eric Ries esclarece a aplicaccedilatildeo desses termos natildeo eacute riacutegida e variamde acordo com o contexto e julgamento de quem o estiver aplicando 4

Eacute importante ressaltar que um MVP natildeo eacute um produto completo com as funcionalidadesmiacutenimas e sim um conjunto de caracteriacutesticas miacutenimas que conguram o serviccedilo ou produtoque estaacute sendo oferecido Desta forma um MVP pode ser apenas um protoacutetipo ou mesmoapenas um mockup do que seraacute oferecido na versatildeo completa

Alguns tipos de MVP satildeo 5

bull Viacutedeo explicativo um viacutedeo curto contendo uma explicaccedilatildeo clara do que o produto faze porque as pessoas deveriam utilizaacute-lo Esse eacute o caso do Dropbox que fez um viacutedeo6

com cerca de 5 minutos explicando o que era o seu serviccedilo

bull Landing page criar uma paacutegina inicial contendo uma explicaccedilatildeo detalhada do queeacute o produto que seraacute oferecido assim como um formulaacuterio de contato Por meio doGoogle Analytics eacute possiacutevel manter um registro de conversotildees (no caso cadastros doformulaacuterio) a m de medir o interesse das pessoas no produto

bull MVP Mago de OZ A ideia eacute criar uma paacutegina visualmente completa que funcionecomo o produto nal mas que na verdade exista algueacutem executando as tarefas manu-almente Esse foi o caso da Zappos hoje a maior vendedora de sapatos dos EstadosUnidos

bull MVP com Consierge Em vez de prover um produto realiza-se manualmente o ser-viccedilo executando exatamente os mesmos passos para o usuaacuterio que a empresa realizariaEacute um meacutetodo natildeo escalaacutevel e lento para executar pois requer que se esteja em contatodireto com o cliente e realize as tarefas manualmente No entanto isso permite raacutepidoaprendizado tanto sobre o produto como sobre e o cliente

Esse foi o caso da empresa Food on the Table que ajuda seus consumidores a criaremlistas de compras acharem receitas e conseguirem descontos nos ingredientes em seussupermercados favoritos Inicialmente seus fundadores encontraram uma senhora in-teressada no serviccedilo e por 10 doacutelaressemana eles mantinham as listas de compra eprocuravam por descontos nos supermercados em que ela fazia compras

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)

Com o surgimento das Metodologia Aacutegeis foi possiacutevel criar softwares de maneira interativae envolver o cliente no processo Poreacutem devido agrave falta de um arcabouccedilo para testar ashipoacuteteses comerciais acabava-se muitas vezes por desenvolver um software com todas asfuncionalidades que o cliente gostaria mas sem obter um sucesso comercial7

O modelo de Construir-Medir-Aprender surge entatildeo com o principal objetivo de eliminaras incertezas sobre as hipoacuteteses do produto alinhando-o com as expectativas dos usuaacuterios

4Fonte Startup Lessons Learned Minimum Viable Product a guide httpwwwstartuplessonslearnedcom200908minimum-viable-product-guidehtml

5 Fonte Scale my Business The Ultimate Guide to Minimum Viable Products httpscalemybusinesscomthe-ultimate-guide-to-minimum-viable-products Acesso em 19 ago 2016

6Link para o viacutedeo httpswwwyoutubecomwatchv=7QmCUDHpNzE Acesso em 3 set 20167Fonte Por Steve Blank em httpventurebeatcom20150506

build-measure-learn-doesnt-mean-throwing-things-against-the-wall-to-see-if-they-stick Acesso em 19ago 2016

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Abstract

In this text we will describe the entire development cycle of the platform USP Events

The tool was created on because the Campus has great academic and cultural diversity ma-

nifesting itself in a variety of events that are promoted and done throughout the Campus

extension Taking in consideration this great amount of events some trouble in disclosure

them is expected By making an enquiry to the USP community it was determined the need

for a system that would centralize the propagation of these events As a consequence of this

result the creation of USP Events was proposed To help the system development an appro-

ach combining the methodology Lean Startup with the concepts of Agile Methodologies was

used Throughout the process it was possible to observe the advantages and disadvantages

of the chosen methodologies and to develop a system directed to the users interests

Keywords agile methodologies lean startup web development

v

Sumaacuterio

01 Caio i

02 Eugenio i

Lista de Abreviaturas ix

1 Introduccedilatildeo 1

11 Motivaccedilatildeo e Objetivos 1

2 Lean Startup 3

21 Lean Startup O que eacute 3

211 Startup uma deniccedilatildeo 3

212 Lean Startup 3

22 Produto Miacutenimo Viaacutevel (MVP) 4

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn) 5

24 Desenvolvimento de Clientes 7

25 Conceitos Utilizados 8

3 Meacutetodos Aacutegeis 9

31 Origem 9

32 Deniccedilatildeo 9

33 Meacutetodos Aacutegeis especiacutecos 10

331 Scrum 10

332 Test Driven Development (TDD) 11

333 Continuous Integration (CI) 12

334 Kanban 13

34 Um contraponto O modelo Cascata 14

35 Conceitos Utilizados 15

4 Tecnologias 17

41 Ruby on Rails 17

411 Ruby 17

412 Rails 18

413 Porque escolher Ruby on Rails 19

vii

viii SUMAacuteRIO

42 Heroku 20

43 Travis CI 20

44 Trello 21

45 Github 21

46 Google Analytics e Google Tag Manager 22

47 Painel de opiniotildees Populares - POP 22

48 HeatMap 23

49 Typeform 23

5 Usp Eventos 25

51 Deniccedilatildeo do Projeto 25

511 Motivaccedilatildeo 25

512 Enquete e deniccedilatildeo do projeto 25

52 Denindo as caracteriacutesticas do Sistema 27

521 Pesquisa de Sistemas Semelhantes 27

522 Plataforma Web x Moacutevel 28

53 Kanban 29

54 Primeira Iteraccedilatildeo 31

541 Construccedilatildeo 31

542 Divulgaccedilatildeo 33

543 Meacutetricas 33

544 Aprendizado 34

55 Segunda Iteraccedilatildeo 36

551 Construccedilatildeo 36

552 Divulgaccedilatildeo 39

553 Meacutetricas 39

554 Aprendizado 40

56 Terceira Iteraccedilatildeo 41

561 Construccedilatildeo 41

562 Meacutetricas 44

563 Aprendizado 45

57 Uacuteltimas Atualizaccedilotildees 47

6 Conclusotildees 49

7 Proacuteximos Passos 51

Referecircncias Bibliograacutecas 53

Lista de Abreviaturas

MVP Produto Miacutenimo Viaacutevel ( Minimum Viable Product)

CoC Convenccedilatildeo sobre Conguraccedilatildeo ( Convention over Conguration)

DRY Natildeo se repita (Dont Repeat yourself )

ORM Mapeamento Objeto Relacional(Object Relational Mapping)

POP Painel de Opiniatildeo Popular

UX Experiecircncia do Usuaacuterio ( User Experience)

UI Interface de Usuaacuterio (User Interface)

RoR Ruby on Rails

PasS Plataforma como Serviccedilo (Platform as Service)

GA Google Analytics

SO Sistema Operacional

ix

Capiacutetulo 1

Introduccedilatildeo

11 Motivaccedilatildeo e Objetivos

A Cidade Universitaacuteria possui uma variedade de eventos sociais e acadecircmicos que ocor-rem por vezes simultaneamente em toda sua extensatildeo Esse cenaacuterio se daacute pela complexidadecultural existente no campus que envolve discentes docentes e comunidade

Junto agrave comunidade USP foi realizada uma enquete via e-mail na qual constatou-se ointeresse em uma plataforma para divulgar e centralizar os inuacutemeros eventos acadecircmicosou natildeo da Cidade Universitaacuteria Para atender a essa demanda de interesse foi propostaa criaccedilatildeo do USP Eventos um sistema web voltado para os usuaacuterios se informarem sobreo que ocorre no campus aleacutem de incentivar a organizaccedilatildeo de eventos de modo a ocupar oespaccedilo puacuteblico

Para o desenvolvimento do projeto foi escolhida uma abordagem baseada em conceitos deLean Startup e Meacutetodos Aacutegeis A escolha dessa metodologia combinada daacute-se pela sua amplaaplicaccedilatildeo em projetos com grande grau de incerteza nos quais um tratamento interativo eum desenvolvimento incremental auxiliam no aprendizado sobre os interesses do usuaacuterios

O objetivo do trabalho foi aplicar os conceitos de Lean Startup e Meacutetodos Aacutegeis em umprojeto praacutetico a m de desenvolver um software consistente que atendesse agraves necessidadesdos usuaacuterios aleacutem de possibilitar observar as vantagens e desvantagens das abordagensescolhidas

Os dois primeiros capiacutetulos dessa monograa tem como objetivo contextualizar os concei-tos de Lean Startup e Meacutetodos Aacutegeis Em sequecircncia o capiacutetulo Tecnologias descreve breve-mente os programas serviccedilos linguagens e arcabouccedilos utilizados durante o desenvolvimentoO capiacutetulo USP Eventos mostra com detalhes os ciclos de desenvolvimento do projeto EmConclusotildees eacute feita uma anaacutelise dos resultados obtidos e nalizando a Parte Subjetiva naqual satildeo feitos comentaacuterios sobre os desaos disciplinas relevantes e proacuteximos passos

1

Capiacutetulo 2

Lean Startup

21 Lean Startup O que eacute

211 Startup uma deniccedilatildeo

Por meio da popularizaccedilatildeo da Internet e dos computadores pessoais nos anos seguintesde 1990 o termo startup foi generalizado para classicar pequenas empresas com propostasinovadoras sejam por atuarem com as novas tecnologias que surgiram para o grande mercadona eacutepoca como as chamadas empresas online ou ponto com seja pelo seu novo modo deorganizaccedilatildeo e processo de produccedilatildeo

Paternoster (2014) provecirc uma deniccedilatildeo de uma startup de software baseada nos desaosque ela enfrenta

bull Pouco ou nenhum histoacuterico operacional startups possuem pouca ou nenhuma experi-ecircncia em desenvolver processos de negoacutecio e gerenciamento organizacional

bull Recursos limitados startups tipicamente focam em lanccedilar um uacutenico produto promovecirc-lo e construir alianccedilas estrateacutegicas

bull Muacuteltiplas inuecircncias pressatildeo dos investidores clientes parceiros e competidores im-pactam nas tomadas de decisotildees de uma empresa Apesar de importantes nas startupselas tendem a ser inconsistentes

bull Mercado e tecnologias dinacircmicas empresas novas de softwares frequentemente pre-cisam desenvolver ou operar com tecnologias disruptivas para atuar em potenciaismercados alvos

Com o passar dos anos e com o impacto da internet no mercado global o termo startupamadureceu para englobar empresa grupo ou organizaccedilatildeo que busca um modelo de negoacuteciosescalaacutevel geralmente envolvida em implementaccedilotildees de processos inovadores de desenvolvi-mento e pesquisa de mercado-alvo (Blank 2003)

212 Lean Startup

Lean Startup (Startup Enxuta) eacute um conceito introduzido por Eric Ries empreendedorde diversas startups do Vale do Siliacutecio Trata-se de uma metodologia de projeto derivada dacombinaccedilatildeo de outros padrotildees de negoacutecios como Produto Miacutenimo Viaacutevel (Minimal ViableProduct) Desenvolvimento de Clientes (Customer Development) e Desenvolvimento Aacutegil deSoftware ou Meacutetodo Aacutegil (Agile Software Development)

3

4 LEAN STARTUP 22

Ries propotildee que eacute possiacutevel encurtar os ciclos de implementaccedilatildeo de um produto (ousoluccedilatildeo) adotando uma combinaccedilatildeo de testes hipoacuteteses de negoacutecio e experimentaccedilotildees emconjunto com o puacuteblico-alvo Por meio do lanccedilamento perioacutedico eacute possiacutevel avaliar natildeo apenasquesitos teacutecnicos como tambeacutem a reaccedilatildeo do mercado Consequentemente o retorno de cadainteraccedilatildeo afeta o planejamento do produto e suas futuras versotildees (Ries 2011)

Esse desenvolvimento ciacuteclico eacute chamado de ciclo de Construir-Medir-Aprender e baseia-senatildeo soacute em construir uma versatildeo atualizada do produto como tambeacutem em obter um apren-dizado vaacutelido por meio de experimentos que permitam comprovar a aceitaccedilatildeo ou natildeo dashipoacuteteses de negoacutecio Proposta em 1996 por Frank Robinson CEO da empresa SyncDev1trata-se da produccedilatildeo de versotildees simples do produto em muacuteltiplos ciclos de avaliaccedilatildeo estra-teacutegia derivada do padratildeo de Produto Miacutenimo Viaacutevel popularizado anos depois por SteveBlank (Junk 2000)

Robinson propotildee o lanccedilamento de uma versatildeo o mais simples possiacutevel do produto demodo a antecipar a anaacutelise de mercado e assim minimizar o risco de retorno por parte daempresa A inovaccedilatildeo de Steve Blank foi adaptar essa estrateacutegia incluindo o lado do clienteo que ele chama de Desenvolvimento do Cliente (Customer Development) Blank vai aleacutemde apenas minimizar o risco de retorno busca compreender as necessidades do cliente

O Lean Startup aprimora ainda mais o conceito de avaliaccedilotildees sob cada interaccedilatildeo com ointuito de maximizar o aprendizado e alinhar a evoluccedilatildeo do projeto com o desenvolvimentodo cliente

22 Produto Miacutenimo Viaacutevel (MVP)

O conceito de Produto Miacutenimo Viaacutevel (MVP) eacute baseado em construir uma versatildeo doproduto de modo a maximizar a validaccedilatildeo de aprendizado utilizando o menor esforccedilo possiacutevelO tempo de validaccedilatildeo do produto eacute um fator decisivo para o seu sucesso no cumprimentoda demanda do mercado e no uso otimizado de recursos da empresa (Ries 2011)

Um MVP deve possuir 3 caracteriacutesticas 2

1 Ter valor suciente para que uma pessoa queira utilizaacute-lo ou compraacute-lo

2 Possuir sucientes benefiacutecios para reter os chamados usuaacuterios pioneiros (early adop-ters) 3

3 Ser capaz de prover um ciclo de feedback suciente para guiar o desenvolvimento

Durante a concepccedilatildeo do projeto satildeo denidas algumas hipoacuteteses sobre o produto Naetapa do MVP satildeo denidas quais funcionalidades ou estrateacutegias deseja-se testar de modoque possam validar as hipoacuteteses iniciais e obter o maacuteximo de aprendizado possiacutevel

O MVP permite testar se a funcionalidade ou hipoacutetese sobre um projeto eacute bem aceitapelo puacuteblico alvo implementando-a de uma forma simplicada sem despender horas a o noseu desenvolvimento Assim caso comprove-se que tal premissa natildeo eacute interessante para oprojeto seu desenvolvimento eacute interrompido sem que tenham sido desperdiccedilados tempo erecursos

Os termos miacutenimo e maacuteximo referentes a produto miacutenimo viaacutevel e maacuteximo apren-dizado respectivamente frequentemente se mostram vagos na documentaccedilatildeo do que eacute um

1 Retirado de SyncDev httpwwwsyncdevcomminimum-viable-product Acesso em 19 ago 20162 Retirado de Techopedia Minimum Viable Product (MVP) httpswwwtechopediacomdenition

27809minimum-viable-product-mvp Acesso em 19 ago 20163Os primeiros consumidores de um produto que acaba de tornar-se disponiacutevel

23 O CICLO DE CONSTRUIR-MEDIR-APRENDER (BUILD-MEASURE-LEARN) 5

MVP Como o proacuteprio Eric Ries esclarece a aplicaccedilatildeo desses termos natildeo eacute riacutegida e variamde acordo com o contexto e julgamento de quem o estiver aplicando 4

Eacute importante ressaltar que um MVP natildeo eacute um produto completo com as funcionalidadesmiacutenimas e sim um conjunto de caracteriacutesticas miacutenimas que conguram o serviccedilo ou produtoque estaacute sendo oferecido Desta forma um MVP pode ser apenas um protoacutetipo ou mesmoapenas um mockup do que seraacute oferecido na versatildeo completa

Alguns tipos de MVP satildeo 5

bull Viacutedeo explicativo um viacutedeo curto contendo uma explicaccedilatildeo clara do que o produto faze porque as pessoas deveriam utilizaacute-lo Esse eacute o caso do Dropbox que fez um viacutedeo6

com cerca de 5 minutos explicando o que era o seu serviccedilo

bull Landing page criar uma paacutegina inicial contendo uma explicaccedilatildeo detalhada do queeacute o produto que seraacute oferecido assim como um formulaacuterio de contato Por meio doGoogle Analytics eacute possiacutevel manter um registro de conversotildees (no caso cadastros doformulaacuterio) a m de medir o interesse das pessoas no produto

bull MVP Mago de OZ A ideia eacute criar uma paacutegina visualmente completa que funcionecomo o produto nal mas que na verdade exista algueacutem executando as tarefas manu-almente Esse foi o caso da Zappos hoje a maior vendedora de sapatos dos EstadosUnidos

bull MVP com Consierge Em vez de prover um produto realiza-se manualmente o ser-viccedilo executando exatamente os mesmos passos para o usuaacuterio que a empresa realizariaEacute um meacutetodo natildeo escalaacutevel e lento para executar pois requer que se esteja em contatodireto com o cliente e realize as tarefas manualmente No entanto isso permite raacutepidoaprendizado tanto sobre o produto como sobre e o cliente

Esse foi o caso da empresa Food on the Table que ajuda seus consumidores a criaremlistas de compras acharem receitas e conseguirem descontos nos ingredientes em seussupermercados favoritos Inicialmente seus fundadores encontraram uma senhora in-teressada no serviccedilo e por 10 doacutelaressemana eles mantinham as listas de compra eprocuravam por descontos nos supermercados em que ela fazia compras

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)

Com o surgimento das Metodologia Aacutegeis foi possiacutevel criar softwares de maneira interativae envolver o cliente no processo Poreacutem devido agrave falta de um arcabouccedilo para testar ashipoacuteteses comerciais acabava-se muitas vezes por desenvolver um software com todas asfuncionalidades que o cliente gostaria mas sem obter um sucesso comercial7

O modelo de Construir-Medir-Aprender surge entatildeo com o principal objetivo de eliminaras incertezas sobre as hipoacuteteses do produto alinhando-o com as expectativas dos usuaacuterios

4Fonte Startup Lessons Learned Minimum Viable Product a guide httpwwwstartuplessonslearnedcom200908minimum-viable-product-guidehtml

5 Fonte Scale my Business The Ultimate Guide to Minimum Viable Products httpscalemybusinesscomthe-ultimate-guide-to-minimum-viable-products Acesso em 19 ago 2016

6Link para o viacutedeo httpswwwyoutubecomwatchv=7QmCUDHpNzE Acesso em 3 set 20167Fonte Por Steve Blank em httpventurebeatcom20150506

build-measure-learn-doesnt-mean-throwing-things-against-the-wall-to-see-if-they-stick Acesso em 19ago 2016

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Sumaacuterio

01 Caio i

02 Eugenio i

Lista de Abreviaturas ix

1 Introduccedilatildeo 1

11 Motivaccedilatildeo e Objetivos 1

2 Lean Startup 3

21 Lean Startup O que eacute 3

211 Startup uma deniccedilatildeo 3

212 Lean Startup 3

22 Produto Miacutenimo Viaacutevel (MVP) 4

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn) 5

24 Desenvolvimento de Clientes 7

25 Conceitos Utilizados 8

3 Meacutetodos Aacutegeis 9

31 Origem 9

32 Deniccedilatildeo 9

33 Meacutetodos Aacutegeis especiacutecos 10

331 Scrum 10

332 Test Driven Development (TDD) 11

333 Continuous Integration (CI) 12

334 Kanban 13

34 Um contraponto O modelo Cascata 14

35 Conceitos Utilizados 15

4 Tecnologias 17

41 Ruby on Rails 17

411 Ruby 17

412 Rails 18

413 Porque escolher Ruby on Rails 19

vii

viii SUMAacuteRIO

42 Heroku 20

43 Travis CI 20

44 Trello 21

45 Github 21

46 Google Analytics e Google Tag Manager 22

47 Painel de opiniotildees Populares - POP 22

48 HeatMap 23

49 Typeform 23

5 Usp Eventos 25

51 Deniccedilatildeo do Projeto 25

511 Motivaccedilatildeo 25

512 Enquete e deniccedilatildeo do projeto 25

52 Denindo as caracteriacutesticas do Sistema 27

521 Pesquisa de Sistemas Semelhantes 27

522 Plataforma Web x Moacutevel 28

53 Kanban 29

54 Primeira Iteraccedilatildeo 31

541 Construccedilatildeo 31

542 Divulgaccedilatildeo 33

543 Meacutetricas 33

544 Aprendizado 34

55 Segunda Iteraccedilatildeo 36

551 Construccedilatildeo 36

552 Divulgaccedilatildeo 39

553 Meacutetricas 39

554 Aprendizado 40

56 Terceira Iteraccedilatildeo 41

561 Construccedilatildeo 41

562 Meacutetricas 44

563 Aprendizado 45

57 Uacuteltimas Atualizaccedilotildees 47

6 Conclusotildees 49

7 Proacuteximos Passos 51

Referecircncias Bibliograacutecas 53

Lista de Abreviaturas

MVP Produto Miacutenimo Viaacutevel ( Minimum Viable Product)

CoC Convenccedilatildeo sobre Conguraccedilatildeo ( Convention over Conguration)

DRY Natildeo se repita (Dont Repeat yourself )

ORM Mapeamento Objeto Relacional(Object Relational Mapping)

POP Painel de Opiniatildeo Popular

UX Experiecircncia do Usuaacuterio ( User Experience)

UI Interface de Usuaacuterio (User Interface)

RoR Ruby on Rails

PasS Plataforma como Serviccedilo (Platform as Service)

GA Google Analytics

SO Sistema Operacional

ix

Capiacutetulo 1

Introduccedilatildeo

11 Motivaccedilatildeo e Objetivos

A Cidade Universitaacuteria possui uma variedade de eventos sociais e acadecircmicos que ocor-rem por vezes simultaneamente em toda sua extensatildeo Esse cenaacuterio se daacute pela complexidadecultural existente no campus que envolve discentes docentes e comunidade

Junto agrave comunidade USP foi realizada uma enquete via e-mail na qual constatou-se ointeresse em uma plataforma para divulgar e centralizar os inuacutemeros eventos acadecircmicosou natildeo da Cidade Universitaacuteria Para atender a essa demanda de interesse foi propostaa criaccedilatildeo do USP Eventos um sistema web voltado para os usuaacuterios se informarem sobreo que ocorre no campus aleacutem de incentivar a organizaccedilatildeo de eventos de modo a ocupar oespaccedilo puacuteblico

Para o desenvolvimento do projeto foi escolhida uma abordagem baseada em conceitos deLean Startup e Meacutetodos Aacutegeis A escolha dessa metodologia combinada daacute-se pela sua amplaaplicaccedilatildeo em projetos com grande grau de incerteza nos quais um tratamento interativo eum desenvolvimento incremental auxiliam no aprendizado sobre os interesses do usuaacuterios

O objetivo do trabalho foi aplicar os conceitos de Lean Startup e Meacutetodos Aacutegeis em umprojeto praacutetico a m de desenvolver um software consistente que atendesse agraves necessidadesdos usuaacuterios aleacutem de possibilitar observar as vantagens e desvantagens das abordagensescolhidas

Os dois primeiros capiacutetulos dessa monograa tem como objetivo contextualizar os concei-tos de Lean Startup e Meacutetodos Aacutegeis Em sequecircncia o capiacutetulo Tecnologias descreve breve-mente os programas serviccedilos linguagens e arcabouccedilos utilizados durante o desenvolvimentoO capiacutetulo USP Eventos mostra com detalhes os ciclos de desenvolvimento do projeto EmConclusotildees eacute feita uma anaacutelise dos resultados obtidos e nalizando a Parte Subjetiva naqual satildeo feitos comentaacuterios sobre os desaos disciplinas relevantes e proacuteximos passos

1

Capiacutetulo 2

Lean Startup

21 Lean Startup O que eacute

211 Startup uma deniccedilatildeo

Por meio da popularizaccedilatildeo da Internet e dos computadores pessoais nos anos seguintesde 1990 o termo startup foi generalizado para classicar pequenas empresas com propostasinovadoras sejam por atuarem com as novas tecnologias que surgiram para o grande mercadona eacutepoca como as chamadas empresas online ou ponto com seja pelo seu novo modo deorganizaccedilatildeo e processo de produccedilatildeo

Paternoster (2014) provecirc uma deniccedilatildeo de uma startup de software baseada nos desaosque ela enfrenta

bull Pouco ou nenhum histoacuterico operacional startups possuem pouca ou nenhuma experi-ecircncia em desenvolver processos de negoacutecio e gerenciamento organizacional

bull Recursos limitados startups tipicamente focam em lanccedilar um uacutenico produto promovecirc-lo e construir alianccedilas estrateacutegicas

bull Muacuteltiplas inuecircncias pressatildeo dos investidores clientes parceiros e competidores im-pactam nas tomadas de decisotildees de uma empresa Apesar de importantes nas startupselas tendem a ser inconsistentes

bull Mercado e tecnologias dinacircmicas empresas novas de softwares frequentemente pre-cisam desenvolver ou operar com tecnologias disruptivas para atuar em potenciaismercados alvos

Com o passar dos anos e com o impacto da internet no mercado global o termo startupamadureceu para englobar empresa grupo ou organizaccedilatildeo que busca um modelo de negoacuteciosescalaacutevel geralmente envolvida em implementaccedilotildees de processos inovadores de desenvolvi-mento e pesquisa de mercado-alvo (Blank 2003)

212 Lean Startup

Lean Startup (Startup Enxuta) eacute um conceito introduzido por Eric Ries empreendedorde diversas startups do Vale do Siliacutecio Trata-se de uma metodologia de projeto derivada dacombinaccedilatildeo de outros padrotildees de negoacutecios como Produto Miacutenimo Viaacutevel (Minimal ViableProduct) Desenvolvimento de Clientes (Customer Development) e Desenvolvimento Aacutegil deSoftware ou Meacutetodo Aacutegil (Agile Software Development)

3

4 LEAN STARTUP 22

Ries propotildee que eacute possiacutevel encurtar os ciclos de implementaccedilatildeo de um produto (ousoluccedilatildeo) adotando uma combinaccedilatildeo de testes hipoacuteteses de negoacutecio e experimentaccedilotildees emconjunto com o puacuteblico-alvo Por meio do lanccedilamento perioacutedico eacute possiacutevel avaliar natildeo apenasquesitos teacutecnicos como tambeacutem a reaccedilatildeo do mercado Consequentemente o retorno de cadainteraccedilatildeo afeta o planejamento do produto e suas futuras versotildees (Ries 2011)

Esse desenvolvimento ciacuteclico eacute chamado de ciclo de Construir-Medir-Aprender e baseia-senatildeo soacute em construir uma versatildeo atualizada do produto como tambeacutem em obter um apren-dizado vaacutelido por meio de experimentos que permitam comprovar a aceitaccedilatildeo ou natildeo dashipoacuteteses de negoacutecio Proposta em 1996 por Frank Robinson CEO da empresa SyncDev1trata-se da produccedilatildeo de versotildees simples do produto em muacuteltiplos ciclos de avaliaccedilatildeo estra-teacutegia derivada do padratildeo de Produto Miacutenimo Viaacutevel popularizado anos depois por SteveBlank (Junk 2000)

Robinson propotildee o lanccedilamento de uma versatildeo o mais simples possiacutevel do produto demodo a antecipar a anaacutelise de mercado e assim minimizar o risco de retorno por parte daempresa A inovaccedilatildeo de Steve Blank foi adaptar essa estrateacutegia incluindo o lado do clienteo que ele chama de Desenvolvimento do Cliente (Customer Development) Blank vai aleacutemde apenas minimizar o risco de retorno busca compreender as necessidades do cliente

O Lean Startup aprimora ainda mais o conceito de avaliaccedilotildees sob cada interaccedilatildeo com ointuito de maximizar o aprendizado e alinhar a evoluccedilatildeo do projeto com o desenvolvimentodo cliente

22 Produto Miacutenimo Viaacutevel (MVP)

O conceito de Produto Miacutenimo Viaacutevel (MVP) eacute baseado em construir uma versatildeo doproduto de modo a maximizar a validaccedilatildeo de aprendizado utilizando o menor esforccedilo possiacutevelO tempo de validaccedilatildeo do produto eacute um fator decisivo para o seu sucesso no cumprimentoda demanda do mercado e no uso otimizado de recursos da empresa (Ries 2011)

Um MVP deve possuir 3 caracteriacutesticas 2

1 Ter valor suciente para que uma pessoa queira utilizaacute-lo ou compraacute-lo

2 Possuir sucientes benefiacutecios para reter os chamados usuaacuterios pioneiros (early adop-ters) 3

3 Ser capaz de prover um ciclo de feedback suciente para guiar o desenvolvimento

Durante a concepccedilatildeo do projeto satildeo denidas algumas hipoacuteteses sobre o produto Naetapa do MVP satildeo denidas quais funcionalidades ou estrateacutegias deseja-se testar de modoque possam validar as hipoacuteteses iniciais e obter o maacuteximo de aprendizado possiacutevel

O MVP permite testar se a funcionalidade ou hipoacutetese sobre um projeto eacute bem aceitapelo puacuteblico alvo implementando-a de uma forma simplicada sem despender horas a o noseu desenvolvimento Assim caso comprove-se que tal premissa natildeo eacute interessante para oprojeto seu desenvolvimento eacute interrompido sem que tenham sido desperdiccedilados tempo erecursos

Os termos miacutenimo e maacuteximo referentes a produto miacutenimo viaacutevel e maacuteximo apren-dizado respectivamente frequentemente se mostram vagos na documentaccedilatildeo do que eacute um

1 Retirado de SyncDev httpwwwsyncdevcomminimum-viable-product Acesso em 19 ago 20162 Retirado de Techopedia Minimum Viable Product (MVP) httpswwwtechopediacomdenition

27809minimum-viable-product-mvp Acesso em 19 ago 20163Os primeiros consumidores de um produto que acaba de tornar-se disponiacutevel

23 O CICLO DE CONSTRUIR-MEDIR-APRENDER (BUILD-MEASURE-LEARN) 5

MVP Como o proacuteprio Eric Ries esclarece a aplicaccedilatildeo desses termos natildeo eacute riacutegida e variamde acordo com o contexto e julgamento de quem o estiver aplicando 4

Eacute importante ressaltar que um MVP natildeo eacute um produto completo com as funcionalidadesmiacutenimas e sim um conjunto de caracteriacutesticas miacutenimas que conguram o serviccedilo ou produtoque estaacute sendo oferecido Desta forma um MVP pode ser apenas um protoacutetipo ou mesmoapenas um mockup do que seraacute oferecido na versatildeo completa

Alguns tipos de MVP satildeo 5

bull Viacutedeo explicativo um viacutedeo curto contendo uma explicaccedilatildeo clara do que o produto faze porque as pessoas deveriam utilizaacute-lo Esse eacute o caso do Dropbox que fez um viacutedeo6

com cerca de 5 minutos explicando o que era o seu serviccedilo

bull Landing page criar uma paacutegina inicial contendo uma explicaccedilatildeo detalhada do queeacute o produto que seraacute oferecido assim como um formulaacuterio de contato Por meio doGoogle Analytics eacute possiacutevel manter um registro de conversotildees (no caso cadastros doformulaacuterio) a m de medir o interesse das pessoas no produto

bull MVP Mago de OZ A ideia eacute criar uma paacutegina visualmente completa que funcionecomo o produto nal mas que na verdade exista algueacutem executando as tarefas manu-almente Esse foi o caso da Zappos hoje a maior vendedora de sapatos dos EstadosUnidos

bull MVP com Consierge Em vez de prover um produto realiza-se manualmente o ser-viccedilo executando exatamente os mesmos passos para o usuaacuterio que a empresa realizariaEacute um meacutetodo natildeo escalaacutevel e lento para executar pois requer que se esteja em contatodireto com o cliente e realize as tarefas manualmente No entanto isso permite raacutepidoaprendizado tanto sobre o produto como sobre e o cliente

Esse foi o caso da empresa Food on the Table que ajuda seus consumidores a criaremlistas de compras acharem receitas e conseguirem descontos nos ingredientes em seussupermercados favoritos Inicialmente seus fundadores encontraram uma senhora in-teressada no serviccedilo e por 10 doacutelaressemana eles mantinham as listas de compra eprocuravam por descontos nos supermercados em que ela fazia compras

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)

Com o surgimento das Metodologia Aacutegeis foi possiacutevel criar softwares de maneira interativae envolver o cliente no processo Poreacutem devido agrave falta de um arcabouccedilo para testar ashipoacuteteses comerciais acabava-se muitas vezes por desenvolver um software com todas asfuncionalidades que o cliente gostaria mas sem obter um sucesso comercial7

O modelo de Construir-Medir-Aprender surge entatildeo com o principal objetivo de eliminaras incertezas sobre as hipoacuteteses do produto alinhando-o com as expectativas dos usuaacuterios

4Fonte Startup Lessons Learned Minimum Viable Product a guide httpwwwstartuplessonslearnedcom200908minimum-viable-product-guidehtml

5 Fonte Scale my Business The Ultimate Guide to Minimum Viable Products httpscalemybusinesscomthe-ultimate-guide-to-minimum-viable-products Acesso em 19 ago 2016

6Link para o viacutedeo httpswwwyoutubecomwatchv=7QmCUDHpNzE Acesso em 3 set 20167Fonte Por Steve Blank em httpventurebeatcom20150506

build-measure-learn-doesnt-mean-throwing-things-against-the-wall-to-see-if-they-stick Acesso em 19ago 2016

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

viii SUMAacuteRIO

42 Heroku 20

43 Travis CI 20

44 Trello 21

45 Github 21

46 Google Analytics e Google Tag Manager 22

47 Painel de opiniotildees Populares - POP 22

48 HeatMap 23

49 Typeform 23

5 Usp Eventos 25

51 Deniccedilatildeo do Projeto 25

511 Motivaccedilatildeo 25

512 Enquete e deniccedilatildeo do projeto 25

52 Denindo as caracteriacutesticas do Sistema 27

521 Pesquisa de Sistemas Semelhantes 27

522 Plataforma Web x Moacutevel 28

53 Kanban 29

54 Primeira Iteraccedilatildeo 31

541 Construccedilatildeo 31

542 Divulgaccedilatildeo 33

543 Meacutetricas 33

544 Aprendizado 34

55 Segunda Iteraccedilatildeo 36

551 Construccedilatildeo 36

552 Divulgaccedilatildeo 39

553 Meacutetricas 39

554 Aprendizado 40

56 Terceira Iteraccedilatildeo 41

561 Construccedilatildeo 41

562 Meacutetricas 44

563 Aprendizado 45

57 Uacuteltimas Atualizaccedilotildees 47

6 Conclusotildees 49

7 Proacuteximos Passos 51

Referecircncias Bibliograacutecas 53

Lista de Abreviaturas

MVP Produto Miacutenimo Viaacutevel ( Minimum Viable Product)

CoC Convenccedilatildeo sobre Conguraccedilatildeo ( Convention over Conguration)

DRY Natildeo se repita (Dont Repeat yourself )

ORM Mapeamento Objeto Relacional(Object Relational Mapping)

POP Painel de Opiniatildeo Popular

UX Experiecircncia do Usuaacuterio ( User Experience)

UI Interface de Usuaacuterio (User Interface)

RoR Ruby on Rails

PasS Plataforma como Serviccedilo (Platform as Service)

GA Google Analytics

SO Sistema Operacional

ix

Capiacutetulo 1

Introduccedilatildeo

11 Motivaccedilatildeo e Objetivos

A Cidade Universitaacuteria possui uma variedade de eventos sociais e acadecircmicos que ocor-rem por vezes simultaneamente em toda sua extensatildeo Esse cenaacuterio se daacute pela complexidadecultural existente no campus que envolve discentes docentes e comunidade

Junto agrave comunidade USP foi realizada uma enquete via e-mail na qual constatou-se ointeresse em uma plataforma para divulgar e centralizar os inuacutemeros eventos acadecircmicosou natildeo da Cidade Universitaacuteria Para atender a essa demanda de interesse foi propostaa criaccedilatildeo do USP Eventos um sistema web voltado para os usuaacuterios se informarem sobreo que ocorre no campus aleacutem de incentivar a organizaccedilatildeo de eventos de modo a ocupar oespaccedilo puacuteblico

Para o desenvolvimento do projeto foi escolhida uma abordagem baseada em conceitos deLean Startup e Meacutetodos Aacutegeis A escolha dessa metodologia combinada daacute-se pela sua amplaaplicaccedilatildeo em projetos com grande grau de incerteza nos quais um tratamento interativo eum desenvolvimento incremental auxiliam no aprendizado sobre os interesses do usuaacuterios

O objetivo do trabalho foi aplicar os conceitos de Lean Startup e Meacutetodos Aacutegeis em umprojeto praacutetico a m de desenvolver um software consistente que atendesse agraves necessidadesdos usuaacuterios aleacutem de possibilitar observar as vantagens e desvantagens das abordagensescolhidas

Os dois primeiros capiacutetulos dessa monograa tem como objetivo contextualizar os concei-tos de Lean Startup e Meacutetodos Aacutegeis Em sequecircncia o capiacutetulo Tecnologias descreve breve-mente os programas serviccedilos linguagens e arcabouccedilos utilizados durante o desenvolvimentoO capiacutetulo USP Eventos mostra com detalhes os ciclos de desenvolvimento do projeto EmConclusotildees eacute feita uma anaacutelise dos resultados obtidos e nalizando a Parte Subjetiva naqual satildeo feitos comentaacuterios sobre os desaos disciplinas relevantes e proacuteximos passos

1

Capiacutetulo 2

Lean Startup

21 Lean Startup O que eacute

211 Startup uma deniccedilatildeo

Por meio da popularizaccedilatildeo da Internet e dos computadores pessoais nos anos seguintesde 1990 o termo startup foi generalizado para classicar pequenas empresas com propostasinovadoras sejam por atuarem com as novas tecnologias que surgiram para o grande mercadona eacutepoca como as chamadas empresas online ou ponto com seja pelo seu novo modo deorganizaccedilatildeo e processo de produccedilatildeo

Paternoster (2014) provecirc uma deniccedilatildeo de uma startup de software baseada nos desaosque ela enfrenta

bull Pouco ou nenhum histoacuterico operacional startups possuem pouca ou nenhuma experi-ecircncia em desenvolver processos de negoacutecio e gerenciamento organizacional

bull Recursos limitados startups tipicamente focam em lanccedilar um uacutenico produto promovecirc-lo e construir alianccedilas estrateacutegicas

bull Muacuteltiplas inuecircncias pressatildeo dos investidores clientes parceiros e competidores im-pactam nas tomadas de decisotildees de uma empresa Apesar de importantes nas startupselas tendem a ser inconsistentes

bull Mercado e tecnologias dinacircmicas empresas novas de softwares frequentemente pre-cisam desenvolver ou operar com tecnologias disruptivas para atuar em potenciaismercados alvos

Com o passar dos anos e com o impacto da internet no mercado global o termo startupamadureceu para englobar empresa grupo ou organizaccedilatildeo que busca um modelo de negoacuteciosescalaacutevel geralmente envolvida em implementaccedilotildees de processos inovadores de desenvolvi-mento e pesquisa de mercado-alvo (Blank 2003)

212 Lean Startup

Lean Startup (Startup Enxuta) eacute um conceito introduzido por Eric Ries empreendedorde diversas startups do Vale do Siliacutecio Trata-se de uma metodologia de projeto derivada dacombinaccedilatildeo de outros padrotildees de negoacutecios como Produto Miacutenimo Viaacutevel (Minimal ViableProduct) Desenvolvimento de Clientes (Customer Development) e Desenvolvimento Aacutegil deSoftware ou Meacutetodo Aacutegil (Agile Software Development)

3

4 LEAN STARTUP 22

Ries propotildee que eacute possiacutevel encurtar os ciclos de implementaccedilatildeo de um produto (ousoluccedilatildeo) adotando uma combinaccedilatildeo de testes hipoacuteteses de negoacutecio e experimentaccedilotildees emconjunto com o puacuteblico-alvo Por meio do lanccedilamento perioacutedico eacute possiacutevel avaliar natildeo apenasquesitos teacutecnicos como tambeacutem a reaccedilatildeo do mercado Consequentemente o retorno de cadainteraccedilatildeo afeta o planejamento do produto e suas futuras versotildees (Ries 2011)

Esse desenvolvimento ciacuteclico eacute chamado de ciclo de Construir-Medir-Aprender e baseia-senatildeo soacute em construir uma versatildeo atualizada do produto como tambeacutem em obter um apren-dizado vaacutelido por meio de experimentos que permitam comprovar a aceitaccedilatildeo ou natildeo dashipoacuteteses de negoacutecio Proposta em 1996 por Frank Robinson CEO da empresa SyncDev1trata-se da produccedilatildeo de versotildees simples do produto em muacuteltiplos ciclos de avaliaccedilatildeo estra-teacutegia derivada do padratildeo de Produto Miacutenimo Viaacutevel popularizado anos depois por SteveBlank (Junk 2000)

Robinson propotildee o lanccedilamento de uma versatildeo o mais simples possiacutevel do produto demodo a antecipar a anaacutelise de mercado e assim minimizar o risco de retorno por parte daempresa A inovaccedilatildeo de Steve Blank foi adaptar essa estrateacutegia incluindo o lado do clienteo que ele chama de Desenvolvimento do Cliente (Customer Development) Blank vai aleacutemde apenas minimizar o risco de retorno busca compreender as necessidades do cliente

O Lean Startup aprimora ainda mais o conceito de avaliaccedilotildees sob cada interaccedilatildeo com ointuito de maximizar o aprendizado e alinhar a evoluccedilatildeo do projeto com o desenvolvimentodo cliente

22 Produto Miacutenimo Viaacutevel (MVP)

O conceito de Produto Miacutenimo Viaacutevel (MVP) eacute baseado em construir uma versatildeo doproduto de modo a maximizar a validaccedilatildeo de aprendizado utilizando o menor esforccedilo possiacutevelO tempo de validaccedilatildeo do produto eacute um fator decisivo para o seu sucesso no cumprimentoda demanda do mercado e no uso otimizado de recursos da empresa (Ries 2011)

Um MVP deve possuir 3 caracteriacutesticas 2

1 Ter valor suciente para que uma pessoa queira utilizaacute-lo ou compraacute-lo

2 Possuir sucientes benefiacutecios para reter os chamados usuaacuterios pioneiros (early adop-ters) 3

3 Ser capaz de prover um ciclo de feedback suciente para guiar o desenvolvimento

Durante a concepccedilatildeo do projeto satildeo denidas algumas hipoacuteteses sobre o produto Naetapa do MVP satildeo denidas quais funcionalidades ou estrateacutegias deseja-se testar de modoque possam validar as hipoacuteteses iniciais e obter o maacuteximo de aprendizado possiacutevel

O MVP permite testar se a funcionalidade ou hipoacutetese sobre um projeto eacute bem aceitapelo puacuteblico alvo implementando-a de uma forma simplicada sem despender horas a o noseu desenvolvimento Assim caso comprove-se que tal premissa natildeo eacute interessante para oprojeto seu desenvolvimento eacute interrompido sem que tenham sido desperdiccedilados tempo erecursos

Os termos miacutenimo e maacuteximo referentes a produto miacutenimo viaacutevel e maacuteximo apren-dizado respectivamente frequentemente se mostram vagos na documentaccedilatildeo do que eacute um

1 Retirado de SyncDev httpwwwsyncdevcomminimum-viable-product Acesso em 19 ago 20162 Retirado de Techopedia Minimum Viable Product (MVP) httpswwwtechopediacomdenition

27809minimum-viable-product-mvp Acesso em 19 ago 20163Os primeiros consumidores de um produto que acaba de tornar-se disponiacutevel

23 O CICLO DE CONSTRUIR-MEDIR-APRENDER (BUILD-MEASURE-LEARN) 5

MVP Como o proacuteprio Eric Ries esclarece a aplicaccedilatildeo desses termos natildeo eacute riacutegida e variamde acordo com o contexto e julgamento de quem o estiver aplicando 4

Eacute importante ressaltar que um MVP natildeo eacute um produto completo com as funcionalidadesmiacutenimas e sim um conjunto de caracteriacutesticas miacutenimas que conguram o serviccedilo ou produtoque estaacute sendo oferecido Desta forma um MVP pode ser apenas um protoacutetipo ou mesmoapenas um mockup do que seraacute oferecido na versatildeo completa

Alguns tipos de MVP satildeo 5

bull Viacutedeo explicativo um viacutedeo curto contendo uma explicaccedilatildeo clara do que o produto faze porque as pessoas deveriam utilizaacute-lo Esse eacute o caso do Dropbox que fez um viacutedeo6

com cerca de 5 minutos explicando o que era o seu serviccedilo

bull Landing page criar uma paacutegina inicial contendo uma explicaccedilatildeo detalhada do queeacute o produto que seraacute oferecido assim como um formulaacuterio de contato Por meio doGoogle Analytics eacute possiacutevel manter um registro de conversotildees (no caso cadastros doformulaacuterio) a m de medir o interesse das pessoas no produto

bull MVP Mago de OZ A ideia eacute criar uma paacutegina visualmente completa que funcionecomo o produto nal mas que na verdade exista algueacutem executando as tarefas manu-almente Esse foi o caso da Zappos hoje a maior vendedora de sapatos dos EstadosUnidos

bull MVP com Consierge Em vez de prover um produto realiza-se manualmente o ser-viccedilo executando exatamente os mesmos passos para o usuaacuterio que a empresa realizariaEacute um meacutetodo natildeo escalaacutevel e lento para executar pois requer que se esteja em contatodireto com o cliente e realize as tarefas manualmente No entanto isso permite raacutepidoaprendizado tanto sobre o produto como sobre e o cliente

Esse foi o caso da empresa Food on the Table que ajuda seus consumidores a criaremlistas de compras acharem receitas e conseguirem descontos nos ingredientes em seussupermercados favoritos Inicialmente seus fundadores encontraram uma senhora in-teressada no serviccedilo e por 10 doacutelaressemana eles mantinham as listas de compra eprocuravam por descontos nos supermercados em que ela fazia compras

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)

Com o surgimento das Metodologia Aacutegeis foi possiacutevel criar softwares de maneira interativae envolver o cliente no processo Poreacutem devido agrave falta de um arcabouccedilo para testar ashipoacuteteses comerciais acabava-se muitas vezes por desenvolver um software com todas asfuncionalidades que o cliente gostaria mas sem obter um sucesso comercial7

O modelo de Construir-Medir-Aprender surge entatildeo com o principal objetivo de eliminaras incertezas sobre as hipoacuteteses do produto alinhando-o com as expectativas dos usuaacuterios

4Fonte Startup Lessons Learned Minimum Viable Product a guide httpwwwstartuplessonslearnedcom200908minimum-viable-product-guidehtml

5 Fonte Scale my Business The Ultimate Guide to Minimum Viable Products httpscalemybusinesscomthe-ultimate-guide-to-minimum-viable-products Acesso em 19 ago 2016

6Link para o viacutedeo httpswwwyoutubecomwatchv=7QmCUDHpNzE Acesso em 3 set 20167Fonte Por Steve Blank em httpventurebeatcom20150506

build-measure-learn-doesnt-mean-throwing-things-against-the-wall-to-see-if-they-stick Acesso em 19ago 2016

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Lista de Abreviaturas

MVP Produto Miacutenimo Viaacutevel ( Minimum Viable Product)

CoC Convenccedilatildeo sobre Conguraccedilatildeo ( Convention over Conguration)

DRY Natildeo se repita (Dont Repeat yourself )

ORM Mapeamento Objeto Relacional(Object Relational Mapping)

POP Painel de Opiniatildeo Popular

UX Experiecircncia do Usuaacuterio ( User Experience)

UI Interface de Usuaacuterio (User Interface)

RoR Ruby on Rails

PasS Plataforma como Serviccedilo (Platform as Service)

GA Google Analytics

SO Sistema Operacional

ix

Capiacutetulo 1

Introduccedilatildeo

11 Motivaccedilatildeo e Objetivos

A Cidade Universitaacuteria possui uma variedade de eventos sociais e acadecircmicos que ocor-rem por vezes simultaneamente em toda sua extensatildeo Esse cenaacuterio se daacute pela complexidadecultural existente no campus que envolve discentes docentes e comunidade

Junto agrave comunidade USP foi realizada uma enquete via e-mail na qual constatou-se ointeresse em uma plataforma para divulgar e centralizar os inuacutemeros eventos acadecircmicosou natildeo da Cidade Universitaacuteria Para atender a essa demanda de interesse foi propostaa criaccedilatildeo do USP Eventos um sistema web voltado para os usuaacuterios se informarem sobreo que ocorre no campus aleacutem de incentivar a organizaccedilatildeo de eventos de modo a ocupar oespaccedilo puacuteblico

Para o desenvolvimento do projeto foi escolhida uma abordagem baseada em conceitos deLean Startup e Meacutetodos Aacutegeis A escolha dessa metodologia combinada daacute-se pela sua amplaaplicaccedilatildeo em projetos com grande grau de incerteza nos quais um tratamento interativo eum desenvolvimento incremental auxiliam no aprendizado sobre os interesses do usuaacuterios

O objetivo do trabalho foi aplicar os conceitos de Lean Startup e Meacutetodos Aacutegeis em umprojeto praacutetico a m de desenvolver um software consistente que atendesse agraves necessidadesdos usuaacuterios aleacutem de possibilitar observar as vantagens e desvantagens das abordagensescolhidas

Os dois primeiros capiacutetulos dessa monograa tem como objetivo contextualizar os concei-tos de Lean Startup e Meacutetodos Aacutegeis Em sequecircncia o capiacutetulo Tecnologias descreve breve-mente os programas serviccedilos linguagens e arcabouccedilos utilizados durante o desenvolvimentoO capiacutetulo USP Eventos mostra com detalhes os ciclos de desenvolvimento do projeto EmConclusotildees eacute feita uma anaacutelise dos resultados obtidos e nalizando a Parte Subjetiva naqual satildeo feitos comentaacuterios sobre os desaos disciplinas relevantes e proacuteximos passos

1

Capiacutetulo 2

Lean Startup

21 Lean Startup O que eacute

211 Startup uma deniccedilatildeo

Por meio da popularizaccedilatildeo da Internet e dos computadores pessoais nos anos seguintesde 1990 o termo startup foi generalizado para classicar pequenas empresas com propostasinovadoras sejam por atuarem com as novas tecnologias que surgiram para o grande mercadona eacutepoca como as chamadas empresas online ou ponto com seja pelo seu novo modo deorganizaccedilatildeo e processo de produccedilatildeo

Paternoster (2014) provecirc uma deniccedilatildeo de uma startup de software baseada nos desaosque ela enfrenta

bull Pouco ou nenhum histoacuterico operacional startups possuem pouca ou nenhuma experi-ecircncia em desenvolver processos de negoacutecio e gerenciamento organizacional

bull Recursos limitados startups tipicamente focam em lanccedilar um uacutenico produto promovecirc-lo e construir alianccedilas estrateacutegicas

bull Muacuteltiplas inuecircncias pressatildeo dos investidores clientes parceiros e competidores im-pactam nas tomadas de decisotildees de uma empresa Apesar de importantes nas startupselas tendem a ser inconsistentes

bull Mercado e tecnologias dinacircmicas empresas novas de softwares frequentemente pre-cisam desenvolver ou operar com tecnologias disruptivas para atuar em potenciaismercados alvos

Com o passar dos anos e com o impacto da internet no mercado global o termo startupamadureceu para englobar empresa grupo ou organizaccedilatildeo que busca um modelo de negoacuteciosescalaacutevel geralmente envolvida em implementaccedilotildees de processos inovadores de desenvolvi-mento e pesquisa de mercado-alvo (Blank 2003)

212 Lean Startup

Lean Startup (Startup Enxuta) eacute um conceito introduzido por Eric Ries empreendedorde diversas startups do Vale do Siliacutecio Trata-se de uma metodologia de projeto derivada dacombinaccedilatildeo de outros padrotildees de negoacutecios como Produto Miacutenimo Viaacutevel (Minimal ViableProduct) Desenvolvimento de Clientes (Customer Development) e Desenvolvimento Aacutegil deSoftware ou Meacutetodo Aacutegil (Agile Software Development)

3

4 LEAN STARTUP 22

Ries propotildee que eacute possiacutevel encurtar os ciclos de implementaccedilatildeo de um produto (ousoluccedilatildeo) adotando uma combinaccedilatildeo de testes hipoacuteteses de negoacutecio e experimentaccedilotildees emconjunto com o puacuteblico-alvo Por meio do lanccedilamento perioacutedico eacute possiacutevel avaliar natildeo apenasquesitos teacutecnicos como tambeacutem a reaccedilatildeo do mercado Consequentemente o retorno de cadainteraccedilatildeo afeta o planejamento do produto e suas futuras versotildees (Ries 2011)

Esse desenvolvimento ciacuteclico eacute chamado de ciclo de Construir-Medir-Aprender e baseia-senatildeo soacute em construir uma versatildeo atualizada do produto como tambeacutem em obter um apren-dizado vaacutelido por meio de experimentos que permitam comprovar a aceitaccedilatildeo ou natildeo dashipoacuteteses de negoacutecio Proposta em 1996 por Frank Robinson CEO da empresa SyncDev1trata-se da produccedilatildeo de versotildees simples do produto em muacuteltiplos ciclos de avaliaccedilatildeo estra-teacutegia derivada do padratildeo de Produto Miacutenimo Viaacutevel popularizado anos depois por SteveBlank (Junk 2000)

Robinson propotildee o lanccedilamento de uma versatildeo o mais simples possiacutevel do produto demodo a antecipar a anaacutelise de mercado e assim minimizar o risco de retorno por parte daempresa A inovaccedilatildeo de Steve Blank foi adaptar essa estrateacutegia incluindo o lado do clienteo que ele chama de Desenvolvimento do Cliente (Customer Development) Blank vai aleacutemde apenas minimizar o risco de retorno busca compreender as necessidades do cliente

O Lean Startup aprimora ainda mais o conceito de avaliaccedilotildees sob cada interaccedilatildeo com ointuito de maximizar o aprendizado e alinhar a evoluccedilatildeo do projeto com o desenvolvimentodo cliente

22 Produto Miacutenimo Viaacutevel (MVP)

O conceito de Produto Miacutenimo Viaacutevel (MVP) eacute baseado em construir uma versatildeo doproduto de modo a maximizar a validaccedilatildeo de aprendizado utilizando o menor esforccedilo possiacutevelO tempo de validaccedilatildeo do produto eacute um fator decisivo para o seu sucesso no cumprimentoda demanda do mercado e no uso otimizado de recursos da empresa (Ries 2011)

Um MVP deve possuir 3 caracteriacutesticas 2

1 Ter valor suciente para que uma pessoa queira utilizaacute-lo ou compraacute-lo

2 Possuir sucientes benefiacutecios para reter os chamados usuaacuterios pioneiros (early adop-ters) 3

3 Ser capaz de prover um ciclo de feedback suciente para guiar o desenvolvimento

Durante a concepccedilatildeo do projeto satildeo denidas algumas hipoacuteteses sobre o produto Naetapa do MVP satildeo denidas quais funcionalidades ou estrateacutegias deseja-se testar de modoque possam validar as hipoacuteteses iniciais e obter o maacuteximo de aprendizado possiacutevel

O MVP permite testar se a funcionalidade ou hipoacutetese sobre um projeto eacute bem aceitapelo puacuteblico alvo implementando-a de uma forma simplicada sem despender horas a o noseu desenvolvimento Assim caso comprove-se que tal premissa natildeo eacute interessante para oprojeto seu desenvolvimento eacute interrompido sem que tenham sido desperdiccedilados tempo erecursos

Os termos miacutenimo e maacuteximo referentes a produto miacutenimo viaacutevel e maacuteximo apren-dizado respectivamente frequentemente se mostram vagos na documentaccedilatildeo do que eacute um

1 Retirado de SyncDev httpwwwsyncdevcomminimum-viable-product Acesso em 19 ago 20162 Retirado de Techopedia Minimum Viable Product (MVP) httpswwwtechopediacomdenition

27809minimum-viable-product-mvp Acesso em 19 ago 20163Os primeiros consumidores de um produto que acaba de tornar-se disponiacutevel

23 O CICLO DE CONSTRUIR-MEDIR-APRENDER (BUILD-MEASURE-LEARN) 5

MVP Como o proacuteprio Eric Ries esclarece a aplicaccedilatildeo desses termos natildeo eacute riacutegida e variamde acordo com o contexto e julgamento de quem o estiver aplicando 4

Eacute importante ressaltar que um MVP natildeo eacute um produto completo com as funcionalidadesmiacutenimas e sim um conjunto de caracteriacutesticas miacutenimas que conguram o serviccedilo ou produtoque estaacute sendo oferecido Desta forma um MVP pode ser apenas um protoacutetipo ou mesmoapenas um mockup do que seraacute oferecido na versatildeo completa

Alguns tipos de MVP satildeo 5

bull Viacutedeo explicativo um viacutedeo curto contendo uma explicaccedilatildeo clara do que o produto faze porque as pessoas deveriam utilizaacute-lo Esse eacute o caso do Dropbox que fez um viacutedeo6

com cerca de 5 minutos explicando o que era o seu serviccedilo

bull Landing page criar uma paacutegina inicial contendo uma explicaccedilatildeo detalhada do queeacute o produto que seraacute oferecido assim como um formulaacuterio de contato Por meio doGoogle Analytics eacute possiacutevel manter um registro de conversotildees (no caso cadastros doformulaacuterio) a m de medir o interesse das pessoas no produto

bull MVP Mago de OZ A ideia eacute criar uma paacutegina visualmente completa que funcionecomo o produto nal mas que na verdade exista algueacutem executando as tarefas manu-almente Esse foi o caso da Zappos hoje a maior vendedora de sapatos dos EstadosUnidos

bull MVP com Consierge Em vez de prover um produto realiza-se manualmente o ser-viccedilo executando exatamente os mesmos passos para o usuaacuterio que a empresa realizariaEacute um meacutetodo natildeo escalaacutevel e lento para executar pois requer que se esteja em contatodireto com o cliente e realize as tarefas manualmente No entanto isso permite raacutepidoaprendizado tanto sobre o produto como sobre e o cliente

Esse foi o caso da empresa Food on the Table que ajuda seus consumidores a criaremlistas de compras acharem receitas e conseguirem descontos nos ingredientes em seussupermercados favoritos Inicialmente seus fundadores encontraram uma senhora in-teressada no serviccedilo e por 10 doacutelaressemana eles mantinham as listas de compra eprocuravam por descontos nos supermercados em que ela fazia compras

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)

Com o surgimento das Metodologia Aacutegeis foi possiacutevel criar softwares de maneira interativae envolver o cliente no processo Poreacutem devido agrave falta de um arcabouccedilo para testar ashipoacuteteses comerciais acabava-se muitas vezes por desenvolver um software com todas asfuncionalidades que o cliente gostaria mas sem obter um sucesso comercial7

O modelo de Construir-Medir-Aprender surge entatildeo com o principal objetivo de eliminaras incertezas sobre as hipoacuteteses do produto alinhando-o com as expectativas dos usuaacuterios

4Fonte Startup Lessons Learned Minimum Viable Product a guide httpwwwstartuplessonslearnedcom200908minimum-viable-product-guidehtml

5 Fonte Scale my Business The Ultimate Guide to Minimum Viable Products httpscalemybusinesscomthe-ultimate-guide-to-minimum-viable-products Acesso em 19 ago 2016

6Link para o viacutedeo httpswwwyoutubecomwatchv=7QmCUDHpNzE Acesso em 3 set 20167Fonte Por Steve Blank em httpventurebeatcom20150506

build-measure-learn-doesnt-mean-throwing-things-against-the-wall-to-see-if-they-stick Acesso em 19ago 2016

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Capiacutetulo 1

Introduccedilatildeo

11 Motivaccedilatildeo e Objetivos

A Cidade Universitaacuteria possui uma variedade de eventos sociais e acadecircmicos que ocor-rem por vezes simultaneamente em toda sua extensatildeo Esse cenaacuterio se daacute pela complexidadecultural existente no campus que envolve discentes docentes e comunidade

Junto agrave comunidade USP foi realizada uma enquete via e-mail na qual constatou-se ointeresse em uma plataforma para divulgar e centralizar os inuacutemeros eventos acadecircmicosou natildeo da Cidade Universitaacuteria Para atender a essa demanda de interesse foi propostaa criaccedilatildeo do USP Eventos um sistema web voltado para os usuaacuterios se informarem sobreo que ocorre no campus aleacutem de incentivar a organizaccedilatildeo de eventos de modo a ocupar oespaccedilo puacuteblico

Para o desenvolvimento do projeto foi escolhida uma abordagem baseada em conceitos deLean Startup e Meacutetodos Aacutegeis A escolha dessa metodologia combinada daacute-se pela sua amplaaplicaccedilatildeo em projetos com grande grau de incerteza nos quais um tratamento interativo eum desenvolvimento incremental auxiliam no aprendizado sobre os interesses do usuaacuterios

O objetivo do trabalho foi aplicar os conceitos de Lean Startup e Meacutetodos Aacutegeis em umprojeto praacutetico a m de desenvolver um software consistente que atendesse agraves necessidadesdos usuaacuterios aleacutem de possibilitar observar as vantagens e desvantagens das abordagensescolhidas

Os dois primeiros capiacutetulos dessa monograa tem como objetivo contextualizar os concei-tos de Lean Startup e Meacutetodos Aacutegeis Em sequecircncia o capiacutetulo Tecnologias descreve breve-mente os programas serviccedilos linguagens e arcabouccedilos utilizados durante o desenvolvimentoO capiacutetulo USP Eventos mostra com detalhes os ciclos de desenvolvimento do projeto EmConclusotildees eacute feita uma anaacutelise dos resultados obtidos e nalizando a Parte Subjetiva naqual satildeo feitos comentaacuterios sobre os desaos disciplinas relevantes e proacuteximos passos

1

Capiacutetulo 2

Lean Startup

21 Lean Startup O que eacute

211 Startup uma deniccedilatildeo

Por meio da popularizaccedilatildeo da Internet e dos computadores pessoais nos anos seguintesde 1990 o termo startup foi generalizado para classicar pequenas empresas com propostasinovadoras sejam por atuarem com as novas tecnologias que surgiram para o grande mercadona eacutepoca como as chamadas empresas online ou ponto com seja pelo seu novo modo deorganizaccedilatildeo e processo de produccedilatildeo

Paternoster (2014) provecirc uma deniccedilatildeo de uma startup de software baseada nos desaosque ela enfrenta

bull Pouco ou nenhum histoacuterico operacional startups possuem pouca ou nenhuma experi-ecircncia em desenvolver processos de negoacutecio e gerenciamento organizacional

bull Recursos limitados startups tipicamente focam em lanccedilar um uacutenico produto promovecirc-lo e construir alianccedilas estrateacutegicas

bull Muacuteltiplas inuecircncias pressatildeo dos investidores clientes parceiros e competidores im-pactam nas tomadas de decisotildees de uma empresa Apesar de importantes nas startupselas tendem a ser inconsistentes

bull Mercado e tecnologias dinacircmicas empresas novas de softwares frequentemente pre-cisam desenvolver ou operar com tecnologias disruptivas para atuar em potenciaismercados alvos

Com o passar dos anos e com o impacto da internet no mercado global o termo startupamadureceu para englobar empresa grupo ou organizaccedilatildeo que busca um modelo de negoacuteciosescalaacutevel geralmente envolvida em implementaccedilotildees de processos inovadores de desenvolvi-mento e pesquisa de mercado-alvo (Blank 2003)

212 Lean Startup

Lean Startup (Startup Enxuta) eacute um conceito introduzido por Eric Ries empreendedorde diversas startups do Vale do Siliacutecio Trata-se de uma metodologia de projeto derivada dacombinaccedilatildeo de outros padrotildees de negoacutecios como Produto Miacutenimo Viaacutevel (Minimal ViableProduct) Desenvolvimento de Clientes (Customer Development) e Desenvolvimento Aacutegil deSoftware ou Meacutetodo Aacutegil (Agile Software Development)

3

4 LEAN STARTUP 22

Ries propotildee que eacute possiacutevel encurtar os ciclos de implementaccedilatildeo de um produto (ousoluccedilatildeo) adotando uma combinaccedilatildeo de testes hipoacuteteses de negoacutecio e experimentaccedilotildees emconjunto com o puacuteblico-alvo Por meio do lanccedilamento perioacutedico eacute possiacutevel avaliar natildeo apenasquesitos teacutecnicos como tambeacutem a reaccedilatildeo do mercado Consequentemente o retorno de cadainteraccedilatildeo afeta o planejamento do produto e suas futuras versotildees (Ries 2011)

Esse desenvolvimento ciacuteclico eacute chamado de ciclo de Construir-Medir-Aprender e baseia-senatildeo soacute em construir uma versatildeo atualizada do produto como tambeacutem em obter um apren-dizado vaacutelido por meio de experimentos que permitam comprovar a aceitaccedilatildeo ou natildeo dashipoacuteteses de negoacutecio Proposta em 1996 por Frank Robinson CEO da empresa SyncDev1trata-se da produccedilatildeo de versotildees simples do produto em muacuteltiplos ciclos de avaliaccedilatildeo estra-teacutegia derivada do padratildeo de Produto Miacutenimo Viaacutevel popularizado anos depois por SteveBlank (Junk 2000)

Robinson propotildee o lanccedilamento de uma versatildeo o mais simples possiacutevel do produto demodo a antecipar a anaacutelise de mercado e assim minimizar o risco de retorno por parte daempresa A inovaccedilatildeo de Steve Blank foi adaptar essa estrateacutegia incluindo o lado do clienteo que ele chama de Desenvolvimento do Cliente (Customer Development) Blank vai aleacutemde apenas minimizar o risco de retorno busca compreender as necessidades do cliente

O Lean Startup aprimora ainda mais o conceito de avaliaccedilotildees sob cada interaccedilatildeo com ointuito de maximizar o aprendizado e alinhar a evoluccedilatildeo do projeto com o desenvolvimentodo cliente

22 Produto Miacutenimo Viaacutevel (MVP)

O conceito de Produto Miacutenimo Viaacutevel (MVP) eacute baseado em construir uma versatildeo doproduto de modo a maximizar a validaccedilatildeo de aprendizado utilizando o menor esforccedilo possiacutevelO tempo de validaccedilatildeo do produto eacute um fator decisivo para o seu sucesso no cumprimentoda demanda do mercado e no uso otimizado de recursos da empresa (Ries 2011)

Um MVP deve possuir 3 caracteriacutesticas 2

1 Ter valor suciente para que uma pessoa queira utilizaacute-lo ou compraacute-lo

2 Possuir sucientes benefiacutecios para reter os chamados usuaacuterios pioneiros (early adop-ters) 3

3 Ser capaz de prover um ciclo de feedback suciente para guiar o desenvolvimento

Durante a concepccedilatildeo do projeto satildeo denidas algumas hipoacuteteses sobre o produto Naetapa do MVP satildeo denidas quais funcionalidades ou estrateacutegias deseja-se testar de modoque possam validar as hipoacuteteses iniciais e obter o maacuteximo de aprendizado possiacutevel

O MVP permite testar se a funcionalidade ou hipoacutetese sobre um projeto eacute bem aceitapelo puacuteblico alvo implementando-a de uma forma simplicada sem despender horas a o noseu desenvolvimento Assim caso comprove-se que tal premissa natildeo eacute interessante para oprojeto seu desenvolvimento eacute interrompido sem que tenham sido desperdiccedilados tempo erecursos

Os termos miacutenimo e maacuteximo referentes a produto miacutenimo viaacutevel e maacuteximo apren-dizado respectivamente frequentemente se mostram vagos na documentaccedilatildeo do que eacute um

1 Retirado de SyncDev httpwwwsyncdevcomminimum-viable-product Acesso em 19 ago 20162 Retirado de Techopedia Minimum Viable Product (MVP) httpswwwtechopediacomdenition

27809minimum-viable-product-mvp Acesso em 19 ago 20163Os primeiros consumidores de um produto que acaba de tornar-se disponiacutevel

23 O CICLO DE CONSTRUIR-MEDIR-APRENDER (BUILD-MEASURE-LEARN) 5

MVP Como o proacuteprio Eric Ries esclarece a aplicaccedilatildeo desses termos natildeo eacute riacutegida e variamde acordo com o contexto e julgamento de quem o estiver aplicando 4

Eacute importante ressaltar que um MVP natildeo eacute um produto completo com as funcionalidadesmiacutenimas e sim um conjunto de caracteriacutesticas miacutenimas que conguram o serviccedilo ou produtoque estaacute sendo oferecido Desta forma um MVP pode ser apenas um protoacutetipo ou mesmoapenas um mockup do que seraacute oferecido na versatildeo completa

Alguns tipos de MVP satildeo 5

bull Viacutedeo explicativo um viacutedeo curto contendo uma explicaccedilatildeo clara do que o produto faze porque as pessoas deveriam utilizaacute-lo Esse eacute o caso do Dropbox que fez um viacutedeo6

com cerca de 5 minutos explicando o que era o seu serviccedilo

bull Landing page criar uma paacutegina inicial contendo uma explicaccedilatildeo detalhada do queeacute o produto que seraacute oferecido assim como um formulaacuterio de contato Por meio doGoogle Analytics eacute possiacutevel manter um registro de conversotildees (no caso cadastros doformulaacuterio) a m de medir o interesse das pessoas no produto

bull MVP Mago de OZ A ideia eacute criar uma paacutegina visualmente completa que funcionecomo o produto nal mas que na verdade exista algueacutem executando as tarefas manu-almente Esse foi o caso da Zappos hoje a maior vendedora de sapatos dos EstadosUnidos

bull MVP com Consierge Em vez de prover um produto realiza-se manualmente o ser-viccedilo executando exatamente os mesmos passos para o usuaacuterio que a empresa realizariaEacute um meacutetodo natildeo escalaacutevel e lento para executar pois requer que se esteja em contatodireto com o cliente e realize as tarefas manualmente No entanto isso permite raacutepidoaprendizado tanto sobre o produto como sobre e o cliente

Esse foi o caso da empresa Food on the Table que ajuda seus consumidores a criaremlistas de compras acharem receitas e conseguirem descontos nos ingredientes em seussupermercados favoritos Inicialmente seus fundadores encontraram uma senhora in-teressada no serviccedilo e por 10 doacutelaressemana eles mantinham as listas de compra eprocuravam por descontos nos supermercados em que ela fazia compras

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)

Com o surgimento das Metodologia Aacutegeis foi possiacutevel criar softwares de maneira interativae envolver o cliente no processo Poreacutem devido agrave falta de um arcabouccedilo para testar ashipoacuteteses comerciais acabava-se muitas vezes por desenvolver um software com todas asfuncionalidades que o cliente gostaria mas sem obter um sucesso comercial7

O modelo de Construir-Medir-Aprender surge entatildeo com o principal objetivo de eliminaras incertezas sobre as hipoacuteteses do produto alinhando-o com as expectativas dos usuaacuterios

4Fonte Startup Lessons Learned Minimum Viable Product a guide httpwwwstartuplessonslearnedcom200908minimum-viable-product-guidehtml

5 Fonte Scale my Business The Ultimate Guide to Minimum Viable Products httpscalemybusinesscomthe-ultimate-guide-to-minimum-viable-products Acesso em 19 ago 2016

6Link para o viacutedeo httpswwwyoutubecomwatchv=7QmCUDHpNzE Acesso em 3 set 20167Fonte Por Steve Blank em httpventurebeatcom20150506

build-measure-learn-doesnt-mean-throwing-things-against-the-wall-to-see-if-they-stick Acesso em 19ago 2016

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Capiacutetulo 2

Lean Startup

21 Lean Startup O que eacute

211 Startup uma deniccedilatildeo

Por meio da popularizaccedilatildeo da Internet e dos computadores pessoais nos anos seguintesde 1990 o termo startup foi generalizado para classicar pequenas empresas com propostasinovadoras sejam por atuarem com as novas tecnologias que surgiram para o grande mercadona eacutepoca como as chamadas empresas online ou ponto com seja pelo seu novo modo deorganizaccedilatildeo e processo de produccedilatildeo

Paternoster (2014) provecirc uma deniccedilatildeo de uma startup de software baseada nos desaosque ela enfrenta

bull Pouco ou nenhum histoacuterico operacional startups possuem pouca ou nenhuma experi-ecircncia em desenvolver processos de negoacutecio e gerenciamento organizacional

bull Recursos limitados startups tipicamente focam em lanccedilar um uacutenico produto promovecirc-lo e construir alianccedilas estrateacutegicas

bull Muacuteltiplas inuecircncias pressatildeo dos investidores clientes parceiros e competidores im-pactam nas tomadas de decisotildees de uma empresa Apesar de importantes nas startupselas tendem a ser inconsistentes

bull Mercado e tecnologias dinacircmicas empresas novas de softwares frequentemente pre-cisam desenvolver ou operar com tecnologias disruptivas para atuar em potenciaismercados alvos

Com o passar dos anos e com o impacto da internet no mercado global o termo startupamadureceu para englobar empresa grupo ou organizaccedilatildeo que busca um modelo de negoacuteciosescalaacutevel geralmente envolvida em implementaccedilotildees de processos inovadores de desenvolvi-mento e pesquisa de mercado-alvo (Blank 2003)

212 Lean Startup

Lean Startup (Startup Enxuta) eacute um conceito introduzido por Eric Ries empreendedorde diversas startups do Vale do Siliacutecio Trata-se de uma metodologia de projeto derivada dacombinaccedilatildeo de outros padrotildees de negoacutecios como Produto Miacutenimo Viaacutevel (Minimal ViableProduct) Desenvolvimento de Clientes (Customer Development) e Desenvolvimento Aacutegil deSoftware ou Meacutetodo Aacutegil (Agile Software Development)

3

4 LEAN STARTUP 22

Ries propotildee que eacute possiacutevel encurtar os ciclos de implementaccedilatildeo de um produto (ousoluccedilatildeo) adotando uma combinaccedilatildeo de testes hipoacuteteses de negoacutecio e experimentaccedilotildees emconjunto com o puacuteblico-alvo Por meio do lanccedilamento perioacutedico eacute possiacutevel avaliar natildeo apenasquesitos teacutecnicos como tambeacutem a reaccedilatildeo do mercado Consequentemente o retorno de cadainteraccedilatildeo afeta o planejamento do produto e suas futuras versotildees (Ries 2011)

Esse desenvolvimento ciacuteclico eacute chamado de ciclo de Construir-Medir-Aprender e baseia-senatildeo soacute em construir uma versatildeo atualizada do produto como tambeacutem em obter um apren-dizado vaacutelido por meio de experimentos que permitam comprovar a aceitaccedilatildeo ou natildeo dashipoacuteteses de negoacutecio Proposta em 1996 por Frank Robinson CEO da empresa SyncDev1trata-se da produccedilatildeo de versotildees simples do produto em muacuteltiplos ciclos de avaliaccedilatildeo estra-teacutegia derivada do padratildeo de Produto Miacutenimo Viaacutevel popularizado anos depois por SteveBlank (Junk 2000)

Robinson propotildee o lanccedilamento de uma versatildeo o mais simples possiacutevel do produto demodo a antecipar a anaacutelise de mercado e assim minimizar o risco de retorno por parte daempresa A inovaccedilatildeo de Steve Blank foi adaptar essa estrateacutegia incluindo o lado do clienteo que ele chama de Desenvolvimento do Cliente (Customer Development) Blank vai aleacutemde apenas minimizar o risco de retorno busca compreender as necessidades do cliente

O Lean Startup aprimora ainda mais o conceito de avaliaccedilotildees sob cada interaccedilatildeo com ointuito de maximizar o aprendizado e alinhar a evoluccedilatildeo do projeto com o desenvolvimentodo cliente

22 Produto Miacutenimo Viaacutevel (MVP)

O conceito de Produto Miacutenimo Viaacutevel (MVP) eacute baseado em construir uma versatildeo doproduto de modo a maximizar a validaccedilatildeo de aprendizado utilizando o menor esforccedilo possiacutevelO tempo de validaccedilatildeo do produto eacute um fator decisivo para o seu sucesso no cumprimentoda demanda do mercado e no uso otimizado de recursos da empresa (Ries 2011)

Um MVP deve possuir 3 caracteriacutesticas 2

1 Ter valor suciente para que uma pessoa queira utilizaacute-lo ou compraacute-lo

2 Possuir sucientes benefiacutecios para reter os chamados usuaacuterios pioneiros (early adop-ters) 3

3 Ser capaz de prover um ciclo de feedback suciente para guiar o desenvolvimento

Durante a concepccedilatildeo do projeto satildeo denidas algumas hipoacuteteses sobre o produto Naetapa do MVP satildeo denidas quais funcionalidades ou estrateacutegias deseja-se testar de modoque possam validar as hipoacuteteses iniciais e obter o maacuteximo de aprendizado possiacutevel

O MVP permite testar se a funcionalidade ou hipoacutetese sobre um projeto eacute bem aceitapelo puacuteblico alvo implementando-a de uma forma simplicada sem despender horas a o noseu desenvolvimento Assim caso comprove-se que tal premissa natildeo eacute interessante para oprojeto seu desenvolvimento eacute interrompido sem que tenham sido desperdiccedilados tempo erecursos

Os termos miacutenimo e maacuteximo referentes a produto miacutenimo viaacutevel e maacuteximo apren-dizado respectivamente frequentemente se mostram vagos na documentaccedilatildeo do que eacute um

1 Retirado de SyncDev httpwwwsyncdevcomminimum-viable-product Acesso em 19 ago 20162 Retirado de Techopedia Minimum Viable Product (MVP) httpswwwtechopediacomdenition

27809minimum-viable-product-mvp Acesso em 19 ago 20163Os primeiros consumidores de um produto que acaba de tornar-se disponiacutevel

23 O CICLO DE CONSTRUIR-MEDIR-APRENDER (BUILD-MEASURE-LEARN) 5

MVP Como o proacuteprio Eric Ries esclarece a aplicaccedilatildeo desses termos natildeo eacute riacutegida e variamde acordo com o contexto e julgamento de quem o estiver aplicando 4

Eacute importante ressaltar que um MVP natildeo eacute um produto completo com as funcionalidadesmiacutenimas e sim um conjunto de caracteriacutesticas miacutenimas que conguram o serviccedilo ou produtoque estaacute sendo oferecido Desta forma um MVP pode ser apenas um protoacutetipo ou mesmoapenas um mockup do que seraacute oferecido na versatildeo completa

Alguns tipos de MVP satildeo 5

bull Viacutedeo explicativo um viacutedeo curto contendo uma explicaccedilatildeo clara do que o produto faze porque as pessoas deveriam utilizaacute-lo Esse eacute o caso do Dropbox que fez um viacutedeo6

com cerca de 5 minutos explicando o que era o seu serviccedilo

bull Landing page criar uma paacutegina inicial contendo uma explicaccedilatildeo detalhada do queeacute o produto que seraacute oferecido assim como um formulaacuterio de contato Por meio doGoogle Analytics eacute possiacutevel manter um registro de conversotildees (no caso cadastros doformulaacuterio) a m de medir o interesse das pessoas no produto

bull MVP Mago de OZ A ideia eacute criar uma paacutegina visualmente completa que funcionecomo o produto nal mas que na verdade exista algueacutem executando as tarefas manu-almente Esse foi o caso da Zappos hoje a maior vendedora de sapatos dos EstadosUnidos

bull MVP com Consierge Em vez de prover um produto realiza-se manualmente o ser-viccedilo executando exatamente os mesmos passos para o usuaacuterio que a empresa realizariaEacute um meacutetodo natildeo escalaacutevel e lento para executar pois requer que se esteja em contatodireto com o cliente e realize as tarefas manualmente No entanto isso permite raacutepidoaprendizado tanto sobre o produto como sobre e o cliente

Esse foi o caso da empresa Food on the Table que ajuda seus consumidores a criaremlistas de compras acharem receitas e conseguirem descontos nos ingredientes em seussupermercados favoritos Inicialmente seus fundadores encontraram uma senhora in-teressada no serviccedilo e por 10 doacutelaressemana eles mantinham as listas de compra eprocuravam por descontos nos supermercados em que ela fazia compras

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)

Com o surgimento das Metodologia Aacutegeis foi possiacutevel criar softwares de maneira interativae envolver o cliente no processo Poreacutem devido agrave falta de um arcabouccedilo para testar ashipoacuteteses comerciais acabava-se muitas vezes por desenvolver um software com todas asfuncionalidades que o cliente gostaria mas sem obter um sucesso comercial7

O modelo de Construir-Medir-Aprender surge entatildeo com o principal objetivo de eliminaras incertezas sobre as hipoacuteteses do produto alinhando-o com as expectativas dos usuaacuterios

4Fonte Startup Lessons Learned Minimum Viable Product a guide httpwwwstartuplessonslearnedcom200908minimum-viable-product-guidehtml

5 Fonte Scale my Business The Ultimate Guide to Minimum Viable Products httpscalemybusinesscomthe-ultimate-guide-to-minimum-viable-products Acesso em 19 ago 2016

6Link para o viacutedeo httpswwwyoutubecomwatchv=7QmCUDHpNzE Acesso em 3 set 20167Fonte Por Steve Blank em httpventurebeatcom20150506

build-measure-learn-doesnt-mean-throwing-things-against-the-wall-to-see-if-they-stick Acesso em 19ago 2016

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

4 LEAN STARTUP 22

Ries propotildee que eacute possiacutevel encurtar os ciclos de implementaccedilatildeo de um produto (ousoluccedilatildeo) adotando uma combinaccedilatildeo de testes hipoacuteteses de negoacutecio e experimentaccedilotildees emconjunto com o puacuteblico-alvo Por meio do lanccedilamento perioacutedico eacute possiacutevel avaliar natildeo apenasquesitos teacutecnicos como tambeacutem a reaccedilatildeo do mercado Consequentemente o retorno de cadainteraccedilatildeo afeta o planejamento do produto e suas futuras versotildees (Ries 2011)

Esse desenvolvimento ciacuteclico eacute chamado de ciclo de Construir-Medir-Aprender e baseia-senatildeo soacute em construir uma versatildeo atualizada do produto como tambeacutem em obter um apren-dizado vaacutelido por meio de experimentos que permitam comprovar a aceitaccedilatildeo ou natildeo dashipoacuteteses de negoacutecio Proposta em 1996 por Frank Robinson CEO da empresa SyncDev1trata-se da produccedilatildeo de versotildees simples do produto em muacuteltiplos ciclos de avaliaccedilatildeo estra-teacutegia derivada do padratildeo de Produto Miacutenimo Viaacutevel popularizado anos depois por SteveBlank (Junk 2000)

Robinson propotildee o lanccedilamento de uma versatildeo o mais simples possiacutevel do produto demodo a antecipar a anaacutelise de mercado e assim minimizar o risco de retorno por parte daempresa A inovaccedilatildeo de Steve Blank foi adaptar essa estrateacutegia incluindo o lado do clienteo que ele chama de Desenvolvimento do Cliente (Customer Development) Blank vai aleacutemde apenas minimizar o risco de retorno busca compreender as necessidades do cliente

O Lean Startup aprimora ainda mais o conceito de avaliaccedilotildees sob cada interaccedilatildeo com ointuito de maximizar o aprendizado e alinhar a evoluccedilatildeo do projeto com o desenvolvimentodo cliente

22 Produto Miacutenimo Viaacutevel (MVP)

O conceito de Produto Miacutenimo Viaacutevel (MVP) eacute baseado em construir uma versatildeo doproduto de modo a maximizar a validaccedilatildeo de aprendizado utilizando o menor esforccedilo possiacutevelO tempo de validaccedilatildeo do produto eacute um fator decisivo para o seu sucesso no cumprimentoda demanda do mercado e no uso otimizado de recursos da empresa (Ries 2011)

Um MVP deve possuir 3 caracteriacutesticas 2

1 Ter valor suciente para que uma pessoa queira utilizaacute-lo ou compraacute-lo

2 Possuir sucientes benefiacutecios para reter os chamados usuaacuterios pioneiros (early adop-ters) 3

3 Ser capaz de prover um ciclo de feedback suciente para guiar o desenvolvimento

Durante a concepccedilatildeo do projeto satildeo denidas algumas hipoacuteteses sobre o produto Naetapa do MVP satildeo denidas quais funcionalidades ou estrateacutegias deseja-se testar de modoque possam validar as hipoacuteteses iniciais e obter o maacuteximo de aprendizado possiacutevel

O MVP permite testar se a funcionalidade ou hipoacutetese sobre um projeto eacute bem aceitapelo puacuteblico alvo implementando-a de uma forma simplicada sem despender horas a o noseu desenvolvimento Assim caso comprove-se que tal premissa natildeo eacute interessante para oprojeto seu desenvolvimento eacute interrompido sem que tenham sido desperdiccedilados tempo erecursos

Os termos miacutenimo e maacuteximo referentes a produto miacutenimo viaacutevel e maacuteximo apren-dizado respectivamente frequentemente se mostram vagos na documentaccedilatildeo do que eacute um

1 Retirado de SyncDev httpwwwsyncdevcomminimum-viable-product Acesso em 19 ago 20162 Retirado de Techopedia Minimum Viable Product (MVP) httpswwwtechopediacomdenition

27809minimum-viable-product-mvp Acesso em 19 ago 20163Os primeiros consumidores de um produto que acaba de tornar-se disponiacutevel

23 O CICLO DE CONSTRUIR-MEDIR-APRENDER (BUILD-MEASURE-LEARN) 5

MVP Como o proacuteprio Eric Ries esclarece a aplicaccedilatildeo desses termos natildeo eacute riacutegida e variamde acordo com o contexto e julgamento de quem o estiver aplicando 4

Eacute importante ressaltar que um MVP natildeo eacute um produto completo com as funcionalidadesmiacutenimas e sim um conjunto de caracteriacutesticas miacutenimas que conguram o serviccedilo ou produtoque estaacute sendo oferecido Desta forma um MVP pode ser apenas um protoacutetipo ou mesmoapenas um mockup do que seraacute oferecido na versatildeo completa

Alguns tipos de MVP satildeo 5

bull Viacutedeo explicativo um viacutedeo curto contendo uma explicaccedilatildeo clara do que o produto faze porque as pessoas deveriam utilizaacute-lo Esse eacute o caso do Dropbox que fez um viacutedeo6

com cerca de 5 minutos explicando o que era o seu serviccedilo

bull Landing page criar uma paacutegina inicial contendo uma explicaccedilatildeo detalhada do queeacute o produto que seraacute oferecido assim como um formulaacuterio de contato Por meio doGoogle Analytics eacute possiacutevel manter um registro de conversotildees (no caso cadastros doformulaacuterio) a m de medir o interesse das pessoas no produto

bull MVP Mago de OZ A ideia eacute criar uma paacutegina visualmente completa que funcionecomo o produto nal mas que na verdade exista algueacutem executando as tarefas manu-almente Esse foi o caso da Zappos hoje a maior vendedora de sapatos dos EstadosUnidos

bull MVP com Consierge Em vez de prover um produto realiza-se manualmente o ser-viccedilo executando exatamente os mesmos passos para o usuaacuterio que a empresa realizariaEacute um meacutetodo natildeo escalaacutevel e lento para executar pois requer que se esteja em contatodireto com o cliente e realize as tarefas manualmente No entanto isso permite raacutepidoaprendizado tanto sobre o produto como sobre e o cliente

Esse foi o caso da empresa Food on the Table que ajuda seus consumidores a criaremlistas de compras acharem receitas e conseguirem descontos nos ingredientes em seussupermercados favoritos Inicialmente seus fundadores encontraram uma senhora in-teressada no serviccedilo e por 10 doacutelaressemana eles mantinham as listas de compra eprocuravam por descontos nos supermercados em que ela fazia compras

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)

Com o surgimento das Metodologia Aacutegeis foi possiacutevel criar softwares de maneira interativae envolver o cliente no processo Poreacutem devido agrave falta de um arcabouccedilo para testar ashipoacuteteses comerciais acabava-se muitas vezes por desenvolver um software com todas asfuncionalidades que o cliente gostaria mas sem obter um sucesso comercial7

O modelo de Construir-Medir-Aprender surge entatildeo com o principal objetivo de eliminaras incertezas sobre as hipoacuteteses do produto alinhando-o com as expectativas dos usuaacuterios

4Fonte Startup Lessons Learned Minimum Viable Product a guide httpwwwstartuplessonslearnedcom200908minimum-viable-product-guidehtml

5 Fonte Scale my Business The Ultimate Guide to Minimum Viable Products httpscalemybusinesscomthe-ultimate-guide-to-minimum-viable-products Acesso em 19 ago 2016

6Link para o viacutedeo httpswwwyoutubecomwatchv=7QmCUDHpNzE Acesso em 3 set 20167Fonte Por Steve Blank em httpventurebeatcom20150506

build-measure-learn-doesnt-mean-throwing-things-against-the-wall-to-see-if-they-stick Acesso em 19ago 2016

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

23 O CICLO DE CONSTRUIR-MEDIR-APRENDER (BUILD-MEASURE-LEARN) 5

MVP Como o proacuteprio Eric Ries esclarece a aplicaccedilatildeo desses termos natildeo eacute riacutegida e variamde acordo com o contexto e julgamento de quem o estiver aplicando 4

Eacute importante ressaltar que um MVP natildeo eacute um produto completo com as funcionalidadesmiacutenimas e sim um conjunto de caracteriacutesticas miacutenimas que conguram o serviccedilo ou produtoque estaacute sendo oferecido Desta forma um MVP pode ser apenas um protoacutetipo ou mesmoapenas um mockup do que seraacute oferecido na versatildeo completa

Alguns tipos de MVP satildeo 5

bull Viacutedeo explicativo um viacutedeo curto contendo uma explicaccedilatildeo clara do que o produto faze porque as pessoas deveriam utilizaacute-lo Esse eacute o caso do Dropbox que fez um viacutedeo6

com cerca de 5 minutos explicando o que era o seu serviccedilo

bull Landing page criar uma paacutegina inicial contendo uma explicaccedilatildeo detalhada do queeacute o produto que seraacute oferecido assim como um formulaacuterio de contato Por meio doGoogle Analytics eacute possiacutevel manter um registro de conversotildees (no caso cadastros doformulaacuterio) a m de medir o interesse das pessoas no produto

bull MVP Mago de OZ A ideia eacute criar uma paacutegina visualmente completa que funcionecomo o produto nal mas que na verdade exista algueacutem executando as tarefas manu-almente Esse foi o caso da Zappos hoje a maior vendedora de sapatos dos EstadosUnidos

bull MVP com Consierge Em vez de prover um produto realiza-se manualmente o ser-viccedilo executando exatamente os mesmos passos para o usuaacuterio que a empresa realizariaEacute um meacutetodo natildeo escalaacutevel e lento para executar pois requer que se esteja em contatodireto com o cliente e realize as tarefas manualmente No entanto isso permite raacutepidoaprendizado tanto sobre o produto como sobre e o cliente

Esse foi o caso da empresa Food on the Table que ajuda seus consumidores a criaremlistas de compras acharem receitas e conseguirem descontos nos ingredientes em seussupermercados favoritos Inicialmente seus fundadores encontraram uma senhora in-teressada no serviccedilo e por 10 doacutelaressemana eles mantinham as listas de compra eprocuravam por descontos nos supermercados em que ela fazia compras

23 O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)

Com o surgimento das Metodologia Aacutegeis foi possiacutevel criar softwares de maneira interativae envolver o cliente no processo Poreacutem devido agrave falta de um arcabouccedilo para testar ashipoacuteteses comerciais acabava-se muitas vezes por desenvolver um software com todas asfuncionalidades que o cliente gostaria mas sem obter um sucesso comercial7

O modelo de Construir-Medir-Aprender surge entatildeo com o principal objetivo de eliminaras incertezas sobre as hipoacuteteses do produto alinhando-o com as expectativas dos usuaacuterios

4Fonte Startup Lessons Learned Minimum Viable Product a guide httpwwwstartuplessonslearnedcom200908minimum-viable-product-guidehtml

5 Fonte Scale my Business The Ultimate Guide to Minimum Viable Products httpscalemybusinesscomthe-ultimate-guide-to-minimum-viable-products Acesso em 19 ago 2016

6Link para o viacutedeo httpswwwyoutubecomwatchv=7QmCUDHpNzE Acesso em 3 set 20167Fonte Por Steve Blank em httpventurebeatcom20150506

build-measure-learn-doesnt-mean-throwing-things-against-the-wall-to-see-if-they-stick Acesso em 19ago 2016

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

6 LEAN STARTUP 23

Por meio do aprendizado raacutepido sobre o comportamento dos usuaacuterios eacute possiacutevel minimizaros riscos e custos de funcionalidades desnecessaacuterias mantendo o aspecto interativo presentena Metodologia Aacutegil e obtendo um aprendizado sobre o comportamento do usuaacuterio a cadainteraccedilatildeo

Este modelo consiste em um ciclo de 3 fases (gura 21)

Figura 21 O ciclo de Build Measure Learn

Retirada de httpssteveblankleswordpresscom201505ideas-build-code-measurejpgacesso em 20 jul 2016

bull Construir (Build) algumas ideias satildeo denidas a partir das hipoacuteteses do produto queprecisam ser implementadas no MVP

bull Medir (Measure) implementado o MVP coleta-se os dados de uso avaliando seu de-sempenho Todo o ciclo eacute baseado na ideia de aprendizado vaacutelido para coletar o maacuteximopossiacutevel de informaccedilatildeo sobre a reaccedilatildeo dos usuaacuterios

bull Aprender (Learn) a partir da anaacutelise dos dados coletados eacute possiacutevel inferir sobre comoprosseguir o desenvolvimento e denir novas hipoacuteteses para iniciar um novo ciclo

As etapas do ciclo natildeo precisam necessariamente ocorrer em ordem podendo se sobreporou mesmo serem unidas dependendo de como for o ciclo de desenvolvimento (Ries 2011)

As alteraccedilotildees de software precisam ser feitas de maneira raacutepida de modo a testar o maisraacutepido possiacutevel novas ideias Portanto eacute importante que as funcionalidades sejam simples ediretas O foco eacute o aprendizado e natildeo desenvolver um software ou um protoacutetipo completo

Para minimizar o risco de que um sistema com problemas seja colocado em produccedilatildeoe acelerar o processo de desenvolvimento procura-se utilizar ferramentas que auxiliem naintegraccedilatildeo contiacutenua do software aleacutem da execuccedilatildeo de testes automatizados A utilizaccedilatildeodesses recursos permite manter um desenvolvimento consistente e conaacutevel sem comprometero tempo de execuccedilatildeo

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

24 DESENVOLVIMENTO DE CLIENTES 7

O que o Construir-Medir-Aprender perde de vista eacute que novos empreendimentos tantostartups quanto novas iniciativas dentro de empresas jaacute existentes natildeo comeccedilam com ideiasmas com hipoacuteteses

O conceito de Ideia evoca uma visatildeo que imediatamente requer um plano para se fruti-car Em contraste hipoacutetese indica um palpite com precedentes que requer experimentaccedilatildeoe dados para ser validado ou invalidado (Blank 2015)

Como a construccedilatildeo deve estar alinhada com as hipoacuteteses formuladas e a cada ciclo eacutenecessaacuterio sempre testar novas hipoacuteteses a gura 22 representa uma variaccedilatildeo do ciclo deConstruir-Medir-Aprender cuja proposta eacute enfatizar quais hipoacuteteses devem ser testadas

Figura 22 Uma variaccedilatildeo para o ciclo de Construir-Medir-Aprender

Retirada de httpssteveblankleswordpresscom201505hypotheses-experimentjpgacesso em 20 jul 2016

24 Desenvolvimento de Clientes

Steve Blank em seu livro Os 4 passos para a epifania explica que o modelo de Desen-volvimento de Clientes natildeo eacute um substituto para o modelo de Desenvolvimento de Produtoe que na verdade ambos devem ser executados em paralelo No mesmo livro ele dene o mo-delo de Desenvolvimento de Clientes de uma startup com a premissa Aprender e descobrirquem satildeo os clientes iniciais de uma empresa e em quais mercados eles estatildeo requer umprocesso separado e distinto do Desenvolvimento de Produtos A soma dessas atividades eacuteo Desenvolvimento de Clientes (Blank 2003)

Eacute um processo interativo que parte da premissa de que os fatos estatildeo fora do escritoacuterioDentro dele soacute existem opiniotildees e portanto o empreendedor deve buscar o quanto antesvalidar suas hipoacuteteses fundamentais no mercado8

8Manual da Startup Fonte httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t Acesso em 19 ago 2016

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

8 LEAN STARTUP 25

O processo eacute dividido em 4 passos (gura 23) sendo que os dois primeiros acontecemantes do ajuste do produto ao mercado com foco no aprendizado e validaccedilatildeo de hipoacutetesesenquanto os outros dois tecircm foco no crescimento e otimizaccedilotildees

Figura 23 Os 4 passos do ciclo de Customer Development

Retirada de httpwwwmanualdastartupcombrblogcustomer-development-o-processo-para-se-chegar-ao-productmarket-t acesso em 14 set

2016

A primeira fase do ciclo eacute compreendida pelos dois primeiros passos Descoberta doCliente e Validaccedilatildeo do Cliente Na Descoberta do Cliente o objetivo eacute provar que existeum problema a ser solucionado em um mercado grande o suciente e que o produto supreessa necessidade Para isso eacute proposto sempre estar em contato com o cliente realizandoentrevistas de modo a obter um conjunto miacutenimo de funcionalidades e testaacute-las em umMVP

Jaacute na etapa de Validaccedilatildeo do Cliente o foco eacute provar que existe uma maneira rentaacutevelde se adquirir e manter consumidores Nessa etapa eacute necessaacuterio descobrir se de fato existemclientes dispostos a pagar pelo produto e se o produto provoca uma mudanccedila na rotina dousuaacuterio

A segunda fase Geraccedilatildeo de Demanda e Estruturaccedilatildeo do Negoacutecio eacute a fase para cresci-mento do negoacutecio na qual o foco passa a ser a execuccedilatildeo Nessa fase o foco deixa de ser acharo encaixe de mercado para concentrar-se em escalar o crescimento da empresa

25 Conceitos Utilizados

Para o desenvolvimento do USP Eventos foram realizados 3 ciclos de Construir-Medir-Aprender Em cada ciclo foi construiacutedo um MVP para testar as hipoacuteteses levantadas com ointuito de medir o feedback dos usuaacuterios e planejar o ciclo seguinte

Em paralelo foram utilizados conceitos de Desenvolvimento de Clientes com o objetivode entender e descobrir quem era o puacuteblico-alvo O contato com os clientes deu-se pormeio de formulaacuterios de sugestotildees questionaacuterios e conversas face-a-face com os usuaacuterios daplataforma

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Capiacutetulo 3

Meacutetodos Aacutegeis

31 Origem

Na deacutecada de 1990 com a decadecircncia dos meacutetodos claacutessicos de desenvolvimento de soft-ware - tal como o modelo Cascata o qual propotildee um riacutegido padratildeo de etapas sequenciaiscom maior ecircnfase no planejamento considerado lento e burocraacutetico com pouco espaccedilo paraalteraccedilotildees ou readaptaccedilotildees - novos modelos surgiram com o objetivo de obter maior inte-ratividade entre o cliente e a produccedilatildeo aleacutem de exibilizar as etapas de planejamento e avalidaccedilatildeo do sistema

Dentre esses modelos os mais conhecidos e citados ateacute hoje satildeo o desenvolvimento raacutepidode aplicaccedilotildees de 1994 processo unicado e Sistemas Dinacircmicos de Meacutetodo de Desenvolvi-mento (DSDM) de 1995 Scrum de 1996 Crystal Clear e Programaccedilatildeo Extrema (XP) -ambos de 1997

Embora originados antes da publicaccedilatildeo do Manifesto Aacutegil em 2001 satildeo hoje coletiva-mente referidos como Meacutetodos Aacutegeis jaacute que inuenciaram diretamente na conceituaccedilatildeo domanifesto

Em fevereiro de 2001 dezessete desenvolvedores de software se reuniram no resort Snow-bird em Utah (EUA) para discutir meacutetodos leves de desenvolvimento Na ocasiatildeo publicaramo Manifesto para Desenvolvimento Aacutegil de Software documento que reuacutene os princiacutepios epraacuteticas deste conjunto de metodologias Mais tarde algumas pessoas formaram a AgileAlliance uma organizaccedilatildeo sem ns lucrativos que promove o Desenvolvimento Aacutegil1

32 Deniccedilatildeo

O Manifesto Aacutegil eacute baseado em doze princiacutepios2

1 A satisfaccedilatildeo do cliente eacute pela entrega antecipada e contiacutenua do software funcional

2 Boas mundanccedilas satildeo sempre bem-vindas mesmo que em desenvolvimento tardio

3 Novas funcionalidades devem ser entregues frequentemente (semanas em vez de meses)

4 Uma cooperaccedilatildeo estreita e diaacuteria entre cliente e desenvolvedor

5 Os projetos satildeo construiacutedos em torno de indiviacuteduos motivados entre os quais existerelaccedilatildeo de conanccedila

1Retirado de httpagilemanifestoorghistoryhtml Acesso em 12 set 20162Retirado de httpagilemanifestoorgprincipleshtml Acesso em 12 set 2016

9

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

10 MEacuteTODOS AacuteGEIS 33

6 A maneira mais eciente e efetiva de transmitir informaccedilotildees eacute por conversas face-a-face

7 Softwares funcionais satildeo a principal medida de progresso

8 Desenvolvimento sustentaacutevel ou seja produccedilatildeo em um ritmo constante

9 Atenccedilatildeo contiacutenua agrave excelecircncia teacutecnica e bom design

10 Simplicidade em maximizar a quantidade de trabalho natildeo feito

11 Melhores arquiteturas requisitos e projetos emergem de equipes auto-organizadas

12 Regularmente a equipe se reuacutene e reete sobre como tornar-se mais ecaz entatildeo seajusta para o que foi acordado

Comparado agrave engenharia de software tradicional o Desenvolvimento Aacutegil de softwaretem como alvo principalmente sistemas complexos com caracteriacutesticas dinacircmicas ou sejanatildeo-determiniacutestico e natildeo-linear sendo que as estimativas precisas os planos estaacuteveis e asprevisotildees satildeo difiacuteceis de se obter em estaacutegios iniciais como na proacutepria elaboraccedilatildeo do pro-jeto em si do produto Isso resulta na necessidade de desenvolvimento e de planejamentoevolutivo (Larman 2004)

Existem muitos modelos especiacutecos de Meacutetodos Aacutegeis A maioria busca promover otrabalho em equipe a colaboraccedilatildeo e a adaptabilidade no processo em todo o ciclo de vida dedesenvolvimento Utiliza-se uma maior quantidade de ciclos em curtos periacuteodos de tempo am de minimizar e parcelar o planejamento e estimativas Desse modo cada iteraccedilatildeo envolveuma equipe multifuncional de trabalho para cada funccedilatildeo necessaacuteria planejamento anaacuteliseprojeto desenvolvimento testes de unidade e testes de aceitaccedilatildeo No nal da iteraccedilatildeo eacutedemonstrado para as partes interessadas como o cliente o que foi desenvolvido no processoPor m isto minimiza o risco global de erros e permite que o produto se adapte agraves mudanccedilasrapidamente

Independente do meacutetodo aacutegil seguido cada equipe deve incluir um representante docliente no processo No caso do Scrum essa eacute a funccedilatildeo do proprietaacuterio do produto porexemplo Por compromisso este colaborador se coloca disponiacutevel para os desenvolvedoresrespondendo questotildees durante cada iteraccedilatildeo A inclusatildeo deste representante otimiza o re-torno de investimento e garante o alinhamento com as necessidades do cliente

Outra caracteriacutestica comum deste tipo de metodologia eacute o stand-up diaacuterio Em umabreve sessatildeo os membros da equipe comunicam uns aos outros o que eles zeram no diaanterior sobre as tarefas relacionadas ao ciclo vigente o que eles pretendem fazer e quaisquerobstaacuteculos ou impedimentos para continuar ou nalizar a tarefa do dia para a interaccedilatildeo emquestatildeo

Diferentes ferramentas e teacutecnicas especiacutecas tais como a integraccedilatildeo contiacutenua os testesde unidade automatizado a programaccedilatildeo em pares o desenvolvimento orientado a testesos padrotildees de projeto o Domain-Driven Design a refatoraccedilatildeo de coacutedigo entre outras satildeofrequentemente utilizadas para melhorar a qualidade e aumentar a agilidade de produccedilatildeo

33 Meacutetodos Aacutegeis especiacutecos

331 Scrum

Scrum eacute um dos arcabouccedilos mais populares hoje de Desenvolvimento Aacutegil de SoftwareUm princiacutepio chave do Scrum eacute o reconhecimento de que durante o desenvolvimento do

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

33 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 11

produto os clientes podem mudar de opiniatildeo sobre o que eles querem e precisam muitasvezes chamado de volatilidade de requisitos pois desaos imprevistos normalmente natildeopodem ser tratados de forma preventiva ou planejados tradicionalmente

O arcabouccedilo propotildee inicialmente trecircs papeacuteis principais para divisatildeo e organizaccedilatildeo daequipe de trabalho

bull Product Owner (Dono do Produto)

Representa as partes interessadas do produto ou seja eacute a voz do cliente eacute responsaacutevelpor garantir que a equipe agregue valor ao negoacutecio Passa a maior parte do seu tempoem comunicaccedilatildeo com as partes interessadas mas natildeo aponta necessariamente como aequipe deve chegar a uma soluccedilatildeo teacutecnica

Este papel eacute equivalente a representante do cliente papel em alguns outros fra-meworks aacutegeis como Programaccedilatildeo Extrema (XP)

bull Scrum Master (Mestre Scrum)

Responsaacutevel direto pela soluccedilatildeo de possiacuteveis impedimentos da equipe para entregar asmetas de produtos e resultados seja impedimentos estruturais ou pessoais da equipe

Scrum Master natildeo eacute um liacuteder de equipe ou gerente de projeto tradicional mas agecomo um mediador entre a equipe e quaisquer inuecircncias que a distraem

Ele eacute o responsaacutevel por garantir que o Scrum seja seguido ajudando a equipe a seguiros processos acordados e incentivando a melhorar

O papel tambeacutem tem sido referido como um facilitador da equipe ou servo-liacutederpara reforccedilar estas duas perspectivas

bull Development Team (Equipe de Desenvolvimento)

A Equipe de Desenvolvimento eacute responsaacutevel pela entrega de incrementos do produtono nal de cada Sprint (ciclo de interaccedilatildeo)

A equipe eacute composta de indiviacuteduos que fazem o trabalho real (analisar projetar desen-volver testar documentar etc) As equipes de desenvolvimento satildeo multifuncionaiscom todas as habilidades necessaacuterias para criar um produto

O ciclo de interaccedilatildeo chamado sprint (gura 31) eacute a unidade baacutesica do desenvolvimentoem Scrum Eacute restrito a uma duraccedilatildeo especiacuteca xada antecipadamente normalmente entreuma semana e um mecircs com duas semanas sendo o mais comum

Cada sprint comeccedila com um evento de planejamento (Sprint Planning) que visa denira lista de objetivos a serem tratados ou implementados nesse ciclo (Sprint Backlog) Porm termina com uma revisatildeo (Sprint Review) que analisa os progressos realizados paramostrar aos interessados aleacutem disso eacute debatido as liccedilotildees e melhorias a serem aplicadas paraas proacuteximas interaccedilotildees (Sprint Retrospective)

332 Test Driven Development (TDD)

TDD eacute um processo de desenvolvimento de software que se baseia na repeticcedilatildeo de um ciclode desenvolvimento muito curto requisitos satildeo transformados em casos de teste especiacutecoem seguida o software eacute aprimorado somente para passar no teste especiacuteco mas todos ostestes satildeo refeitos a cada interaccedilatildeo Este processo tambeacutem eacute chamado de ciclo Red-Green-Refactor (gura 32)

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

12 MEacuteTODOS AacuteGEIS 33

Figura 31 O ciclo interativo Sprint

Retirada de httpwwwmindmastercombrscrum acesso em 12 set 2016

Cada novo recurso a ser implementado comeccedila com o desenvolvimento de um teste quedene uma funccedilatildeo ou melhorias de uma funccedilatildeo o mais preciso e sucinto possiacutevel A novafuncionalidade agora eacute implementada com objetivo em passar neste novo teste Esta eacute princi-pal caracteriacutestica do TDD que o diferencia dos demais meacutetodos em que os testes satildeo criadosapoacutes a implementaccedilatildeo da nova funccedilatildeo

Ao passar no novo teste todo coacutedigo eacute entatildeo tambeacutem submetido aos testes anteriores sepassar em todos o programador possui uma maior garantia da integralidade do novo coacutedigoou seja atende aos requisitos de teste e natildeo degrada quaisquer outros recursos existentesSe natildeo passar em um ou mais dos testes anteriores o novo coacutedigo entatildeo deve ser ajustadoateacute que passe em todos os testes Essa etapa eacute chamada de refatoraccedilatildeo

Figura 32 O ciclo Red-Green-Refactor

Retirada de httptddcaelumcombr acesso em 12 set 2016

333 Continuous Integration (CI)

Integraccedilatildeo contiacutenua eacute um dos pilares da agilidade garantindo que todo o sistema funci-one a cada interaccedilatildeo de forma coesa mesmo que sua equipe seja grande e diversas partes

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

34 MEacuteTODOS AacuteGEIS ESPECIacuteFICOS 13

do coacutedigo estejam sendo alteradas ao mesmo tempo isso traz um feedback diaacuterio do desen-volvimento

Essa integraccedilatildeo eacute alinhada diretamente com o conceito de TDD em que cada ciclo eacuteaplicado um conjunto de testes e vericaccedilotildees de integraccedilatildeo entre as partes produzidas aleacutemdos testes teacutecnicos da aplicaccedilatildeo

A parte crucial desse processo dentro do conceito de CI eacute o uso de algum sistema decontrole de versatildeo estabelecendo como compartilhar informaccedilotildees de maneira sucinta e ob-jetiva mantendo a uacuteltima versatildeo do produto vaacutelida e ainda saber quem ou qual parte deequipe fez cada alteraccedilatildeo prevenindo desperdiacutecio de desenvolvimento seja por duplicidadeou refatoraccedilatildeo direta

Existe um conjunto de ferramentas para controle de versatildeo centralizado entre elas te-mos o CVS Subversion Git entre outros O controle de versatildeo gerencia natildeo apenas o coacutedigodo produto mas tambeacutem a documentaccedilatildeo scripts de teste arquivos de layout e congu-raccedilatildeo entre outros Aleacutem disso e mais importante eacute possiacutevel criar linhas alternativas dedesenvolvimento do produto chamado de branches

O sistema funciona basicamente da seguinte forma o desenvolvedor faz seu coacutedigo efetuaum build antes de interagir com a base principal do que jaacute foi feito e testado Os builds satildeoposteriormente integrados agrave base por meio de sincronizaccedilatildeo o que eacute feito sob testes e padrotildeesde produccedilatildeo Essa praacutetica permite uma divisatildeo coesa das tarefas a serem desenvolvidaseliminando a necessidade de que toda equipe saiba exatamente como cada parte do produtofoi ou seraacute feita trazendo uma visatildeo de linha de montagem cada desenvolvedor deve sabercomo fazer especicamente a sua parte poreacutem consistente agrave quem deve recorrer caso tenhaproblemas com outras partes do produto

334 Kanban

Kanban eacute um termo de origem japonesa signica literalmente cartatildeo ou sinalizaccedilatildeoO conceito foi relacionado com a utilizaccedilatildeo de cartotildees (gura 33) para indicar o andamentodos uxos de produccedilatildeo em empresas de fabricaccedilatildeo em seacuterie hoje popularmente utilizadoem Meacutetodos Aacutegeis Os cartotildees satildeo organizados sob uma determinada etapa do processo deimplementaccedilatildeo por exemplo para executar em andamento ou nalizado

A empresa japonesa de automoacuteveis Toyota foi a responsaacutevel pela introduccedilatildeo desse meacutetododevido a necessidade de manter um ecaz funcionamento do sistema de produccedilatildeo em seacuterie

Figura 33 Exemplo de um quadro de Kanban

Retirada de httpswwwsignicadoscombrkanban acesso em 12 set 2016

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

14 MEacuteTODOS AacuteGEIS 34

34 Um contraponto O modelo Cascata

O modelo Cascata algumas vezes chamado de ciclo de vida claacutessico sugere uma abor-dagem sequencial e sistemaacutetica para o desenvolvimento de software comeccedilando com o le-vantamento de necessidades por parte do cliente avanccedilando para as fases de planejamentomodelagem construccedilatildeo emprego e culminando no suporte contiacutenuo do software concluiacutedo(gura 34) (Pressman 2011)

Segundo Pressman (2011) o modelo em cascata foi o primeiro paradigma de desenvol-vimento criado pela Engenharia de Software que teve sua essecircncia retirada de outras aacutereasda Engenharia

Figura 34 O Modelo Cascata

Retirada de httpmodelocascatablogspotcombr acesso em 20 jul 2016

As fases do Modelo satildeo

bull Requerimentos realizar a anaacutelise de requisitos do projeto

bull Design de Projeto focando na estrutura de dados arquitetura do software detalhesprocedurais e caracterizaccedilatildeo das interfaces eacute formulado um documento de forma aapresentar os requerimentos de uma forma que possa ser interpretado pelos programa-dores

bull Implementaccedilatildeo etapa da codicaccedilatildeo do projeto propriamente dita

bull Vericaccedilatildeo etapa para teste do produto visando eliminar qualquer bug que possa terpassado despercebido e renar a loacutegica interna do software caso necessaacuterio

bull Manutenccedilatildeo etapa para instalaccedilatildeo do sistema no cliente conguraccedilatildeo de servidoresetc

Uma das grandes criacuteticas dessa abordagem eacute que dicilmente um desenvolvimento desoftware segue todas as etapas da forma como o modelo propotildee e nem sempre o clientesabe denir bem os requisitos antes de ver o software funcionando resultando em tempo edesenvolvimento desperdiccedilado em funcionalidades que natildeo resolvem o problema (Pressman2011)

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

35 CONCEITOS UTILIZADOS 15

Mudanccedilas tardias no escopo do projeto encarecem o custo total e poderiam ter sidoevitadas e contornadas de maneira mais satisfatoacuteria em um modelo com um processo dedesenvolvimento iterativo 3

O Desenvolvimento Aacutegil tem pouco em comum com o Modelo em Cascata Na visatildeo dealguns este modelo eacute desacreditado apesar de ser um modelo de uso comum O modelo emCascata eacute uma das metodologias com maior ecircnfase no planejamento seguindo seus passosa partir da captura dos requisitos anaacutelise projeto codicaccedilatildeo e testes em uma sequecircnciapreacute-planejada e restrita 4

35 Conceitos Utilizados

A organizaccedilatildeo do projeto foi feita utilizando uma abordagem com Kanban separando astarefas em 4 colunas BACKLOG TO DO DOING DONE

Foram construiacutedos testes de unidade para as funcionalidades e tambeacutem testes de aceitaccedilatildeocom o intuito de testar o sistema como um todo simulando o seu funcionamento real Asbibliotecas Rspec e Capybara desenvolvidas para o arcabouccedilo Rails foram utilizadas paraconstruccedilatildeo dos testes A biblioteca SimpleCov (gura 35) oferece uma interface graacuteca paravisualizar as partes do coacutedigo testadas e a porcentagem de cobertura total

Figura 35 9313 do Sistema com cobertura de testes

Em conjunto com os testes foi implementado um processo de integraccedilatildeo contiacutenua naqual a cada commit realizado o sistema passava por toda a bateria de testes e no caso desucesso (gura 36) era atualizado automaticamente

Figura 36 Travis CI com todos os testes aprovados

3 Fonte Waterfall Model httpsenwikipediaorgwikiWaterfall_model Acesso em 12 set 20164Fonte Wikipedia - Desenvolvimento Aacutegil de Software httpsptwikipediaorgwikiDesenvolvimento_

C3A1gil_de_softwareComparaC3A7C3A3o_com_o_modelo_em_cascata Acesso em 12 set 2016

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Capiacutetulo 4

Tecnologias

41 Ruby on Rails

411 Ruby

A criaccedilatildeo da linguagem Ruby data de 1995 no Japatildeo por Yukihiro Matz Matsumotosob forte inuecircncia de outras linguagens como Perl SmallTalk Eiel Ada e Lisp Inicial-mente o objetivo era equilibrar programaccedilatildeo funcional imperativa e orientaccedilatildeo a objetos(Documentation 2016)

bull Flexibilidade

A Linguagem Ruby cresceu devido agrave sua grande exibilidade Sendo possiacutevel alterarremover ou acrescentar partes da linguagem a vontade

Como no seguinte exemplo um usuaacuterio prefere utilizar a palavra plus ao inveacutes dooperador matemaacutetico + ele poderia entatildeo adicionar esse meacutetodo agrave classe nativa doRuby Numeric pois os operadores matemaacuteticos satildeo considerados accediluacutecares sintaacuteticosnesta linguagemExemplo

1 class Numeric2 def plus (x )3 s e l f +(x )4 end

5 end

67 y = 5 p lus 68 y agora i g u a l a 11

bull Closures

Nesta linguagem closures satildeo chamadas de blocos e satildeo funccedilotildees que podem ser trata-das como uma variaacutevel Isso quer dizer que podem ser passadas como argumentos demeacutetodos serem atribuiacutedas a outras variaacuteveis etc

As closures armazenam os valores das variaacuteveis que estavam no escopo quando a funccedilatildeofoi denida e satildeo capazes de acessar tais variaacuteveis mesmo que sejam executadas emum escopo diferente1Exemplo

1Fonte Site Point httpswwwsitepointcomclosures-ruby Acesso em 29 ago 2016

17

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

18 TECNOLOGIAS 41

1 search_engines =2 w[ Google Yahoo MSN] map do | eng ine |3 http www + engine downcase + com4 end

bull Moacutedulos

Moacutedulos satildeo formas de agrupar meacutetodos classes e constantes prevenindo conitos denomes e permitindo a faacutecil implementaccedilatildeo de Mixins

Diferente de outras linguagens orientadas a objetos Ruby permite apenas heranccedilasimples poreacutem isso eacute contornado atraveacutes dos Mixins que permitem a uma classe recebermais de um moacutedulo diferente herdando assim todos seus meacutetodos e deniccedilotildeesExemplo

1 class MyArray2 inc lude Enumerable3 end

412 Rails

Ruby on Rails eacute um arcabouccedilo escrito em linguagem Ruby implementado seguindo opadratildeo MVC2 totalmente server-side sendo considerado portanto um arcabouccedilo back-end

Este arcabouccedilo oferece tambeacutem uma estrutura para banco de dados web service e webpages aleacutem de encorajar padrotildees de engenharia de software jaacute consagrados tais como3

bull Convention over Conguration (CoC)

Convenccedilotildees de conguraccedilatildeo visando padronizar o coacutedigo Ao adicionar convenccedilotildees eacuteretirada do desenvolvedor a decisatildeo de como usar o arcabouccedilo poreacutem isso natildeo diminuisua exibilidade

Um exemplo praacutetico ao se criar um objeto chamado User entatildeo sua tabela porconvenccedilatildeo se chamaraacute users e o correspondente controller seraacute UsersController (noplural) pois esse eacute padratildeo denido pelo arcabouccedilo

Vale ressaltar que eacute possiacutevel alterar essas convenccedilotildees para adaptar-se agraves necessidadesdo desenvolvedor

bull Dont Repeat yourself (DRY)

Eacute denido como Todo pedaccedilo de informaccedilatildeo deve ter uma uacutenica natildeo ambiacutegua repre-sentaccedilatildeo autorizada com o Sistema 4

Isso signica que uma modicaccedilatildeo em uma parte do sistema natildeo deve modicar outraparte natildeo relacionada assim como elementos que satildeo logicamente relacionados quandomodicados ocorrem de forma previsiacutevel e uniforme

2Modelo-Visatildeo-Controlador Na qual o Modelo eacute a camada que conteacutem os dados e loacutegica da aplicaccedilatildeo aVisatildeo eacute a camada de entrada e saiacuteda de dados e o Controlador faz a conexatildeo entre ambas camadas fontehttpsptwikipediaorgwikiMVC Acesso em 29 ago 2016

3Fonte Ruby on Rails httpsenwikipediaorgwikiRuby_on_Rails Acesso em 29 ago 20164Fonte Wikipedia httpsenwikipediaorgwikiDon27t_repeat_yourself Acesso em 29 ago 2016

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

41 RUBY ON RAILS 19

bull Active Record Pattern

O padratildeo Active Record sugere uma interface especiacuteca para acessar objetos em umbanco de dados relacional contendo funccedilotildees tais como INSERT UPDATE DELETEetc Uma tabela ou view seraacute associada a uma classe e entatildeo uma instacircncia de objetoestaraacute associada a uma uacutenica entrada na respectiva tabela

Em Ruby on Rails a biblioteca ActiveRecord implementa o padratildeo ORM aleacutem deacrescentar heranccedila e associaccedilotildees resolvendo dois problemas substanciais do padratildeoActiveRecord eacute o model padratildeo do componente MVC poreacutem eacute possiacutevel trocaacute-lo poroutra implementaccedilatildeo do arcabouccedilo Rails caso o desenvolvedor prera

Em um sentido mais amplo Rails eacute mais que uma biblioteca de software ou API eacuteum projeto central de uma vasta comunidade que produz plugins para facilitar e construirprojetos complexos

As bibliotecas criadas pela comunidade para serem usadas em conjunto com o Rails satildeodistribuiacutedas em coacutedigo aberto e chamadas de Ruby Gems ou apenas Gems5

413 Porque escolher Ruby on Rails

O uso do Ruby on Rails entre startups tem crescido nos uacuteltimos anos devido a algunsfatores intrinsecamente ligados agrave proacutepria estrutura do arcabouccedilo Rails e tambeacutem agrave necessi-dade que startups e o proacuteprio modelo de Lean Startup exigem para iteraccedilotildees e alteraccedilotildees decoacutedigos raacutepidas (Udovychenko 2016)

Um dos principais pontos do Ruby on Rails o CoC permite que o desenvolvedor possaa partir de um conjunto preacute-denido de conguraccedilotildees padrotildees agilizar o desenvolvimentodo coacutedigo ao tirar de sua responsabilidade fatores de conguraccedilatildeo em detrimento de umpadratildeo jaacute estabelecido (Morrice 2015)

Dessa forma o desenvolvedor possui mais tempo para concentrar-se em decisotildees sobreo produto Essa agilidade em codicar rapidamente resulta em interaccedilotildees mais raacutepidascontribuindo para maior agilidade dentro do ciclo de Construir-Medir-Aprender

Outro fator a favor do arcabouccedilo Rails eacute o grande enfoque em testes automatizados(Morrice 2015)

Para o desenvolvimento da plataforma USP Eventos foram utilizadas as gems Rspec eCapybara que permitem natildeo soacute a realizaccedilatildeo de testes de unidade como tambeacutem testes deaceitaccedilatildeo de modo muito raacutepido e direto garantindo assim a conabilidade do projetoSoma-se a isso a quantidade enorme de ferramentas que auxiliam na integraccedilatildeo contiacutenua docoacutedigo como por exemplo o Travis CI utilizado durante o desenvolvimento da plataforma

O Travis CI era responsaacutevel para que a cada commit realizado fosse executada todaa bateria de testes automatizados enviando um e-mail contendo um relatoacuterio sobre o seuresultado inclusive em caso de falha garantindo dessa forma que todos tivessem sempreconhecimento das alteraccedilotildees sobre o coacutedigo aleacutem de evitar problemas de conitos de versotildeesou mesmo que uma atualizaccedilatildeo de projeto fosse colocada no ambiente de produccedilatildeo contendoalguma falha

O fator comunidade eacute outra vantagem do RoR Destacando-se pelo seu tamanho inte-resse e acessibilidade em tirar duacutevidas sempre contribuindo para promover o arcabouccedilo acomunidade que orbita ao redor do Rails foi capaz de criar ferramentas prontas para usocom uma oacutetima documentaccedilatildeo tutoriais cursos e guias garantindo assim que qualquer de-senvolvedor interessado sempre tenha em matildeos materiais e ferramentas de qualidade parainiciar o desenvolvimento do seu projeto (Udovychenko 2016)

5Fonte Wikipedia httpsenwikipediaorgwikiRubyGems Acesso em 29 ago 2016

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

20 TECNOLOGIAS 44

Acrescenta-se tambeacutem a favor do arcabouccedilo Rails sua escalabilidade Rails eacute utilizadopor empresas de grande porte tais como Groupon Twitter Basecamp mostrando-se umarcabouccedilo robusto capaz de lidar com grandes sistemas sem ter queda de desempenho(Udovychenko 2016)

Rails eacute tambeacutem um arcabouccedilo seguro garantindo proteccedilatildeo contra SQL-Injections e XSS(Cross Site Scripting)

Aleacutem disso os programadores que contribuem para o arcabouccedilo devem seguir o SecureLife Cycle Development (gura 41) proposto pela Microsoft um modelo de desenvolvimentode software cujo principal objetivo eacute ajudar a construir softwares mais seguros e conaacuteveise reduzir custos 6

Figura 41 Fases do Secure Life Cycle Development

42 Heroku

Heroku eacute uma PaaS implementada utilizando cloud computing criada em 2007 e utilizadacomo um modelo de Deployment para Aplicaccedilotildees Web7

A aplicaccedilatildeo eacute enviada para o Heroku por meio de uma conexatildeo direta via GitHubDropbox ou alguma outra API que permite ao Heroku executar os aplicativos em containersvirtuais

Enviado o coacutedigo-fonte este entatildeo eacute convertido em uma aplicaccedilatildeo interpretando as de-pendecircncias de outras bibliotecas seguindo o padratildeo de cada linguagem No caso do USPEventos que foi feito utilizando Ruby as dependecircncias cam armazenadas no proacuteprio Gem-le da aplicaccedilatildeo

Feito o upload da aplicaccedilatildeo um container com uma virtualizaccedilatildeo de Unix eacute disponibili-zado chamado de Dyno da aplicaccedilatildeo Tal container eacute preacute-carregado com algumas congu-raccedilotildees da aplicaccedilatildeo tais como um nome gerado automaticamente variaacuteveis de ambiente eadd-ons se existirem

O Heroku entatildeo inicializa o Dyno com a aplicaccedilatildeo carrega-a e entatildeo realiza o deploy damesma Dessa forma atraveacutes do DNS Server oferecido pelo proacuteprio Heroku a aplicaccedilatildeo caacessiacutevel por meio de um domiacutenio na forma ltnome da aplicaccedilatildeogtherokuappcom sendopossiacutevel redirecionar seu domiacutenio particular para reetir o DNS disponibilizado

43 Travis CI

Travis CI eacute um serviccedilo de integraccedilatildeo contiacutenua usado para testar projetos hospedados noGithub Toda vez que um commit eacute feito para o repositoacuterio selecionado no Github o Travisexecuta as diretrizes especicadas no arquivo travisyml que conteacutem os comandos necessaacuteriospara rodar os testes automatizados da aplicaccedilatildeo como eacute o caso do USP Eventos (gura 42)

6Fonte Wikipedia httpsenwikipediaorgwikiMicrosoft_Security_Development_Lifecycle Acessoem 22 out 2016

7Fonte Heroku httpsenwikipediaorgwikiHeroku Acesso em 29 ago 2016

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

45 TRELLO 21

Figura 42 O repositoacuterio USP Eventos no Travis CI

44 Trello

Trello8 eacute um gerenciador de projetos online desenvolvido pela Fog Creek Software lanccediladoem 2011 Possui uma interface amigaacutevel na qual eacute possiacutevel criar tarefas e colunas conforme aspreferecircncias do usuaacuterio sendo bastante utilizado em conjunto com uma abordagem kanbanpara gerenciamento

A ferramenta permite que em cada tarefa (gura 43) sejam adicionadas sua descriccedilatildeoarquivos relevantes prazo de teacutermino uma etiqueta personalizaacutevel para identicaccedilatildeo e tam-beacutem uma opccedilatildeo para os membros conversarem sobre o andamento da mesma

Figura 43 Uma tarefa denida no Trello

45 Github

Github eacute um serviccedilo que disponibiliza repositoacuterios git baseado na web lanccedilado em 2008 Oserviccedilo de controle de versatildeo eacute implementado pelo git enquanto o Github implementa outrasfuncionalidades proacuteprias como gerenciamento de tarefas wikis proacuteprias e bug tracking

Eacute possiacutevel integrar o seu repositoacuterio no Github com outros serviccedilos No caso do USPEventos o repositoacuterio no Github foi integrado com o Travis CI e tambeacutem com o proacuteprio

8 Disponiacutevel em wwwtrellocom

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

22 TECNOLOGIAS 48

Heroku (gura 44)Dessa forma caso um commit para a branch Produccedilatildeo fosse aprovado pelo Travis CI

entatildeo o Heroku automaticamente o colocava em produccedilatildeo

Figura 44 Tela de Administraccedilatildeo do Heroku para integraccedilatildeo com o Github e deploy automaacutetico

46 Google Analytics e Google Tag Manager

O Google Analytics eacute uma plataforma de anaacutelise de dados oferecida pelo Google quepermite por meio dos relatoacuterios gerados pela plataforma obter uma seacuterie de informaccedilotildeesquanto ao tipo de usuaacuterio que visualiza a paacutegina o uxo do site e a origem do acesso

Com o uso de tags eacute possiacutevel criar eventos que satildeo personalizados e disparados de acordocom a navegaccedilatildeo do usuaacuterio dentro do site Tais tags podem ser implementadas diretamentecom um pequeno coacutedigo em javascript para integraccedilatildeo com o Google Analytics ou utilizandoo Google Tag Manager

O Google Tag Manager eacute uma plataforma intermediaacuteria que provecirc acesso e conguraccedilatildeode tags personalizadas para obtenccedilatildeo de dados pelo Google Analytics sem que seja necessaacuteriomodicar diretamente o coacutedigo-fonte do sistema A opccedilatildeo de utilizar o Google Tag Managerno projeto deu-se principalmente pela facilidade de criar-se novas tags e alteraccedilotildees aleacutem degarantir uma maior organizaccedilatildeo das informaccedilotildees

Dentro do projeto foi utilizado as informaccedilotildees obtidas pelo Google Analytics para vali-daccedilatildeo de aprendizado entre as iteraccedilotildees

47 Painel de opiniotildees Populares - POP

Com o intuito de denir o interesse do puacuteblico alvo por meio de uma enquete colaborativafoi utilizado o POP como sistema de votaccedilatildeo devido agrave possibilidade dos usuaacuterios poderemadicionar itens agrave enquete principal

Desenvolvido por estudantes do proacuteprio IME dentro da disciplina de Laboratoacuterio deProgramaccedilatildeo Extrema agrave pedido da INDX o POP eacute uma plataforma de pesquisa de opiniatildeopuacuteblica que possui o objetivo de realizar enquetes junto agrave comunidades para auxiliar natomada de decisotildees e encaminhamento de opiniotildees para as autoridades responsaacuteveis

Foi permitida a utilizaccedilatildeo da plataforma implementada em uma instacircncia separada como nome de POP-TCC realizando apenas uma pequena modicaccedilatildeo no sistema POP original

No POP-TCC os usuaacuterios soacute poderiam votar de maneira positiva nas opccedilotildees ao contraacuteriodo sistema original que permitia votos negativos e ateacute ocultamento dos itens que obtivessemum grande nuacutemero de negativaccedilotildees pelos usuaacuterios

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

49 HEATMAP 23

48 HeatMap

O serviccedilo fornecido pela plataforma Heatmapme consiste em prover uma API que eacutecapaz de capturar os cliques em uma determinada paacutegina e mostraacute-los na forma de umamapa de calor

Um mapa de calor eacute uma representaccedilatildeo graacuteca dos cliques em uma paacutegina na qualconforme uma determinada regiatildeo for recebendo mais cliques sua cor eacute alterada proporcio-nalmente (gura 45)

Figura 45 Um exemplo de uma paacutegina utilizando o HeatMap

Retirada de httpsheatmapme acesso em 02 out 2016

As cores inicialmente comeccedilam em um tom verde quando clicadas poucas vezes sendogradativamente alteradas para cores mais quentes tais como laranja ou vermelho conformecliques na mesma regiatildeo satildeo feitos

49 Typeform

A empresa Typeform oferece um serviccedilo de formulaacuterios online para execuccedilatildeo de pesquisassimples ou complexas

A ferramenta eacute adequada para entrevistas de satisfaccedilatildeo e opiniatildeo do cliente oferecendouma interface graacuteca bastante amigaacutevel aleacutem de templates conguraacuteveis para o tipo depesquisa que o usuaacuterio deseja realizar

Apoacutes a execuccedilatildeo da pesquisa eacute possiacutevel exportar os resultados em planilhas ou integrarcom o seu banco de dados caso desejar

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Capiacutetulo 5

Usp Eventos

51 Deniccedilatildeo do Projeto

511 Motivaccedilatildeo

A ideia de desenvolver um sistema utilizando Meacutetodos Aacutegeis e conceitos de Lean Startupsurgiu em dezembro de 2015 O objetivo era desenvolver um sistema web ou aplicativovoltado para a comunidade USP com a intenccedilatildeo de facilitar de alguma forma o dia-a-dia dosusuaacuterios Inicialmente existiam algumas propostas de projeto que foram entatildeo formalizadasem uma enquete realizada junto agrave comunidade USP

512 Enquete e deniccedilatildeo do projeto

No iniacutecio as seguintes hipoacuteteses de interesse de projeto foram disponibilizadas para vo-taccedilatildeo

bull USP avisa eventos e incidentes Um sistema para reportar desde eventos acontecendono campus (palestras festas etc) ateacute outros incidentes (buracos perigos etc)

bull USP doaccedilotildees e trocas Um sistema voltado para os membros da comunidade que de-sejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outros e aqueles dispostosa receber Organizando las de interesse disponibilidade e urgecircncia

Com o intuito de entender melhor nosso puacuteblico alvo aleacutem de estarmos abertos a outrassugestotildees precisaacutevamos de um sistema que suportasse natildeo soacute uma votaccedilatildeo fechada comotambeacutem permitisse que os proacuteprios usuaacuterios fossem capazes de adicionar outras propostasde forma dinacircmica agravequelas jaacute existentes

O sistema POP (Painel de Opiniatildeo Puacuteblica) foi escolhido para efetuar a enquete poispermitia uma criaccedilatildeo dinacircmica de opccedilotildees pelos usuaacuterios Foi entatildeo criada uma instacircnciaindependente do sistema adaptada chamada POP-TCC (gura 51) utilizando o Heroku quepoderia ser acessada pelo endereccedilo pop-tccherokuappcom

Em 11012016 foi enviado o primeiro e-mail com a enquete do POP-TCC aberta paraa lista de e-mails dos alunos do IME com as duas opccedilotildees iniciais de projeto supracitadas Adivulgaccedilatildeo da enquete concentrou-se principalmente via Facebook nas paacuteginas listadas natabela 51

Ao longo de duas semanas outras opccedilotildees de projeto surgiram O resultado nal (gura52) da enquete e a descriccedilatildeo das sugestotildees seguem abaixo

25

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

26 USP EVENTOS 51

Tabela 51 Comunidades do Facebook na qual foram feitas divulgaccedilotildees

Comunidade Nuacutemero de MembrosUSP - Universidade de Satildeo Paulo 9000FAU USP 4000IME USP 3000Universidade de Satildeo Paulo 5000Baladas USP 15000

Figura 51 Sistema POP-TCC com a enquete para votaccedilatildeo

bull 1o Lugar (39 votos) USP avisa eventos e incidentes Um sistema para reportar desdeeventos acontecendo no campus (palestras festas etc) ateacute outros incidentes (buracosperigos etc)

bull 2o Lugar (21 votos) USP doaccedilotildees e trocas Um sistema voltado para os membros dacomunidade que desejam fazer doaccedilotildees (sejam moacuteveis roupas usadas etc) para outrose aqueles dispostos a receber organizando las de interesse disponibilidade e urgecircncia

bull 3o Lugar (20 votos) USP caronas Os motorizados colocam horaacuterio bairro quantidadede lugares disponiacuteveis ponte de embarque e desembarque Os interessados enviam umalerta para os motorizados conrmarem ateacute preencherem as vagas

bull 4o Lugar (18 votos) Mapa de crimes na USP Um app onde roubos furtos assaltosagressotildees asseacutedios discriminaccedilotildees e outros crimes podem ser relatados georreferenci-ados no campus

bull 5o Lugar (14 votos) Volta pedalusp Desenvolvimento da ideia que jaacute teve adesatildeo masmorreu por falta de manutenccedilatildeo Implementaccedilatildeo de novos pontos de troca de bicicletasmais proacuteximos das faculdades e outros pontos estrateacutegicos

bull 6o Lugar (13 votos) USP extensatildeo Uma plataforma de apoio muacutetuo para organizaccedilatildeocontato criaccedilatildeo e divulgaccedilatildeo de projetos de extensatildeo dentro da universidade

bull 7o Lugar (12 votos) USP gigabyte Um ponto de encontro virtual pra reunir o pessoale tomar uma rodada de suco com a galera

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

52 DEFININDO AS CARACTERIacuteSTICAS DO SISTEMA 27

bull 8oLugar (8 votos) Monitoria voluntaacuteria Pessoas divulgam horaacuterio e local no qualpessoas podem procuraacute-las para tirar duacutevidas sobre certas disciplinas comuns a vaacuterioscursos

Figura 52 Graacuteco gerado pelo resultado da Enquete

O projeto escolhido entatildeo foi o USP Avisa Eventos e Acidentes que seria renomeadoapenas para USP Eventos

52 Denindo as caracteriacutesticas do Sistema

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de sistemasque tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Em paralelo a essa pesquisa tambeacutem foi denida a plataforma sobre a qual o projetoseria desenvolvido

521 Pesquisa de Sistemas Semelhantes

Denido o tema do projeto teve iniacutecio uma pesquisa para levantar a existecircncia de siste-mas que tivessem uma proposta semelhante de divulgaccedilatildeo de eventos e atividades

Ao realizar essa pesquisa expandimos o escopo para os sistemas que natildeo necessariamentefossem voltados para ns acadecircmicos O objetivo principal era obter uma base de conheci-mento de quais funcionalidades um sistema de divulgaccedilatildeo possui ou encontrar uma soluccedilatildeoem coacutedigo aberto que pudesse servir como base

Foi enviado um e-mail em marccedilo para a lista de Representantes Discentes do proacuteprioIME questionando sobre funcionalidades e sugestotildees

Das compilaccedilotildees sobre a pesquisa e resposta obtidas por e-mail destacam-se 3 sites comproposta e conteuacutedos semelhantes

bull Eventos USP (httpwwweventosuspbr) Canal de divulgaccedilatildeo social da USP paraeventos ocorrendo em suas dependecircncias para todos os campusPontos Fortes Sendo o canal de comunicaccedilatildeo ocial da universidade mostra-se comouma oacutetima fonte de conteuacutedo sobre eventos sociaisPontos Fracos Eacute uma via de matildeo uacutenica na qual o usuaacuterio apenas se informa dosdetalhes do evento mas natildeo tem oportunidade de criar ou divulgar o seu proacuteprio

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

28 USP EVENTOS 52

bull Catraca-Livre (httpscatracalivrecombrbrasil) Principal Portal de atividades cul-turais e divulgaccedilatildeo de eventosPontos Fortes Apesar de natildeo ter um conteuacutedo personalizaacutevel a paacutegina de Agenda pos-sui uma grande variedade de opccedilotildees de ltroPontos Fracos Como divulga eventos por toda a cidade sua navegaccedilatildeo eacute bastanteconfusa levando o usuaacuterio a facilmente perder-se devido agrave grande quantidade de infor-maccedilotildees e poucas opccedilotildees de personalizaccedilatildeo Soma-se a isso o fato de que o site eacute umaforma de comunicaccedilatildeo unilateral natildeo permitindo que usuaacuterios divulguem e organizemseus proacuteprios eventos

bull SP Cultura (httpspculturaprefeituraspgovbr) Portal ocial da prefeitura de SatildeoPaulo para divulgaccedilatildeo de atividades por toda a cidadePontos Fortes Possui bastante opccedilotildees de ltros aleacutem de permitir que um usuaacuteriointeressado crie um evento e submeta-o para aprovaccedilatildeo bastante intuitivo e de faacutecilacesso Eacute baseado em uma soluccedilatildeo de coacutedigo abertoPontos Fracos Os eventos estatildeo distribuiacutedos por um mapa georreferenciado dandomais ecircnfase agrave localizaccedilatildeo do evento do que sobre sua descriccedilatildeo obrigando o usuaacuterioa selecionar primeiro um evento em uma localizaccedilatildeo para entatildeo obter informaccedilotildees domesmo

522 Plataforma Web x Moacutevel

Para decidir em qual plataforma desenvolver nosso sistema foi levado em consideraccedilatildeofatores teacutecnicos e do puacuteblico-alvo

De acordo com o graacuteco 53 observa-se que as plataformas Android e iOS hoje em diacorrespondem respectivamente agrave 862 e 129 do mercado mundial de sistemas operacionaismoacuteveis totalizando juntas 991 do mercado o que signicaria que ao desenvolver doisaplicativos nativos para ambas as plataformas corresponde a ter a acesso a quase totalidadedo mercado moacutevel 1

Foram feitas as seguintes consideraccedilotildees quanto ao desenvolvimento de uma aplicaccedilatildeonativa 2

bull O desenvolvimento para Android eacute feito utilizando a linguagem Java a partir de APIsfornecidas pelo proacuteprio Google enquanto um aplicativo para iOS utiliza Objective-cou Swift por meio das APIs fornecidas pela Apple Natildeo haacute correspondecircncia de coacutedigoentre ambas plataformas tornando necessaacuterio o desenvolvimento de duas aplicaccedilotildeesdistintas caso queira-se atingir a totalidade do mercado

bull Os aplicativos nativos seguem um padratildeo bastante riacutegido de UIUX que divergembastante entre si Os padrotildees de desenvolvimento para interfaces de um aplicativoAndroid divergem totalmente de um aplicativo IOS quanto a sua usabilidade e layoutfazendo com que seja necessaacuterio pensar em duas interfaces distintas

bull A maior vantagem de um aplicativo nativo eacute ter acesso aos recursos de hardware dosmartphone tais como cacircmera ou acelerocircmetro Como nossa aplicaccedilatildeo natildeo faria usode nenhum recurso especiacuteco tais vantagens natildeo seriam aproveitadas

1Fonte Statista httpwwwstatistacomstatistics254653mobile-internet-user-penetration-in-brazilAcesso em 22 out 2016

2Fonte Caelum httpblogcaelumcombraplicacoes-mobile-web-ou-nativa Acesso em 22 out 2016

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

53 KANBAN 29

Figura 53 Distribuiccedilatildeo de mercado para Sistemas Moacuteveis

bull Os aplicativos nativos estatildeo sujeitos agraves normas e aprovaccedilotildees de suas lojas virtuaisPlay Store para o Android e Apple Store para o iOS fazendo com que o tempo depublicaccedilatildeo de uma atualizaccedilatildeo aumente devido agrave necessidade de aprovaccedilatildeo da loja emquestatildeo

bull Natildeo seria possiacutevel utilizar a plataforma em Desktops restringindo o puacuteblico-alvo

A escolha de uma aplicaccedilatildeo web deu-se principalmente pela facilidade de atualizaccedilatildeopor natildeo necessitar da aprovaccedilatildeo de uma loja online ganhando em agilidade para realizarnovos experimentos

Apesar da escolha de um sistema web ao analisar o crescimento do acesso moacutevel noBrasil (gura 54) que vem aumentando a passos largos no paiacutes houve a preocupaccedilatildeo emdesenvolver uma aplicaccedilatildeo web hiacutebrida com uma interface totalmente responsiva 3 desde oprinciacutepio

Dessa forma apesar do acesso em um smartphone natildeo ser tatildeo intuitivo quanto em umaaplicaccedilatildeo nativa ainda sim teria uma interface funcional garantindo que a navegaccedilatildeo emuma plataforma moacutevel fosse feita sem diculdades

53 Kanban

Kanban eacute uma palavra japonesa que signica cartatildeo visual Possui trecircs regras principais(KNIBERG H 2009) visualizar o uxo de trabalho limitar o trabalho em cada estaacutegio douxo e medir o tempo de avanccedilo (tempo meacutedio para se completar cada item) (Filho 2014)

3 Uma interface responsiva de um site ou paacutegina eacute uma versatildeo do layout adaptada para uso em telasmenores comumente refere-se a visualizaccedilatildeo em smartphones

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

30 USP EVENTOS 53

Figura 54 Crescimento do Uso de internet moacutevel no Brasil

No contexto de Meacutetodos Aacutegeis e Lean Startup foi utilizado uma abordagem com Kanbanpara denir as hipoacuteteses de produtos o escopo de desenvolvimento e as tarefas para seremexecutadas durante as etapas de desenvolvimento

Tradicionalmente o Kanban para desenvolvimento de Software possui 3 estaacutegios (Filho2014)

bull TO DO referente a requisitos que ainda estatildeo aguardando para serem desenvolvidos

bull DOING referente a requisitos que estatildeo sendo desenvolvidos

bull DONE referente a requisitos que jaacute nalizaram e foram devidamente revisados e tes-tados

Cada item adicionado na la de TO DO eacute chamada de tarefa Uma hipoacutetese a ser testadapode ser transformada em uma seacuterie de tarefas pequenas a serem completadas durante operiacuteodo de desenvolvimento

Caso seja necessaacuterio eacute possiacutevel quebrar uma tarefa grande em uma seacuterie de tarefas me-nores Tomando como exemplo a tarefa de implementar um ltro de eventos para a paacuteginaprincipal ela foi quebrada em 3 tarefas menores para serem completadas implementar ca-tegorias de eventos permitir adicionar categorias de eventos durante a criaccedilatildeo de um novoevento e implementar ltro de eventos na paacutegina principal de eventos

O tempo que uma tarefa demora desde sua entrada no quadro ateacute a saiacuteda eacute denominadoLead Time Em um ambiente de startup o intuito eacute sempre obter o menor Lead Time possiacutevelpara tal eacute importante estar ciente da taxa de entrega que sua equipe de desenvolvimento eacutecapaz de cumprir e sempre denir as tarefas de modo simples

Para utilizaccedilatildeo no projeto USP Eventos foi incluiacuteda uma coluna a mais denominada

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

54 PRIMEIRA ITERACcedilAtildeO 31

BACKLOG comumente usada na metodologia Scrum 4 na qual foram colocadas ideias quepoderiam ou natildeo ser transformadas em tarefas de desenvolvimento ou hipoacuteteses para seremexecutadas em uma iteraccedilatildeo do ciclo de Construir-Medir-Aprender Em cada iteraccedilatildeo dociclo foi especicado quais hipoacuteteses seriam testadas e a partir delas criado tarefas paraserem implementadas

Caso um bug fosse detectado uma tarefa era criada na la de TO DO para resolvecirc-laA ferramenta Trello (gura 55) foi utilizada para simular um quadro Kanban digital

Com ela foi possiacutevel guiar todo o desenvolvimento do sistema

Figura 55 Sistema Trello contendo as 4 colunas utilizadas no USP Eventos

Com o intuito de tornar melhor a visualizaccedilatildeo no Trello foram criados alguns roacutetulos decores distintas para cada tarefa

bull BUG (vermelho) Defeito natildeo previsto durante o desenvolvimento

bull FEATURE (verde) Nova funcionalidade para ser implementada

bull REFACTOR (lilaacutes) Melhoria de coacutedigo sem reetir uma mudanccedila externa

bull MELHORIAS (laranja) Investigar ou implementar o uso de ferramentas externas aosistema

bull QUICK WIN (amarelo) Melhoria feita rapidamente e natildeo prevista durante a deniccedilatildeode tarefas

54 Primeira Iteraccedilatildeo

541 Construccedilatildeo

O primeiro MVP do USP Eventos tinha como objetivo testar as seguintes hipoacuteteses

bull Medir o interesse do puacuteblico em participar de um evento

bull Criar uma interface intuitiva e raacutepida para mostrar informaccedilotildees de eventos para ousuaacuterio

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

32 USP EVENTOS 54

Figura 56 Tela inicial na primeira iteraccedilatildeo

A paacutegina inicial (gura 56) do site possuiacutea acesso para a paacutegina de cadastro e login aleacutemde um formulaacuterio para envio de sugestotildees

O cadastro de usuaacuterio (gura 57) pedia inicialmente apenas nome e-mail e senha poreacutemainda na primeira iteraccedilatildeo foi implementada a opccedilatildeo de login com Facebook

Figura 57 Tela de Cadastro na primeira iteraccedilatildeo

A paacutegina de eventos (gura 58) soacute poderia ser acessada por um usuaacuterio logado tornandoessa paacutegina e qualquer paacutegina de evento especiacuteca inacessiacutevel para um visitante sem login

Aleacutem disso a paacutegina de eventos apenas mostrava-os sem oferecer qualquer opccedilatildeo inicialde ltro

Todas as paacuteginas foram pensadas tambeacutem para o acesso moacutevel possuindo versotildees res-ponsivas (gura 59)

Visando evitar que os usuaacuterios se deparassem com uma paacutegina de eventos vazia foi feitauma Rake Task 5 para consumir o xml gerado pelo feed RSS do site wwweventosuspbrDessa forma seria possiacutevel adicionar de forma mais aacutegil alguns eventos dentro da plataforma

Cada thumbnail de eventos presente na paacutegina principal de listagem de eventos incluiacutea onome do evento localizaccedilatildeo data de iniacutecio e m aleacutem de um botatildeo de Participar para osusuaacuterios que tivessem realizado login e tambeacutem bototildees para compartilhar nas redes sociais

4Fonte Desenvolvimento Aacutegil fontehttpwwwdesenvolvimentoagilcombrscrumsprint_backlogAcesso em 22 out 2016

5Rake eacute um programa implementado em Ruby que permite ao usuaacuterio implementar tasks que satildeo execu-tadas ao serem chamadas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

54 PRIMEIRA ITERACcedilAtildeO 33

Figura 58 Paacutegina de Eventos

Figura 59 Paacutegina de Eventos versatildeo responsiva

Houve tambeacutem a preocupaccedilatildeo de espalhar formulaacuterios de Sugestotildees do site com o intuitode facilitar a coleta de informaccedilotildees do usuaacuterio

542 Divulgaccedilatildeo

A primeira versatildeo do sistema cou disponiacutevel a partir do dia 5 de maio de 2016 e suadivulgaccedilatildeo foi feita pelo Facebook por grupos e comunidades associadas a institutos daUSP tais como FFLCH FAU IME e ECA assim como foram enviadas mensagens para asrespectivas empresas Juacutenior e Atleacuteticas

Tambeacutem foi divulgado a primeira versatildeo na lista de alunos e representantes discentes doproacuteprio Instituto de Matemaacutetica e Estatiacutestica

543 Meacutetricas

Para medir o uxo de usuaacuterios dentro do site foi utilizado Google Analytics em conjuntocom o Google Tag Manager e como meacutetrica chave escolhemos medir a quantidade de usuaacuteriosque se interessavam por um evento

Foi criada entatildeo uma tag (gura 510) para rastrear os cliques no botatildeo Participar

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

34 USP EVENTOS 54

presente dentro do thumbnail de um evento na paacutegina principal e tambeacutem na paacutegina dedetalhes do evento Dessa forma seria possiacutevel mapear o interesse do usuaacuterio em um deter-minado evento

Figura 510 Visualizaccedilatildeo das Tags pelo Google Tag Manager

Em pararelo foi possiacutevel obter tambeacutem por meio do Google Analytics as seguintes infor-maccedilotildees (gura 511)

bull Visualizaccedilotildees de Paacuteginas Exibiccedilotildees de paacutegina refere-se ao nuacutemero total de paacuteginasvisualizadas Exibiccedilotildees repetidas de uma uacutenica paacutegina satildeo consideradas

bull Paacuteginas Sessatildeo Nuacutemero total de sessotildees no periacuteodo

bull Duraccedilatildeo Meacutedia da Sessatildeo Uma sessatildeo eacute o periacuteodo que um usuaacuterio permanece ativa-mente engajado com seu site aplicativo etc Todos os dados de uso (exibiccedilotildees de telaeventos comeacutercio eletrocircnico etc) satildeo associados a uma sessatildeo

bull Usuaacuterios Os usuaacuterios que realizaram pelo menos uma sessatildeo no periacuteodo selecionadoInclui usuaacuterios novos e recorrentes

bull Taxa de Rejeiccedilatildeo A taxa de rejeiccedilatildeo eacute a porcentagem de visitas a uma uacutenica paacutegina(ou seja visitas nas quais a pessoa sai de seu site na mesma da paacutegina de entrada seminteragir com a paacutegina)

bull Porcentagem de Novas Sessotildees Uma estimativa da porcentagem de primeiras visitas

Eacute possiacutevel observar uma grande taxa de rejeiccedilatildeo inicial ao site no periacuteodo associadoprincipalmente na paacutegina inicial com cerca de 761 sessotildees e 423 desistecircncias (gura 512)

Durante o periacuteodo observado foram registrados apenas 184 cliques em 56 sessotildees uacutenicasno botatildeo Participar

Atraveacutes do graacuteco da divisatildeo de uso por tipo de Sistema Operacional (gura 513) foipossiacutevel observar que a grande maioria dos usuaacuterios acessa o site por meio notebooks oucomputadores pessoais

544 Aprendizado

O maior nuacutemero de acesso de usuaacuterios deu-se sempre em seguida aos posts realizadospelo Facebook alcanccedilando picos de acesso mostrando a importacircncia da divulgaccedilatildeo pelaplataforma

Foi observado que os usuaacuterios acessavam o site poreacutem natildeo realizavam cadastro deixando-ologo em seguida e resultando em um nuacutemero elevado de desistecircncias na paacutegina inicial

Dentre os retornos recebidos pelo formulaacuterio do site e-mails e de forma direta foramcompiladas algumas criacuteticas e sugestotildees

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

54 PRIMEIRA ITERACcedilAtildeO 35

Figura 511 Dados obtidos pelo GA de 0105 ateacute 3107

Figura 512 Fluxo de Comportamento de 0105 ateacute 3107

bull Paacutegina de eventos e visualizaccedilatildeo dos mesmos deveriam ser abertas para usuaacuterios mesmosem login

bull Ausecircncia de um ltro de usuaacuterios tornou a paacutegina de eventos confusa para navegaccedilatildeo

bull Botatildeo lateral de adicionar evento estava muito grande e atrapalhando a navegaccedilatildeo

bull Falta de cores na paacutegina principal tornou cansativa a navegaccedilatildeo

bull Clicar no nome do evento no thumbnail para acessar a paacutegina do mesmo

bull Ausecircncia de opccedilatildeo de esqueci minha senha

bull Clicar no botatildeo Participar natildeo tinha uma utilidade praacutetica O evento era salvo poreacutemisso natildeo gerava nenhum reexo no sistema natildeo existindo uma funcionalidade quejusticasse sua existecircncia e natildeo havendo razatildeo para que os usuaacuterios clicassem no botatildeo

Alguns comentaacuterios selecionados

bull Por Veronica Seria muito legal poder ltrar os eventos por tags referentes ao local tipo assuntos que seratildeo abordados

bull Por Lucas Olaacute Eu gostaria de ver os eventos por categoriaaacuterea de conhecimento(Artes Histoacuteria Economia Engenharia etc)

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

36 USP EVENTOS 55

Figura 513 Porcentagem de uso por SO de 0105 ateacute 3107

bull Por Carolina Por que devemos nos cadastrar simplesmente para acessar o site Ese a pessoa simplesmente quer se informar sobre o que estaacute acontecendo A minhasugestatildeo eacute que somente quem quer enviar eventos para o site deveria se ter que secadastrar Obrigada e boa sorte no TCC

bull Por Karina [Login] Aos usuaacuterios que natildeo possuem conta mas tentam logar seriaideal que o sistema mostra-se quando o usuaacuterio colocou dados incorretos e quando ousuaacuterio natildeo possui conta [Paacutegina de eventos] Seria melhor que a ceacutelula do eventopermitisse o click para adentrar detalhes sobre o mesmo [Paacutegina de eventos] Inseriralgumas ferramentas de ltro datas (inicional ou datas pontuais) tags (algumas tagspreacute-cadastradas) campus [Paacutegina de eventos] Espaccedilo para uma imagem nas ceacutelulas dedivulgaccedilatildeo do evento daria mais cor e chamaria mais a atenccedilatildeo dos usuaacuterios [Paacuteginade eventos] Seria legal colocar um aviso de inscriccedilotildees limitadas para eventos que tecircmtal restriccedilatildeo

55 Segunda Iteraccedilatildeo

551 Construccedilatildeo

Levando em consideraccedilatildeo o aprendizado da primeira iteraccedilatildeo foi feita uma mudanccedila nouxo do site para permitir o acesso para a paacutegina de eventos sem a necessidade de realizarum cadastro antes ou exigir um login do usuaacuterio

As hipoacuteteses a serem testadas foram

bull Vericar se as alteraccedilotildees visuais foram bem aceitas

bull Testar a hipoacutetese da necessidade de Filtro para Eventos

Foi criado um ltro para a paacutegina de eventos baseado na utilizaccedilatildeo de tags Dessa formaao criar um novo evento (gura 514) o usuaacuterio agora pode escolher 3 dentre 12 tags preacute-denidas que serviratildeo como ltro na paacutegina principal de eventos

Visando tornar a navegaccedilatildeo dentro da paacutegina de eventos mais uiacuteda e menos cansativaforam realizadas algumas modicaccedilotildees visuais na exibiccedilatildeo dos eventos (gura 515)

bull Remodelagem do thumbnail de Eventos

bull Diminuiccedilatildeo do botatildeo de adicionar novos eventos para natildeo atrapalhar a navegaccedilatildeo

bull Adiccedilatildeo de um menu lateral com opccedilotildees de Filtros para os eventos

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

55 SEGUNDA ITERACcedilAtildeO 37

Figura 514 Paacutegina de Cadastro de Novos eventos com ltros

Figura 515 Paacutegina de Eventos com as alteraccedilotildees para a segunda iteraccedilatildeo

bull Nova listagem personalizada de Eventos segundo os interesses do usuaacuterio

Os ltros (gura 516) estatildeo em um menu lateral que eacute acionado por um botatildeo na partesuperior esquerda Tambeacutem eacute possiacutevel selecionar cada tag individualmente ao clicar sobre arespectiva nos thumbnails de eventos

As mudanccedilas realizadas (gura 517) no thumbnail de eventos

bull Removido botatildeo de +Info agora para acessar mais informaccedilotildees basta clicar sobre onome do evento

bull Adicionado cabeccedilalho para separar e dar maior ecircnfase para o tiacutetulo e uma cor de fundopara aumentar o contraste com o plano de fundo a m de facilitar a leitura

bull Adiccedilatildeo de tags com as classicaccedilotildees dos eventos facilitando sua escolha

bull Mudanccedila do nome do botatildeo de Participar para Salvar

Em conjunto com a criaccedilatildeo das tags para eventos foi criado um mecanismo de preferecircnciaspara o usuaacuterio Agora na paacutegina de cadastro ou ediccedilatildeo de usuaacuterio eacute possiacutevel selecionar as

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

38 USP EVENTOS 55

Figura 516 Filtros na paacutegina de Eventos

tags com as quais o usuaacuterio tenha maior anidade com o intuito de exibir uma listagempersonalizada de eventos segundo esses criteacuterios

Em julho ocorreu o lanccedilamento do jogo para smartphone Pokemon GO baseado emgeorreferenciamento cujo objetivo era explorar localidades reais em busca dos Pokemonspara capturaacute-los Esse lanccedilamento movimentou uma enorme quantidade de pessoas pelocampus na eacutepoca

Visando aproveitar essa movimentaccedilatildeo foi criada uma paacutegina chamada Alertas (gura518) para atingir o puacuteblico que estava jogando com intuito de que eles pudessem divulgara localizaccedilatildeo dos Pokemons utilizando o USP Eventos

A implementaccedilatildeo da paacutegina de Alertas tatildeo rapidamente soacute foi possiacutevel devido agrave grandeexibilidade que o modelo de Construir-Medir-Aprender oferece pois somente assim foi pos-siacutevel integrar uma nova funcionalidade natildeo prevista dentro do escopo do projeto e medir suaecaacutecia

Aleacutem disso com o auxiacutelio de testes automatizados ferramentas para integraccedilatildeo contiacutenuae a agilidade do desenvolvimento em Rails foi possiacutevel desenvolver e colocar as alteraccedilotildees noambiente de produccedilatildeo sem comprometer a integridade do sistema como um todo

Por m foi adicionada uma paacutegina Sobre com informaccedilotildees sobre os responsaacuteveis pelosite assim como seus objetivos

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

55 SEGUNDA ITERACcedilAtildeO 39

Figura 517 Esquerda versatildeo antiga Direita Versatildeo atualizada

Figura 518 Paacutegina de Alertas

552 Divulgaccedilatildeo

Aleacutem da divulgaccedilatildeo pelo Facebook foram espalhados cartazes em pontos estrateacutegicos daUSP tais como Pontos de Ocircnibus com grande movimentaccedilatildeo murais proacuteximos aos Restau-rantes Universitaacuterios e tambeacutem no interior de alguns institutos

553 Meacutetricas

Foi mantido o rastreamento pelo Google Analytics do botatildeo Participar poreacutem seunome foi alterado para Salvar com o intuito de reetir melhor sua utilidade salvar umevento como interessante para exibi-lo na seccedilatildeo de Meus Eventos da listagem de eventosdo usuaacuterio No entanto a meacutetrica chave continuou sendo avaliar o interesse dos usuaacuterios emdeterminado Evento agora por meio do clique no botatildeo Salvar

Pelos resultados obtidos atraveacutes do Googgle Analytics (gura 520) foi observado umadiminuiccedilatildeo no nuacutemero de sessotildees Entretanto tambeacutem houve uma diminuiccedilatildeo signicativana taxa de rejeiccedilatildeo do site caindo de 4691 para 3316

O tempo meacutedio por sessatildeo tambeacutem aumentou passando de 154 minutos para 337 mi-nutos mostrando um aumento na retenccedilatildeo de usuaacuterios acessando a plataforma

Com o lanccedilamento da seccedilatildeo de Alertas foi feita uma divulgaccedilatildeo via Facebook incen-

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

40 USP EVENTOS 55

Figura 519 Cartaz de divulgaccedilatildeo

tivando os usuaacuterios a utilizarem a plataforma com o intuito de divulgar a localizaccedilatildeo dePokemons

Foi colocado tambeacutem uma tag para rastrear o nuacutemero de cliques no botatildeo Alertas coma intenccedilatildeo de medir o interesse na funcionalidade Dessa forma foram observados 305 cliquesnesse botatildeo no periacuteodo observado

Analisando o graacuteco de divisatildeo por tipo de Sistema Operacional (gura 521) foi obser-vado que o acesso pelo sistema Android proporcionalmente mais que dobrou em relaccedilatildeo aoperiacuteodo anterior passando de 84 para 1936

554 Aprendizado

Com a abertura da paacutegina principal de Eventos sem a obrigatoriedade de um cadastromais acessos foram registrados poreacutem quase natildeo houve novos cadastros dicultando assimque um usuaacuterio salvasse algum evento para sua lista

Com a divulgaccedilatildeo por cartazes foi possiacutevel constatar um aumento na utilizaccedilatildeo em dis-positivos moacuteveis principal forma de acesso em lugares puacuteblicos e incentivada devido ao QRCode presente nos cartazes

Apesar do pico de acessos com o lanccedilamento da paacutegina de Alertas a funcionalidade foiabandonada pelos usuaacuterios gerando poucos acessos mostrando que possivelmente natildeo seriainteressante investir em seu desenvolvimento

Mesmo com a criaccedilatildeo de ltros e melhorias visuais a paacutegina principal ainda carecia deapelo para navegaccedilatildeo

Alguns comentaacuterios recebidos de forma oral armaram que a paacutegina de eventos estavapouco atrativa visualmente sendo necessaacuterio que ela tivesse mais elementos que prendessem

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

56 TERCEIRA ITERACcedilAtildeO 41

Figura 520 Dados obtidos pelo GA de 0108 ateacute 3009

Figura 521 Porcentagem de uso por SO de 0108 ateacute 3009

a atenccedilatildeo do usuaacuterioNovamente recebemos comentaacuterios pelo proacuteprio formulaacuterio do site sobre adicionar a opccedilatildeo

de incluir uma foto ao evento Segue o comentaacuterio do Ferdinand Machado Sinto falta deanexo para cartazes poder enviar uma foto ou cartaz escaneado do evento

56 Terceira Iteraccedilatildeo

561 Construccedilatildeo

As maiores criacuteticas recebidas durante a uacuteltima iteraccedilatildeo foram em relaccedilatildeo agrave experiecircnciaproporcionada pelo site que natildeo estava atrativa o suciente A partir desse feedback foidecidido testar a seguinte a hipoacutetese

bull Melhorar a UX do site para aumentar a aceitaccedilatildeo dos usuaacuterios

Em seu artigo publicado na Agile Conference Beverly May (May 2012) especialista emUX discute alguns dos erros que cometeu ao aplicar o meacutetodo de Lean Startup Dentre elesum dos principais foi negligenciar a UX inicialmente

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

42 USP EVENTOS 56

Como recomendaccedilatildeo ela aconselha investir numa boa experiecircncia de usuaacuterio sempre cons-truindo protoacutetipos e wireframes6 antes de implementar para testar as modicaccedilotildees visuaisBerverly tambeacutem enaltece a importacircncia de realizar testes constantes e sempre levar emconsideraccedilatildeo os feedbacks dos usuaacuterios positivos e negativos um conceito tambeacutem presenteno ciclo de Construir-Medir-Aprender e base para o Desenvolvimento de Clientes

No caso do USP Eventos foi feito um wireframe (gura 522) da paacutegina principal deEventos com as modicaccedilotildees realizadas na iteraccedilatildeo atual

Figura 522 Wireframe da versatildeo modicada durante a Terceira Iteraccedilatildeo

Para contornar a falta de conhecimento na aacuterea de User Experience foram feitas pesquisasutilizando a bibliograa disponiacutevel e tambeacutem entrevistas com prossionais da aacuterea

Isto posto para melhorar a exibiccedilatildeo de informaccedilatildeo dentro do site centralizamos asprincipais modicaccedilotildees de UX na paacutegina de Eventos seguindo alguns preceitos apresentadospor Steve Krug em seu livro Dont make me think (Krug 2000) dentre eles

bull Eliminar distraccedilotildees desnecessaacuterias eliminar espaccedilos em branco e textos que possamdistrair poluir visualmente a paacutegina ou criar algum tipo de ruiacutedo na informaccedilatildeo exi-bida

bull Criar hierarquias visuais claras dar mais destaque para as informaccedilotildees importantes eaproximar visualmente elementos que possuam ligaccedilotildees loacutegicas entre eles como nomedo evento e sua data

bull Tirar vantagens de convenccedilotildees utilizar layouts jaacute consolidados de sites semelhantespara criar uma identicaccedilatildeo na forma de navegar do usuaacuterio

Aleacutem disso para eliminar o excesso de texto presente na exibiccedilatildeo de eventos e incluirmais informaccedilotildees visuais foi implementada uma opccedilatildeo de realizar upload de uma imagempara o evento que seria exibida tanto na paacutegina principal de eventos como na paacutegina deinformaccedilotildees gerais

As modicaccedilotildees principais feitas foram (gura 523)

bull Diminuir os espaccedilos em branco dentro do thumbnail de Eventos deixando-o maiscompacto

6 Um wireframe web eacute uma ilustraccedilatildeo semelhante do layout de elementos fundamentais na interface Fonte httpsptwikipediaorgwikiWebsite_wireframe Acesso em 6 out 2016

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

56 TERCEIRA ITERACcedilAtildeO 43

bull Modicaccedilatildeo nas cores e tamanho para dar destaque ao tiacutetulo criando uma hierarquiavisual a partir dele com as suas informaccedilotildees contidas no interior do thumbnail

bull Eliminaccedilatildeo da exibiccedilatildeo do local e data de teacutermino do evento para diminuir a poluiccedilatildeovisual

bull Presenccedila de uma imagem identicadora no evento ao centro do thumbnail e em suapaacutegina de exibiccedilatildeo

bull O botatildeo de Salvar deixou de estar localizado ao centro para car associado com osoutros bototildees de compartilhamento na parte inferior do thumbnail

Figura 523 Paacutegina de Eventos apoacutes modicaccedilotildees

Victor Krug tambeacutem arma em seu livro que os usuaacuterios costumam criar mapas mentaisde navegaccedilatildeo sendo importante manter as convenccedilotildees com o intuito de aproveitar-se dessasimilaridade

Tomando como um exemplo de convenccedilatildeo o Sympla (wwwsymplacombr) uma plata-forma completa para venda de ingressos e inscriccedilotildees e gestatildeo de eventos foi observado quedesde o comeccedilo nosso uxo de navegaccedilatildeo estava bastante proacuteximo agrave convenccedilatildeo estabelecidauma paacutegina principal de Eventos contendo toda uma listagem de eventos sendo que cadaevento direciona para sua proacutepria paacutegina especiacuteca

Para aproximar ainda mais o uxo de navegaccedilatildeo foi incluiacuteda tambeacutem na paacutegina inicialuma listagem com os Proacuteximos Eventos assim como o Sympla faz com seus Eventos emDestaque

Aleacutem disso foram implementados alguns efeitos visuais para chamar atenccedilatildeo do usuaacuterio

bull Ao passar o mouse sobre evento uma animaccedilatildeo de salto do thumbnail era rapidamenteexibida

bull Ao carregar ou atualizar uma listagem de eventos seu carregamento era feito por meiode uma animaccedilatildeo iniciada lateralmente

A maior diculdade em realizar o upload de imagens foi o seu local de armazenamentopois o Heroku natildeo permite salvar arquivos em seu servidor apenas armazenar em cachedurante a sessatildeo entatildeo foi feita a opccedilatildeo de criar uma conta no Dropbox habilitada parareceber imagens de aplicativos e integraacute-la com a aplicaccedilatildeo USP Eventos

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

44 USP EVENTOS 56

Figura 524 Paacutegina principal de Eventos com o Mapa de Calor ativado

562 Meacutetricas

Nessa iteraccedilatildeo foi adicionado um Mapa de Calor (gura 524) para medir os cliques demouse na paacutegina principal de eventos

Foi interessante observar que o Filtro estava sendo bastante utilizado tanto que em dadomomento atingiu 40 dos cliques na paacutegina (gura 525)

Figura 525 Botatildeo de Filtro com 40 dos cliques da paacutegina

Outro ponto interessante observado eacute que muitos usuaacuterios tambeacutem clicavam nas imagensdos eventos para acessar suas paacuteginas de informaccedilotildees individuais mostrando que adicionaruma imagem para captar a atenccedilatildeo do usuaacuterio trouxe resultados

O enunciado de cada listagem foi clicado repetidas vezes pelos usuaacuterios o que podesignicar que ele esteja sendo confundido com um link (gura 526)

Figura 526 Nome da Listagem possiacutevel confusatildeo com um link

Analisando os dados (gura 527) obtidos pelo Google Analytics no periacuteodo de 2709 ateacute2810 eacute possiacutevel observar uma diminuiccedilatildeo na taxa de rejeiccedilatildeo no site para 2164 e um

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

56 TERCEIRA ITERACcedilAtildeO 45

aumento consideraacutevel no nuacutemero de paacuteginas visitadas e duraccedilatildeo meacutedia por sessatildeo

Figura 527 Dados obtidos pelo GA no periacuteodo de 2709 ateacute 2810

Aleacutem disso o nuacutemero de novos visitantes cou em 472 mostrando que existe um nuacutemeroconsideraacutevel de usuaacuterios que retornaram ao site o que pode justicar um investimento maiorem divulgaccedilatildeo

563 Aprendizado

Com o intuito de realizar uma coleta de dados mais direta com os candidatos foi criadoum Formulaacuterio utilizando o TypeForm e conversas com pessoas que utilizavam a plataforma

Ao responder agrave pergunta Qual ou quais foram os maiores pontos positivos na sua opi-niatildeo a interface do site foi elogiada diversas vezes mostrando que as modicaccedilotildees foramde fato bem aceitas A seguir estatildeo listadas algumas das respostas

bull Interface bem faacutecil e intuitiva

bull Organizar visualmente a informaccedilatildeo dos eventos e a utilizaccedilatildeo de labels

bull Intuitivo em sua maioria bonito faacutecil de entender como funciona

bull Mostrar eventos de diversos temas (natildeo soacute festas por exemplo) Mas tambeacutem a opccedilatildeode selecionar os assuntos de sua preferecircncia ao fazer o cadastro A interface eacute simplese clara acho que atende aos objetivos e permite uma visualizaccedilatildeo raacutepida podendorolar ateacute o mecircs desejaacutevel rapidamente

bull Reunir todos os eventos do campus em um soacute lugar

bull Gostei da preocupaccedilatildeo em se fazer um site responsivo jaacute que por ter inclusive umaseccedilatildeo Acontecendo Agora eacute de se esperar que o acesso por meios moacuteveis seja maior

Tambeacutem foi feita uma pergunta sobre os pontos negativos e foi observado que algunsusuaacuterios acreditavam que os ltros natildeo estivessem funcionando

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

46 USP EVENTOS 56

Conversando pessoalmente com esses usuaacuterios foi identicada uma confusatildeo na formacomo o ltro eacute aplicado Como o ltro eacute aplicado somente nas listagens de Eventos Aconte-cendo Agora e Proacuteximos Eventos esses usuaacuterios natildeo percebiam a ltragem estava sendorealizada

Ainda sobre os ltros aparentemente natildeo cou claro para os usuaacuterios que ao preenchersuas preferecircncias durante o cadastro isso iria criar uma listagem personalizada com o nomede Principais Escolhas

Alguns comentaacuterios sobre os ltros

bull No meu computador o site demora a responder e alguns ltros natildeo funcionaram

bull Tentei usar o ltro e natildeo funcionou mto (sic) bem

A paacutegina de Alertas tambeacutem pareceu deslocada Muitos natildeo entenderam sua funccedilatildeo ecomentaram que o seu layout atual estaacute ruim

Segue uma compilaccedilatildeo das sugestotildees de funcionalidades recebidas

bull Filtros por data (dias da semana proacuteximos dias etc)

bull Integrar com o Google Agenda

bull Integrar com os Eventos do Facebook (poder importar eventos do facebook para aplataforma)

bull Presenccedila de um calendaacuterio

bull Campo de busca por extenso

bull Mapa com a localizaccedilatildeo dos Eventos

bull Sistema para disparar alertas ou lembretes para determinado evento

bull Opccedilatildeo de cadastros ociais como uma certicaccedilatildeo de que aquele perl pertece a umCentro Acadecircmico ocialmente por exemplo

bull Feed de Notiacutecias

bull Sistema de Avaliaccedilatildeo para Eventos mais esperado

bull Viacutedeos e fotos poacutes evento

Algumas respostas sobre sugestotildees para a plataforma

bull Talvez criar mais uma separaccedilatildeo eventos nos proacuteximos 7 dias ou eventos dessasemana visualizaccedilatildeo de mapa

bull Senti falta de uma visualizaccedilatildeo dos eventos em um calendaacuterio

bull Podia linkar (sic) com os eventos do Facebook e jaacute salvar nos seus eventos de laacute

bull Talvez um campo de busca para que fosse possiacutevel escolher um mecircs ou m de semanaespeciacutecoEacute raacutepido ir rolando a tela mas para eventos a longo prazo a barra de buscacumpriria melhor a funccedilatildeo

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

57 UacuteLTIMAS ATUALIZACcedilOtildeES 47

Ao todo 28 pessoas responderam ao questionaacuterio sendo que todas acreditam que umaplataforma centralizando Eventos na USP eacute de fato uacutetil e apenas 3 natildeo gostaram do USPEventos

Dentre as criacuteticas das 3 pessoas que natildeo gostaram os seguintes pontos foram levantados

bull Acreditam que poucas pessoas hoje em dia usariam um site e talvez uma iniciativadentro do Facebook fosse mais uacutetil

bull Ficaram incomodadas com a paleta de cores

bull Gostariam de poder visualizar os eventos na paacutegina inicial

A abordagem utilizando um questionaacuterio e conversas diretas trouxe uma quantidademuito maior de informaccedilatildeo sobre a plataforma do que nas iteraccedilotildees anteriores mostrandoque o Desenvolvimento do Cliente eacute realmente uacutetil para direcionar o desenvolvimento doSistema

Utilizar um Mapa de Calor foi um acreacutescimo importante na coleta de dados pois foipossiacutevel perceber detalhes na forma como o usuaacuterio utiliza a plataforma tornando-se maisuma opccedilatildeo para realizar a validaccedilatildeo da hipoacutetese inicial

A divulgaccedilatildeo ainda parece natildeo estar atingindo um grande nuacutemero de pessoas resultandoem um baixo volume de acessos

57 Uacuteltimas Atualizaccedilotildees

As uacuteltimas alteraccedilotildees feitas no site antes da conclusatildeo do projeto foram

bull Login e Cadastro com o Gmail analisando a boa receptividade da integraccedilatildeo comredes sociais foi decidido expandir as opccedilotildees de login

bull Cache uma das reclamaccedilotildees recebidas foi a lentidatildeo do site devido ao fato da aplicaccedilatildeonatildeo realizar o cache das imagens de eventos sendo necessaacuterios recarregaacute-las sempreImplementando a opccedilatildeo de cache fornecida pelo proacuteprio Rails foi possiacutevel diminuir deforma consideraacutevel o tempo de carregamento da paacutegina de eventos

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Capiacutetulo 6

Conclusotildees

Um dos fatores principais para o Lean Startup ter sido escolhido para direcionar a pes-quisa e a elaboraccedilatildeo do USP eventos foi a importacircncia que o cliente tem nesse processo Afase inicial - de levantamento de interesse por meio de enquete com os alunos - constatouque nem sempre a concepccedilatildeo sobre determinado projeto ou ideia do ponto de visto dosdesenvolvedores eacute de fato uma necessidade para o puacuteblico-alvo

Nos 3 ciclos de Construir-Medir-Aprender foi possiacutevel observar as reaccedilotildees dos usuaacuteriose por diversas vezes um comentaacuterio ou criacutetica serviu para modicar uma funcionalidade ouincluir uma nova Isso demonstra a importacircncia de manter o desenvolvimento sempre emcontato com o usuaacuterio nal para se obter um software que de fato cumpra com sua proposta eseja uacutetil ao usuaacuterio O desenvolvimento em ciclos tambeacutem mostrou a importacircncia que existeem obter um aprendizado vaacutelido para de fato entender a receptividade e necessidade dasatualizaccedilotildees

Um desenvolvimento pautado em testes por vezes impediu que um bug fosse colocadoem produccedilatildeo que apesar de exigir um tempo maior de trabalho a longo prazo os testesautomatizados geraram ganho em produtividade e eciecircncia A integraccedilatildeo contiacutenua eacute umaferramenta poderosa para situar todos os integrantes do projeto sobre seu estado atual aleacutemde garantir a conabilidade do sistema

De uma maneira geral foi bastante positivo o resultado nal da aplicaccedilatildeo Conseguimosentregar um software soacutelido no entanto apesar de ter sido possiacutevel obter feedbacks sucientespara melhoria contiacutenua do sistema infelizmente natildeo tivemos uma adoccedilatildeo de usuaacuterios tatildeogrande quanto esperada Talvez com maior divulgaccedilatildeo um puacuteblico maior pudesse ter aderidoe se cadastrado na aplicaccedilatildeo

Com o aprendizado adquirido ca clara a importacircncia do tempo dedicado agrave divulgaccedilatildeoNo comeccedilo do projeto hesitamos em realizar uma divulgaccedilatildeo maior esperando o projeto estarmais concreto Contudo dada a importacircncia que teve o feedback dos usuaacuterios hoje seriamespalhados cartazes desde a primeira versatildeo do projeto aleacutem de realizar-se mais questionaacuteriose conversas com os usuaacuterios dependendo menos do envio de sugestotildees

No iniacutecio do projeto havia a intenccedilatildeo de manter sprints de desenvolvimento bem deni-dos com prazos claros No entanto com o passar do tempo devido a problemas de horaacuterioe disponibilidade tais sprints caram muito irregulares e mal denidos Olhando em retros-pecto isso quebrou um pouco o ritmo de desenvolvimento e atrasou a progressatildeo do projetocomo um todo Hoje insistiriacuteamos em realizar sprints bem denidos

49

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Capiacutetulo 7

Proacuteximos Passos

O sistema ainda tem muito espaccedilo para evoluccedilatildeo Durante a uacuteltima interaccedilatildeo foramrecebidos uma seacuterie de feedbacks e opccedilotildees para continuar o desenvolvimento do software

bull Integrar o sistema com o Google Agenda para noticar usuaacuterios dos seus eventos deinteresse

bull Criar uma paacutegina contendo um Feed de notiacutecias com as novidades ocorrendo no Cam-pus

bull Opccedilatildeo de Login com Instagram Twitter e outras redes sociais

bull Remodelar a paacutegina de Alertas com um layout mais atrativo

51

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas

Referecircncias Bibliograacutecas

Blank(2003) Steve Blank The Four steps to Epiphany KS Ranch quarta ediccedilatildeo Citado na

paacuteg 3 7

Blank(2015) Steve Blank Construir medir aprender entenda as formas de validar seunegoacutecio 2015 URL httpsendeavororgbrconstruir-medir-aprender Citado na paacuteg 7

Documentation(2016) Ruby Documentation Sobre o ruby 2016 URL httpswwwruby-langorgptabout Citado na paacuteg 17

Filho(2014) Francisco Barreto Costa Pimentel Filho Um estudo da adoccedilatildeo das praacuteti-cas de lean startup business model canvas e desenvolvimento de clientes para startupsDissertaccedilatildeo de Mestrado Universidade Federal de Pernambuco Citado na paacuteg 29 30

Junk(2000)W S Junk The dynamic balance between cost schedule features and qualityin software development projects Computer Science Dept University of Idaho Citado na

paacuteg 4

Krug(2000) Steve Krug Dont Make Me Think New Riders Press terceira ediccedilatildeo Citado

na paacuteg 42

Larman(2004) Craig Larman Agile and Iterative Development A Managers Guide Ad-dison Wesley segunda ediccedilatildeo Citado na paacuteg 10

May(2012) Beverly May Applying lean startup An experience report lean lean ux by a uxveteran Lessons learned in creating launching a complex consumer app Agile Conference(AGILE) 2012 Citado na paacuteg 41

Morrice(2015) Gavin Morrice Why you should build your web star-tup using ruby on rails 2015 URL httpsblogkatanacodecomwhy-you-should-build-your-web-startup-using-ruby-on-rails-8104c2226c6aqgpihasirCitado na paacuteg 19

Paternoster(2014) Nicolo Paternoster Software development in startup companies Asystematic mapping study Information and Software Technology Citado na paacuteg 3

Pressman(2011) Roger S Pressman Livro - Engenharia de Software - Uma AbordagemProssional Mc Graw Hill seacutetima ediccedilatildeo Citado na paacuteg 14

Ries(2011) Eric Ries The Lean Startup Crown Business (USA) segunda ediccedilatildeo Citado na

paacuteg 4 6

Udovychenko(2016) Lilia Udovychenko Why startups use ruby on rails 2016 URLhttpmlsdevcomenblog61-why-startups-use-ruby-on-rails Citado na paacuteg 19 20

53

  • Caio
  • Eugenio
  • Lista de Abreviaturas
  • Introduccedilatildeo
    • Motivaccedilatildeo e Objetivos
      • Lean Startup
        • Lean Startup O que eacute
          • Startup uma definiccedilatildeo
          • Lean Startup
            • Produto Miacutenimo Viaacutevel (MVP)
            • O ciclo de Construir-Medir-Aprender (Build-Measure-Learn)
            • Desenvolvimento de Clientes
            • Conceitos Utilizados
              • Meacutetodos Aacutegeis
                • Origem
                • Definiccedilatildeo
                • Meacutetodos Aacutegeis especiacuteficos
                  • Scrum
                  • Test Driven Development (TDD)
                  • Continuous Integration (CI)
                  • Kanban
                    • Um contraponto O modelo Cascata
                    • Conceitos Utilizados
                      • Tecnologias
                        • Ruby on Rails
                          • Ruby
                          • Rails
                          • Porque escolher Ruby on Rails
                            • Heroku
                            • Travis CI
                            • Trello
                            • Github
                            • Google Analytics e Google Tag Manager
                            • Painel de opiniotildees Populares - POP
                            • HeatMap
                            • Typeform
                              • Usp Eventos
                                • Definiccedilatildeo do Projeto
                                  • Motivaccedilatildeo
                                  • Enquete e definiccedilatildeo do projeto
                                    • Definindo as caracteriacutesticas do Sistema
                                      • Pesquisa de Sistemas Semelhantes
                                      • Plataforma Web x Moacutevel
                                        • Kanban
                                        • Primeira Iteraccedilatildeo
                                          • Construccedilatildeo
                                          • Divulgaccedilatildeo
                                          • Meacutetricas
                                          • Aprendizado
                                            • Segunda Iteraccedilatildeo
                                              • Construccedilatildeo
                                              • Divulgaccedilatildeo
                                              • Meacutetricas
                                              • Aprendizado
                                                • Terceira Iteraccedilatildeo
                                                  • Construccedilatildeo
                                                  • Meacutetricas
                                                  • Aprendizado
                                                    • Uacuteltimas Atualizaccedilotildees
                                                      • Conclusotildees
                                                      • Proacuteximos Passos
                                                      • Referecircncias Bibliograacuteficas