Plano de Ensino
O plano de Ensino está disponibilizado aqui
Organização da Disciplina
-
Organização do Github com todos os projetos já desenvolvidos - https://github.com/fga-eps-mds/
-
Material didático de apoio (aulas, material teórico e tutoriais feito pelos alunos) - https://github.com/fga-eps-mds/A-Disciplina-MDS-EPS
-
Videos com o material assincrono da disciplina - Canal Youtube
Projetos/Grupos
O tema do semestre é Visualização de dados. Todos os projetos possuem um contexto específico, com o objetivo comum à todos os projetos de criar indicadores a partir dos dados e apresentar para o usuário.
São três projetos e cada projeto é composto por até 3 squads. Cada squad tem um tech lead, product Owner/Manager, DevOps, Arquiteto, e desenvolvedores.
Indicadores SIGAA
- Projeto Indicaa
Indicadores Alunos UnB
Indicadores Brasil.io
Critérios de Avaliação
- Três categorias de avaliação: "iniciante", "saudável", "maduro" e três aspectos de avaliação: "Código", "Equipe" e "Projeto"
Etapa Iniciante
- peso: 20%
- Código
- repositório configurado
- licença de software
- ambiente de desenvolvimento configurado
- Equipe
- atribuições de papéis
- standup e mobs iniciais rolando
- ambiente de trabalho informativo criado (Github)
- definida política de horas extras
- planilha para controle de horas trabalhadas
- execução dos rituais do scrum
- Projeto
- meio de comunicação definido
- Documentos do projeto revisados
Etapa Saudável
- peso: 30%
- Código
- commits frequentes
- início testes
- início pipeline de CI/CD (testes + entregável) -Equipe
- bom rodízio de pares
- consistência em mobs
- Planejamento maduro
- Velocity estável
- Métricas de produtividade equilibada
- Comunicação efetiva
- Projeto
- boa comunicação
- ter feito a primeira entrega
- Ambiente de homologação
Etapa Maduro
- peso: 50%
- Código
- tracking
- testes automatizados
- cobertura de testes
- pipeline de CI/CD (testes + entregável)
- artefatos para continuidade do projeto
- Equipe
- TDD
- auto organização ("coach invisível")
- Projeto
- demais entregas (funcionalidades implementadas + manutenibilidade - como outra equipe pode continuar o projeto)
Obs.: Por manutenibilidade entende-se documentação sobre como ter um ambiente de desenvolvimento completo com os testes passando, ponteiros para pontos interessantes no código para novos contribuidores, e funcionalidades mais simples para estes implementarem enquanto conhecem o sistema.
Aulas
Data | Dia da Semana | Aula |
---|---|---|
18/01/2022 | Terça-feira | Sprint 0 - Aula 01 Planejamento sprint 0 Apresentação da disciplina Definição da dinâmica do curso Iniciar os treinamentos (git, ágil, documentos) |
20/01/2022 | Quinta-feira | Sprint 0 - Aula 2 Ciclo de projeto Apresentação dos Projetos Aula: Revisão de Git https://education.github.com/git-cheat-sheet-education.pdf |
25/01/2022 | Terça-feira | Sprint 01 - Aula 01 Planejamento Sprint 1 Definição dos projetos Iniciar a definição de escopo do projeto (Roadmap, documento de visão, EAP, TAP) - Estudar documento de arquitetura |
27/01/2022 | Quinta-feira | Sprint 01 - Aula 02 Modelos de processo Métodos ágeis Planejamento ágil Material assincrono: https://youtu.be/OzTGRO7UGyY Material assincrono: https://youtu.be/WiRwKm9M5w8 |
01/02/2022 | Terça-feira | Sprint 02 - Aula 01 Planejamento Sprint 02 Scrum/Kanban/spotify Papéis, artefatos, rituais Documentos: planning sprint/review sprint/issues Revisar escopo projeto, iniciar documento de Arquitetura, escolha tecnológica. Treinamento papéis, Aula assincrona: https://youtu.be/NoGhC1LaaAE https://youtu.be/Q3MxVo9zdvU |
03/02/2022 | Quinta-feira | Sprint 02 - Aula 02 Requisitos ágeis (Épicos, features, História de usuário, task, bugs) Artefatos: EAP, Documento de Visão, Backlog de produto, Backlog da sprint, documento de requisitos funcionais/não funcionais Treinamento: uso do zenhub Slide da aula: https://docs.google.com/presentation/d/1P2-Odi4s-IZ2-OGN9Xqcb5ngqczZDBszqi4w8swawhE/edit?usp=sharing Material complementar (Design com olhar disruptivo): https://youtu.be/vlbB0xYRulQ |
08/02/2022 | Terça-feira | Sprint 03 aula 01 Show me the code Grupos apresentarem documentação |
10/02/2022 | Quinta-feira | Sprint 03 - Aula 02 Arquitetura de software Components, Camadas, diagramas UMLs Documentos: documento de arquitetura, pipeline Material assíncrono: https://youtu.be/oCjZNteAvg0 https://youtu.be/RCnmxKZjIQM Material de estudo: https://martinfowler.com/architecture/ |
15/02/2022 | Terça-feira | Sprint 04 - Aula 01 Controle de versão e desenvolvimento colaborativo Gitflow https://about.gitlab.com/images/press/git-cheat-sheet.pdf https://docs.gitlab.com/ee/topics/gitlab_flow.html |
17/02/2022 | Quinta-feira | Sprint 04 - Aula 02 Política de Branches - aprendendo o fluxo de colaboração - Pull request, merge request, revisão, papel mantenedor. https://github.com/fga-eps-mds/Qualifying-Software-Engineers-Undergraduates-in-DevOps/issues/24 |
22/02/2022 | Terça-feira | Sprint 05 - Aula 01 Papéis ágeis - Scrum master Produtividade, métricas ágeis (retrospectiva, burndown, velocity, quadro de conhecimento, health check), maturidade das práticas (comunicação nas issues/PRs, rituais time box, pareamento) |
24/02/2022 | Quinta-feira | Sprint 05 - aula 02 Controle de Versão e Integração Contínua Isolamento de ambiente Aula Assíncrona: https://www.youtube.com/watch?v=-Vui7mdYkgk&t=1920s https://www.youtube.com/watch?v=FBrUzyKviJw |
01/03/2022 | Terça-feira | Início Sprint 06 Feriado |
03/03/2022 | Quinta-feira | Sprint 06 - aula 02 Entrega Release O que é release - Release Train Release notes - https://github.com/RocketChat/Rocket.Chat/releases/tag/4.5.0 Material de Apoio - https://www.thoughtworks.com/en-br/radar/techniques/release-train https://www.scaledagileframework.com/agile-release-train/ |
08/03/2022 | Terça-feira | Release 01 Vídeo por projeto (Máx 4 minutos) Vídeo por squad (Max 4 minutos) |
10/03/2022 | Quinta-feira | Sprint 06 - aula 02 Soft Skills - agilista - agile brazil Slides - https://drive.google.com/file/d/1L01HuKcFPueg6wPwlPdCHgPWN8MQe7nk/view?usp=sharing |
15/03/2022 | Terça-feira | Sprint 07 - aula 01 Síncrona - 10 min Início Sprint |
17/03/2022 | Quinta-feira | Sprint 07 - aula 02 Extreme Programming (XP) O que é? Práticas (programação pareada, testes automatizados, testes unitários, integração) Slides: https://www.slideshare.net/hotpop/introduo-programao-extrema-extreme-programming-xp |
22/03/2022 | Terça-feira | Sprint 08 -Aula 01 Início Sprint |
24/03/2022 | Quinta-feira | Sprint 08 - Aula 02 Testes Testes unitários Testes integração Teste aceitação Testes automatizados práticas de testes - TDD + pair programming Git colaborativo práticas de Gerência de Configuração |
29/03/2022 | Terça-feira | Sprint 09 - Aula 01 Síncrona - Avisos Planning - trabalho dos grupos |
31/03/2022 | Quinta-feira | Sprint 09 - Aula 02 Qualidade de software Qualidade estática de software Clean Code/SOLID Code climate, LINT |
05/04/2022 | Terça-feira | Sprint 10 - Aula 01 Síncrona - Avisos Início Sprint |
07/04/2022 | Quinta-feira | Sprint 10 - Aula 02 Pipeline de Integração Stages Build automatizada Testes automatizados qualidade de software deploy |
12/04/2022 | Terça-feira | Sprint 11 - Aula 01 Síncrona - Avisos Início Sprint |
14/04/2022 | Quinta-feira | Sprint 11 - aula 02 Aula: Licenças de software livre Copyright, patentes e aspectos legais Outros modelos de processo Cascata / RUP |
19/04/2022 | Terça-feira | Sprint 12 - aula 01 Início Sprint |
21/04/2022 | Quinta-feira | Feriado |
26/04/2022 | Terça-feira | Release 02 - MVP - Poc |
28/04/2022 | Quinta-feira | Retrospectiva Disciplina |
03/05/2022 | Terça-feira | |
05/05/2022 | Quinta-feira | Entrega notas final - revisão |