Escolha metodológica - DesenhoMaster2017/SpaceShooter GitHub Wiki

Histórico de Revisões

Data Versão Descrição Autor(es)
19/08/2017 1.0 Versão inicial Isaac e Kleber

Escolha Metodológica


Metodologia de Desenvolvimento

Em todo projeto de software, a escolha da metodologia é uma etapa de extrema importância devido ao fato que a metodologia escolhida irá definir o rumo e a que passo será ditado o ritmo do desenvolvimento do projeto. Com base nisso, este documento tem como finalidade de mostrar como foi definido a escolha do Scrum para o projeto e como será feita sua adaptação para o contexto da equipe.

O que é Scrum

Scrum é um framework utilizado para gerenciar o desenvolvimento de produtos complexos e não tão complexos de forma que possa empregar processos e técnicas que facilitem a organização e o desenvolvimento.

Scrum é um processo empírico, apoiado por 3 pilares: transparência, inspeção e adaptação.

Transparência: Aspectos significativos do processo deve estar visível aos seus responsáveis.

Inspeção: Os usuários Scrum deve inspecionar os artefatos e o progresso em direção a detectar possíveis alterações não desejadas.

Adaptação: Caso o processo esteja fora dos limites aceitáveis, o processo ou material sendo produzido deve ser ajustado. Sendo o ajuste realizado o mais breve possível para evitar mais desvios.

O Scrum prescreve 4 eventos formais dentro dos limites da Sprint:

  • Reunião de planejamento da Sprint;
  • Reunião diária;
  • Reunião de revisão da Sprint;
  • Retrospectiva da Sprint.

Por que escolher o Scrum?

1. Adaptabilidade: O controle do processo empírico e a entrega iterativa fazem com que os projetos sejam adaptáveis e aberto as incorporações de mudanças.

2. Transparência: O primeiro pilar da metodologia Scrum é a transparência. Todas as fontes de informações (quadro de tarefas, kanban, BurnDown) são compartilhadas gerando um ambiente de trabalho aberto

3. Feedback contínuo: O FeedBack contínuo, garante o segundo pilar do Framework que é a inspeção, sendo ele obtido através de processos como a reunião diária e a sprint review. A inspeção leva a adaptação, em um ciclo que acaba gerando uma melhoria contínua.

4. Melhoria contínua: As entregas melhoram progressivamente, Sprint por Sprint, através do processo de refinamento do Backlog e do processo em si.

5. Entrega contínua de valor: Os processos iterativos permitem a entrega contínua de valor tão frequente quanto exigido pelo cliente.

6. Eficiência: O Scrum prega o Time-boxing e a estimulação do trabalho não-essencial, para dessa forma conduzir a níveis mais altos de eficiência, não se perdendo tempo com coisas que não gerem valor à meta da sprint. Mantém o backlog priorizado com o que realmente deve entrar na próxima Sprint, deixando para um futuro incerto o que não é essencial a aplicação.

7. Motivação: É necessário um ambiente de alta confiança para que o time fique motivado e com vontade de ir em frente, em prol dos objetivos gerais da sprint. E os processos de conduzir a reunião diária e de Retrospectiva da Sprint conduzem a níveis mais altos de motivação entre os colaboradores.

8. Alta velocidade: Agilidade não é pura e simplesmente entregar software mais rápido e sim sobre entregar valor mais cedo. E isso é possível graças ao backlog priorizado.

9. Ambiente inovador: O ambiente é inovador pois os 3 pilares do Scrum: transparência, inspeção e adaptação forma um ciclo vicioso sendo a chave para a inovação.

Observando esses aspectos, percebe-se que a chance de revisitar o processo e ajustá-lo a cada sprint dá uma vantagem muito grande frente às metodologias tradicionais: a vantagem de poder errar, aprender com esse erro e corrigir rápido.

Valores do Scrum

Quando os valores de comprometimento, coragem, foco, transparência e respeito são assumidos e vividos pelo Time Scrum, os pilares do Scrum de transparência, inspeção e adaptação tornam-se vivos e constroem a confiança para todos. Os membros do Time Scrum aprendem e exploram estes valores à medida que trabalham com os eventos, papéis e artefatos do Scrum.

O Sucesso no uso do Scrum depende das pessoas se tornarem mais proficientes na vivência destes cinco valores. As pessoas se comprometem pessoalmente em alcançar estes objetivos do Time Scrum. O Time Scrum precisa ter coragem para fazer a coisa certa e trabalhar em problemas difíceis. Todos focam no trabalho da Sprint e nos objetivos do time. O Time Scrum e seus Stakeholders concordam em estarem abertos a todo o trabalho e aos desafios com a execução dos trabalhos. Os membros respeitam uns aos outros para serem pessoas capazes e independentes.

Adaptações iniciais ao projeto

Por se tratar de uma metodologia ágil, o Scrum pode ser adaptado de acordo com a equipe e as necessidades do projeto a ser desenvolvido. Dessa forma, inicialmente foram adaptadas algumas medidas dentro do scrum que pudesse se adequar a equipe, ao projeto e ao cronograma inicialmente pré-estabelecido.

  • Daily Meeting: As daily meetings acontecerão de forma online, tendo a possibilidade de nos dias de aula acontecerem logo após o final da aula.
  • Kanban: Devido a falta de espaço físico para a equipe, foi adotado o ZenHub que é integrado ao GitHub, para gerenciamento das issues e ter o controle do que cada um está fazendo.
  • Pareamento: O pareamento não será obrigatório. Será de forma opcional no início de cada sprint, dependendo somente da disponibilidade da dupla e das necessidades da sprint.
  • Sprint: Com o cronograma de atividades definido e visto o tempo que a equipe possui para entregar o produto, foram definidas que as sprints terão duração de 2 semanas, exceto sprints de ajustes.