LabXP2020
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.
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
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
- Alfredo Goldman (gold@ime.usp.br)
- João Francisco Lino Daniel - (joaofran@ime.usp.br) (monitor)
Links e materiais úteis
- Link para o curso online do Udacity sobre testes: https://www.udacity.com/course/cs258
- Resumo do capítulo 3 do livro Agile Retrospectives, Making Good Teams Great. Liderando Retrospectivas
- Manifesto ágil: http://agilemanifesto.org/iso/ptbr/
- Survey agile: http://www.versionone.com/about-us/press-releases/article/VersionOne-Releases-9th-Annual-State-of-Agile-Survey-Results/
- Métodos Ágeis: http://www.desenvolvimentoagil.com.br/
- DDD (Notas do livro by Leonardo Leite): https://polignu.org/artigo/notas-sobre-ddd