TCM

TCM

  • Sprints
  • Base
  • Modelagem
  • Padrões de Projeto
  • Arquitetura e Reutilização

›Metodologia

Sprints

  • Sprint 1
  • Sprint 2
  • Sprint 3
  • Sprint 4
  • Sprint 5
  • Sprint 6
  • Sprint 7
  • Sprint 8
  • Sprint 9

Base

    Planos

    • Gerenciamento do cronograma do projeto
    • Plano de gerenciamento de custos
    • Plano de gerenciamento de riscos

    Pré-Rastreabilidade

    • Rich Picture
    • 5W2H
    • Mapas Mentais
    • Documento de Visão
    • Diagrama de Causa e Efeito

    Elicitação

    • Brainstorm
    • Entrevista
    • Personas
    • Observação

    Metodologia

    • Metodologia

    Modelagem

    • Protótipo

Modelagem

    Diagramas UML

    • Diagrama de Atividades
    • Diagrama de Classes
    • Diagrama de Componentes
    • Diagrama de Comunicação
    • Diagrama de Estados
    • Diagrama de Pacotes
    • Diagrama de Sequência

    Extras

    • Léxico
    • Plano de GCS
    • NFR Framework
    • Diagrama da metodologia
    • Backlog

Padrões de Projeto

    GOFs

    • GOFS Comportamentais
    • GOFs Criacionais
    • GOFS Estruturais

    Grasp

    • GRASP

    Extra

    • Extras
    • Guia de estilo

Aquitetura de software e reutilização

  • Documento de Arquitetura
  • Reutilização de Software

Metodologia

Introdução

A metodologia pode ser definida como a sistematização de métodos e técnicas com o intuito de se alcançar um objetivo. Este documento aborda os métodos e técnica de metodologias, processos e práticas (Scrum, XP, Kanban, RUP) de acordo com o objetivo da equipe e da disciplina.

Metodologia

A equipe utiliza vários métodos e técnicas de diversas metodologias, processos e práticas, para o desenvolvimento. Com o estudo e experiência da equipe sobre as metodologias ágeis, foi possível identificar aspectos das diversas metodologias, que a equipe utiliza para o desenvolvimento do projeto.

Metodologias, processos e práticas identificados:

  • Scrum:

    Scrum é uma metodologia ágil para gestão e planejamento de projetos de software.

  • XP (Extreme Programming):

    Extreme Programming (XP) é uma metodologia de desenvolvimento de software, seus objetivos são alcançados através de conjuntos de valores, princípios e práticas, que diferem da forma tradicional de se desenvolver software.

  • RUP (Rational Unified Process):

    O Rational Unified Process é um Processo de Engenharia de Software. Ele fornece uma abordagem disciplinada para atribuir tarefas e responsabilidades dentro de uma organização de desenvolvimento.

  • Kanban:

    O sistema kanban é uma metodologia ágil e visual que contribui para o controle de produção e gestão de tarefas

Metodologias de desenvolvimento:

Versão 1.0

Scrum

  • Product Backlog: O Product Backlog é uma lista contendo todas as funcionalidades desejadas para um produto [1]. O Product Backlog da equipe é baseado nas tarefas exigidas pela disciplina e também nas funcionalidades para a criação da aplicação TCM.

  • Sprint Plannig Meeting: Sprint Planning Meeting é uma reunião no início da sprint para o planejamento das atividades [1]. A equipe se reúne via hangouts no início do Sprint, para definir as atividades que serão executadas durante o Sprint priorizando as atividades de acordo com o escopo da disciplina.

  • Sprint Backlog: O Sprint Backlog é uma lista de tarefas que o Scrum Team se compromete a fazer em um Sprint. Os itens do Sprint Backlog são extraídos do Product Backlog [1]. Durante o Sprint Planning Meeting a equipe analisa as tarefas a serem feitas do backlog, pendências e assim é definido o Sprint Backlog.

  • Sprint: O Sprint representa um Time Box dentro do qual atividades devem ser executadas [1]. O Sprint da equipe é um ciclo de uma semana, sendo:

    • Início da Sprint: Segunda-feira
    • Fim da Sprint: Domingo
  • Daily Scrum: Daily Scrum é uma breve reunião diária da equipe, durante a sprint [1]. A equipe utiliza um bot no slack para realizar sua daily, onde as 09:00 horas o bot envia as seguintes perguntas para a equipe: No que você fez ontem? No que você vai trabalhar hoje? e Você teve algum impedimento?

  • Sprint Review Meeting: Sprint Review Meeting é quando a equipe apresenta as funcionalidades implementadas em uma Sprint [1]. No final de toda Sprint a equipe apresenta em uma reunião via hangouts o que foi entregue do planejado, dívidas, pontos negativos e positivos da sprint.

  • Scrum master: O Scrum Master procura assegurar que a equipe respeite e siga os valores e as práticas do Scrum. Ele também protege a equipe assegurando que ela não se comprometa excessivamente com relação àquilo que é capaz de realizar durante um Sprint [1]. O scrum master é definido pela equipe através de um rodízio dos integrantes, realizado no início de toda Sprint.

  • Sprint Retrospective: O Sprint Retrospective ocorre ao final de um Sprint e serve para identificar o que funcionou bem, o que pode ser melhorado e que ações serão tomadas para melhorar [1]. Ao final da Sprint Review Meeting acontece um debate entre os participantes onde a equipe é perguntada sobre os pontos que podem ser melhorados para a próxima sprint.

