Plano de Ensino

O plano de Ensino está disponibilizado aqui

Organização da Disciplina

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

Indicadores Alunos UnB

Indicadores Brasil.io

Projeto Brasilio

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

DataDia da SemanaAula
18/01/2022Terça-feiraSprint 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/2022Quinta-feiraSprint 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/2022Terça-feiraSprint 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/2022Quinta-feiraSprint 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/2022Terça-feiraSprint 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/2022Quinta-feiraSprint 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/2022Terça-feiraSprint 03 aula 01 Show me the code Grupos apresentarem documentação
10/02/2022Quinta-feiraSprint 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/2022Terça-feiraSprint 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/2022Quinta-feiraSprint 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/2022Terça-feiraSprint 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/2022Quinta-feiraSprint 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/2022Terça-feiraInício Sprint 06 Feriado
03/03/2022Quinta-feiraSprint 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/2022Terça-feiraRelease 01 Vídeo por projeto (Máx 4 minutos) Vídeo por squad (Max 4 minutos)
10/03/2022Quinta-feiraSprint 06 - aula 02 Soft Skills - agilista - agile brazil Slides - https://drive.google.com/file/d/1L01HuKcFPueg6wPwlPdCHgPWN8MQe7nk/view?usp=sharing
15/03/2022Terça-feiraSprint 07 - aula 01 Síncrona - 10 min Início Sprint
17/03/2022Quinta-feiraSprint 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/2022Terça-feiraSprint 08 -Aula 01 Início Sprint
24/03/2022Quinta-feiraSprint 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/2022Terça-feiraSprint 09 - Aula 01 Síncrona - Avisos Planning - trabalho dos grupos
31/03/2022Quinta-feiraSprint 09 - Aula 02 Qualidade de software Qualidade estática de software Clean Code/SOLID Code climate, LINT
05/04/2022Terça-feiraSprint 10 - Aula 01 Síncrona - Avisos Início Sprint
07/04/2022Quinta-feiraSprint 10 - Aula 02 Pipeline de Integração Stages Build automatizada Testes automatizados qualidade de software deploy
12/04/2022Terça-feiraSprint 11 - Aula 01 Síncrona - Avisos Início Sprint
14/04/2022Quinta-feiraSprint 11 - aula 02 Aula: Licenças de software livre Copyright, patentes e aspectos legais Outros modelos de processo Cascata / RUP
19/04/2022Terça-feiraSprint 12 - aula 01 Início Sprint
21/04/2022Quinta-feiraFeriado
26/04/2022Terça-feiraRelease 02 - MVP - Poc
28/04/2022Quinta-feiraRetrospectiva Disciplina
03/05/2022Terça-feira
05/05/2022Quinta-feiraEntrega notas final - revisão