LabXP2020

De CCSL
Ir para navegação Ir para pesquisar

Laboratório de Programação Extrema 2020

As metodologias ágeis de desenvolvimento de software têm se mostrado bastante eficazes para o desenvolvimento de sistemas de software. Neste curso, os estudantes utilizam a metodologia de Programação eXtrema (XP), sob a orientação do professor e monitor (meta-coach), para desenvolver um sistema de software orientado a objetos de alta complexidade. Através dessa experiência prática no laboratório, se faz possível a aquisição de conhecimentos e a assimilação de práticas das metodologias ágeis que serão extremamente importantes para o estudante em sua futura carreira, seja ela acadêmica ou empresarial, como desenvolvedor de software.


Palestrantes externos


Projetos

Projetos da vida real com os mais variados temas com o único requisito de possuírem licença livre.


Possibilidades de projetos

Organizados por ordem de apresentação

  • Digita Fácil - Lívia
  • KUnit - Marcelo
  • Monitoria do IME - Nina
  • GETREN - Vitória
  • Maratona - Pedro
  • FAU ABERTA - Beatriz
  • SPIRA - Renato
  • EviDent - Gabriela
  • Reconhecimento de Veículos - Guilherme
  • Museu da Pessoa - Danielle
  • Dente Virtual - Lisa
  • Cozo - João
  • Empresas DNA USP - Geciane
  • SortingHat - Thatiane
  • Portal Vestibulando - Ricardo

Indicar preferência de projeto

Cada aluno deverá indicar 3 projetos, em ordem de preferência, bem como compartilhar conosco algumas informações para que possamos selecionar os projetos e compôr os times.


Selecionados

  • SPIRA

- Alexia Scheffer - Matheus Conce - Ricardo Kojo - Thais Lasso - Victor Miranda - Vinicius Pereira - Wander Souza

repositório: https://github.com/spirabr


  • Museu da Pessoa

- Andrew Lopes - Antônio Lima - Artur Magalhães - Diego de Morais - Pedro Almeida - Renan Laiz

repositório: https://github.com/Museu-da-Pessoa-XP


  • FAU Aberta

- Jean Carlo Pereira - Kaique Komata - Luciana Marques - Luís Felipe Abbud - Patrícia Jordão - Priscila Lima

repositório: https://gitlab.com/LucianaMarques/fau-aberta


  • Maratona Runtime Core

- Alan - Cainã - Gabriel - Pedro - Jiang

repositório: https://github.com/maratona-run-time/Maratona-Runtime


  • Dente Virtual

- Ana Beatriz Machado Cuelbas - Eduardo Yukio Rodrigues - Gabriel de Castro Michelassi - Gabriel Miranda de Araújo - Giovana Armani de Lima - Guilherme Balog Gardino - Tiago Marino Silva

repositório: https://github.com/gi-armani/Dente-virtual


  • GETREN

- Bruno Romano - João Gabriel Lembo - João Pedro Toledo - Leonardo Pereira - Victor Lima

repositório: https://github.com/availablenick/getren


Dias importantes

Test Day

  • Cada equipe escolherá um dia em que estará concentrada apenas em testes.

Refactoring Day

  • Cada equipe escolherá um dia em que estará concentrada apenas em refatoração.

Critérios de Avaliação

Serão atribuídas duas notas neste semestre, de acordo com os critérios abaixo:

Nota 1

- três etapas: "Iniciante", "Saudável" e "Maduro" - três aspectos: "Código", "Equipe" e "Projeto"

Etapa Iniciante

  • peso: 20%
  • Código
    • repositório configurado
    • ambiente de desenvolvimento configurado
  • Equipe
    • atribuições de papéis
    • standup e mobs iniciais rolando
    • ambiente de trabalho informativo criado
    • definida política de horas extras
  • Projeto
    • meio de comunicação com cliente definido

Etapa Saudável

  • peso: 30%
  • Código
    • testes
    • commits frequentes
    • início de integração contínua (CI)
  • Equipe
    • bom rodízio de pares
    • consistência em mobs
  • Projeto
    • boa comunicação com o cliente
    • ter feito a primeira entrega

Etapa Maduro

  • peso: 50%
  • Código
    • tracking
    • integração contínua para valer
    • cobertura de testes
    • artefatos para continuidade do projeto
  • Equipe
    • TDD
    • auto organização ("coach invisível")
  • Projeto
    • demais entregas


Nota 2

  • Individuais:
    • Presença (25%)
    • Avaliação do Coach, meta-coaches avaliam os coaches (25%)
  • Equipe:
    • Satisfação do cliente (25%)
    • Projeto (funcionalidades implementadas + manutenibilidade - como outra equipe pode continuar o projeto) (25%)

Obs.: Por manutenabilidade entende-se documentação sobre como ter um ambiente de desenvolvimento completo com os testes passando e ponteiros para pontos interessantes no código para novos novos contribuidores e funcionalidades mais simples para estes implementarem e conhecerem o sistema.


Professor e monitor

  • João Francisco Lino Daniel - (joaofran@ime.usp.br) (monitor)


Links e materiais úteis