O Jogo
Inicialmente, a proposta contemplava a produção de um jogo no estilo “clicker” mas, após recomendações incisivas do professor durante a apresentação em sala, o grupo decidiu alterá-la.
A nova proposta consiste na implementação um jogo no estilo “fantasy” onde haverá um gerenciador da empresa onde o jogador recebe um projeto e deve selecionar os melhores integrantes para fazer parte de sua equipe. Cada integrante será representado por suas habilidades e também será vinculado a um custo. O objetivo do jogador é aumentar a sua pontuação visando adquirir membros mais talentosos e, por conseguinte, mais caros. Temos jogos como “Cartola FC” e “NFL Fantasy” que servem de exemplo de jogos que seguem essa filosofia.
Durante a sua jornada, o jogador irá se deparar com mini-jogos (como no formato de “quiz”, por exemplo) cuja temática será relacionada aos conceitos de Engenharia de Software e servirão para que pontos sejam acumulados, possibilitando uma evolução do nosso personagem.
Processo de Desenvolvimento
O processo escolhido para o desenvolvimento foi o SCRUM. Nele, os projetos são divididos em ciclos chamados de Sprints. Geralmente cada sprint tem um período que pode variar de poucos dias a algumas semanas. Para este trabalho, foi definido o praze de duas semanas para a realização de cada sprint. As pessoas envolvidas no processo de desenvolvimento são dividas em três papéis: o Scrum Master, o Product Owner (dono do produto) e a equipe.
O Product Owner é o maior interessado no software pois é aquele que teve (ou que representa quem teve) a necessidade do produto e por isso tem a visão do produto. Define o que deve ser feito e prioriza as funcionalidades a serem desenvolvidas, mantendo-as em um artefato chamado de product backlog (uma lista de todas as funcionalidades que devem ser implementadas e ordenadas por prioridade). É também responsabilidade do Product Owner passar toda a informação de negócio que for necessária para que a equipe possa transformar suas ideias em software.
A Equipe é composta por um número que varia de cinco a nove pessoas e possui integrantes com as mais diversas habilidades possíveis necessárias no desenvolvimento do produto final. O principal objetivo dela é implementar as funcionalidades que foram selecionadas para serem desenvolvidas na iteração e entregá-las em funcionamento ao final desse período.
O Scrum Master, também chamado de facilitador, é responsável por manter o processo em funcionamento, garantindo assim que o objetivo da iteração seja atingido. É importante ressaltar que o Scrum Master não atua como um gerente ou chefe da equipe porque a equipe é auto-organizável. O Scrum Master não determina o que cada membro da equipe deve ou não fazer: a equipe se compromete com a entrega das funcionalidades e, então, se auto-organiza, definindo por quem e em qual momento as tarefas serão realizadas.
Toda sprint começa com uma reunião de planejamento (Sprint Backlog), que é dividida em duas partes. A primeira delas tem um enfoque mais estratégico, na qual se decide o que será feito, isto é, quais funcionalidades serão implementadas e define-se uma meta para a Sprint. Para isso, o Product Owner apresenta os itens do product backlog, e a equipe obtém informações suficientes sobre cada um dos itens, dessa forma, é possível fornecer uma estimativa que expresse um tamanho ou um número de horas para o trabalho e assim seja definido quantas e quais tarefas poderão ser desenvolvidas no sprint (de acordo com a velocidade da equipe que é calculada através de dados de sprints passados).
Depois de definidas quais tarefas serão desenvolvidas no sprint, a equipe utiliza a segunda parte da reunião, que tem um enfoque mais tático, para decidir como serão feitas as tarefas. Então se analisa tarefa por tarefa com mais detalhes, mais informações de negócio são apresentadas e é possível tomar diversas decisões de negócio e decisões técnicas.
Ao fim da reunião de planejamento a equipe começa a trabalhar nas tarefas, respeitando as prioridades. Todos os dias é realizada uma reunião para que a equipe converse sobre o andamento do sprint.
Ao fim do sprint, mais duas reuniões acontecem: a reunião de revisão e a reunião de retrospectiva. Na reunião de revisão a equipe apresenta ao Product Owner o trabalho que foi desenvolvido durante a sprint, para que ele possa oferecer feedback, e aprovar ou não tudo o que foi produzido. Na reunião de retrospectiva os principais acontecimentos do sprint são apresentados e discute-se sobre as lições aprendidas e melhorias que podem ser aplicadas ao processo.
Motivos para escolha do Scrum:
- Não exige programação em pares;
- Possui papéis bem definidos;
- Mais flexível quanto às técnicas de desenvolvimento;
- Iterações bem definidas (Sprint com escopo imutável);
Tecnologia
A tecnologia alvo do projeto é a plataforma Web pois:
- Tecnologia facilmente testável;
- Maior difusão entre usuários;
- Menor dependência de softwares e bibliotecas, do ponto de vista do usuário;
Motor do Jogo
O motor gráfico escolhido foi o Unity pois:
- É uma plataforma de desenvolvimento de jogos consagrada;
- Possui tutoriais disponíveis para aprendizado da ferramenta (ex: http://unity3d.com/learn);
- Haver a possibilidade de exportar o projeto para diversas plataformas;
- Pode ser programada em C# ou Javascript;
- É uma ferramenta para desenvolvimento de jogos em 2D ou 3D;
Ambiente de Desenvolvimento
Para ambiente de desenvolvimento, usaremos o MonoDevelop por:
- Possuir integração com Unity para criar e manter arquivos de projetos;
- Haver uma facilidade no compartilhamento de código;
- Ser interface limpa e minimalista;
Controle de Versão
O GitLab foi escolhido como ferramenta de controle de versão. Ele apresenta as seguintes características:
- Servidor de repositórios Git;
- Interface amigável;
- Possui um Issue Tracker nativo;
- Permite utilizar ferramentas de CI;
- Facilita os testes;
- Permite ter macro visões do projeto;
Papéis no projeto
Os integrantes do grupo foram divididos entre os papéis de SCRUM Master, Product Owner e Equipe da seguinte maneira:
- SCRUM Master (SM):
- Product Owners (PO):
- Equipe:
- Andre Cunha
- João Penna
- Marco Antonio
- Nivaldo Teixeira
- Pedro Bernardina
- Renan Aragão
- Victor Muniz
- Wilson Carlos
Cronograma
Abaixo segue o cronograma para a execução do projeto:
Data |
Descrição da Atividade
|
15/09 |
|
20/09
|
- Reunião de planejamento: enfoque estratégico e tático
|
22/09
|
- Sprint Backlog - 1
- Início da Sprint - 1
|
06/10
|
- Final da Sprint - 1
- Reunião de revisão - 1
- Reunião de retrospectiva - 1
- Apresentação - 2
- Sprint Backlog - 2
- Início da Sprint - 2
|
20/10 |
- Final da Sprint - 2
- Reunião de revisão - 2
- Reunião de retrospectiva - 2
- Sprint Backlog - 3
- Início da Sprint - 3
|
27/10 |
|
03/11
|
- Final da Sprint - 3
- Reunião de revisão - 3
- Reunião de retrospectiva - 3
|
08/11 |
- Entrega do produto
- Apresentação - 4 (Final)
|