XP (Extreme Programming)

Valores:

  • Comunicação: O objetivo é garantir que todas as partes envolvidas em um projeto tenham a chance de se compreender da melhor maneira possível [6]. A equipe se comunica diariamente pelos os canais de comunicação (Whatsapp, Slack, Telegram) sobre todos os aspectos relacionados ao projeto.
  • Feedback: Normalmente, quanto mais cedo descobrimos um problema, menos prejuízos ele pode causar e maiores são as chances de resolvê-lo de forma barata [6]. A equipe busca sempre o feedback dos usuários, avaliadores e os próprios membros da equipe.

Práticas:

  • Programação em pares: A Extreme Programming sugere que todo e qualquer código produzido no projeto seja sempre implementado por duas pessoas juntas, diante do mesmo computador, revezando-se no teclado [6]. A equipe utiliza a programação em pares (remotamente utilizando a ferramenta Live Share) como uma forma de verificação, debate e auxílio durante a execução da tarefa.

  • Integração Contínua: Integração contínua consiste em integrar o trabalho, assegurando que a base de código permaneça consistente ao final de cada integração [6]. A equipe utiliza o Github e cada nova funcionalidade a ser integrada deve passar por critérios de aceitação.

  • Refatoração: Refatore impiedosamente para manter o design simples à medida que avança e para evitar confusão e complexidade desnecessárias [3]. A refatoração dos artefatos gerados para o projeto deve ser algo constante com o intuito de sempre melhorá-los.

RUP (Rational Unified Process)

Práticas:

  • Desenvolvimento iterativo: A abordagem iterativa é necessária para permitir uma compreensão crescente do problema por meio de sucessivas refinamentos e para aumentar gradativamente uma solução eficaz em várias iterações. Durante o processo de desenvolvimento do projeto a equipe efetua refinamentos constantes dos artefatos durante cada sprint, com o objetivo de sempre melhorar a qualidade [5].

  • Verificação da qualidade de software: A qualidade deve ser revista com respeito aos requisitos com base na confiabilidade, funcionalidade, e desempenho [5]. A aplicação será constantemente verificada para atender os padrões de qualidade definidos pela equipe e usuários, sendo essas verificações por meio de testes manuais e automatizados.

Kanban

O Kanban é técnica que propõe a utilização de cartões em um quadro para acompanhar visualmente o desenvolvimento de um projeto, informando as suas etapas, andamentos e entregas [2]. A equipe utiliza as issues do Github como os cartões de tarefas e o plugin ZenHub como quadro visual para gerenciar as issues (tarefas). O quadro utilizado pela equipe é dividido em quatro partes:

  • Backlog: Contém todas as tarefas do projeto.
  • Sprint Backlog: Contém as tarefas a serem executadas durante a Sprint.
  • Em andamento: Contém as tarefas que estão em andamento.
  • Revisão: Contém as tarefas que precisam ser revisadas para conclusão.
  • Concluido: Contém as tarefas que já foram revisadas e concluídas.

Conclusão

Com o estudo das metodologias, processos e práticas ágeis, foi possível identificar quais aspectos a equipe utiliza no desenvolvimento do projeto, estruturando uma metodologia para o projeto e satisfazendo os critérios da aplicação e da disciplina.

Referências

[1] SCRUM, Disponivel em: https://www.desenvolvimentoagil.com.br/scrum/

[2] Sistema Kanban: Como utilizar para beneficiar sua empresa?, Disponivel em: https://artia.com/blog/como-utilizar-sistema-kanban-para-beneficiar-sua-empresa/

[3] Extreme Programming:A gentle introduction, Disponivel em: http://www.extremeprogramming.org/

[4] Metodologia de pesquisa: guia rápido de possibilidades, Disponivel em: https://blog.mettzer.com/metodologia-de-pesquisa/

[5] Rational Unified Process, Disponivel em: https://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/1251_bestpractices_TP026B.pdf?mhsrc=ibmsearch_a&mhq=RUP

[6] EXTREME PROGRAMMING, Disponivel em: https://www.desenvolvimentoagil.com.br/xp/

Autor(es)

DataVersãoDescriçãoAutor(es)
05/09/201.0Criação do documento, introdução e metodologiaJoão Pedro e Moacir Mascarenha
06/09/201.1Adicionado Metodologia desenvolvimento: ScrumJoão Pedro e Moacir Mascarenha
06/09/201.2Adicionado Metodologia desenvolvimento: KanbanJoão Pedro e Moacir Mascarenha
06/09/201.3Adicionado Metodologia desenvolvimento: XPJoão Pedro e Moacir Mascarenha
06/09/201.4Adicionado Metodologia desenvolvimento: RUP e conclusãoJoão Pedro e Moacir Mascarenha
09/09/201.5Revisão do documentoRenan Cristyan
09/09/201.6Ajuste no topico ScrumJoão Pedro e Matheus Estanislau
← ObservaçãoDiagrama da metodologia →
  • Introdução
  • Metodologia
  • Metodologias de desenvolvimento:
    • Versão 1.0
    • Scrum
    • XP (Extreme Programming)
    • RUP (Rational Unified Process)
    • Kanban
  • Conclusão
  • Referências
  • Autor(es)

Tennis Cup Limited