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. Para isso, precisamos de DADOS!! As equipes, ou squads, são compostas por até 8 integrantes, serão responsável pela Extração de Dados (Webscraping), pelo armazenamentos dos dados (bancos de dados) e pela apresentação/processamento dos dados.
Quais são as fontes dos dados? Vocês escolhem.. pode ser requisição de uma API, pode ser via webscraping, pode ser fazendo a copia de um banco de dados. Alguns contextos interessantes: Brasil.io, o proprio Siga da unb, dados de saúde, etc.
Cada grupo deve definir o seu próprio escopo.
Apresentações
- Release 1 (major) - 10 de dezembro de 2022
- Release 2 (major) - 26 de janeiro de 2022
Release I
-
A Release 1 A ordem de apresentacao é sorteada, mas os grupos sao podem trocar entre si a ordem.
-
Peso da R1 - 40% da nota de projeto
-
Tempo de apresentação: 15 minutos
-
Artefatos avaliados: (I) Documento de Visão do Projeto, (II) Planejamento/Comunicação Interna e Externa (agenda de trabalho + ferramentas), Documento de Arquitetura do Projeto, (III) Especificação das historias de usuários (critérios de aceitação), (IV) Configuração do repositório de acordo com os padrões de comunidade de software livre (Github), (V) Wiki atualizada (VI) Protótipo de alta fidelidade
-
Praticas avaliadas: pareamento, produtividade, participação nos rituais, desempenho
-
Detalhamento da avaliação: Código-Fonte/entregas (30%), (II) Coerência entre a documentação e implementação (10%), (III) Documentação: Doc. visão (15%), doc arq (15%), Requisitos Especificados (10%), Protótipo (10%), (IV) critério extra(10%)
Release II
-
A Release 2 A ordem de apresentacao é sorteada, mas os grupos sao podem trocar entre si a ordem.
-
Peso da R2 - 60% da nota de projeto
-
Tempo de apresentacao: 15 minutos
-
Detalhe da avaliacao: (I) Codigo-fonte entregue (60%): features, implantacao, qualidade, cobertura de testes, testes de aceitacao, (II) documentação/evidências da execução metodologia de desenvolvimento contínua (30%), (III) Tracking (10%)
Critérios de Avaliação
Os critérios de avaliação estão detalhados no plano e ensino aqui.
As notas são dadas em cada critério a partir do nível de maturidade individual na disciplina, de acordo com as três categorias abaixo:
- 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
- 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 |
---|---|---|
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) | |
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 | |
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 | |
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 | |
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 | |
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 | |
Terça-feira | Sprint 03 aula 01 Show me the code Grupos apresentarem documentação | |
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/ | |
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 | |
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 | |
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) | |
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 | |
Terça-feira | Início Sprint 06 Feriado | |
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/ | |
Terça-feira | Release 01 Vídeo por projeto (Máx 4 minutos) Vídeo por squad (Max 4 minutos) | |
Quinta-feira | Sprint 06 - aula 02 Soft Skills - agilista - agile brazil Slides - https://drive.google.com/file/d/1L01HuKcFPueg6wPwlPdCHgPWN8MQe7nk/view?usp=sharing | |
Terça-feira | Sprint 07 - aula 01 Síncrona - 10 min Início Sprint | |
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 | |
Terça-feira | Sprint 08 -Aula 01 Início Sprint | |
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 Slides: https://www.slideshare.net/hotpop/introduo-qualidade-e-testes-geis-de-software Git colaborativo práticas de Gerência de Configuração https://www.slideshare.net/hotpop/gerncia-de-configurao-gil Material complementar: Pytest - https://medium.com/assertqualityassurance/tutorial-de-pytest-para-iniciantes-cbdd81c6d761 https://github.com/pluralsight/intro-to-pytest | |
Terça-feira | Sprint 09 - Aula 01 Síncrona - Avisos Planning - trabalho dos grupos | |
Quinta-feira | Sprint 09 - Aula 02 Qualidade de software Qualidade estática de software Clean Code/SOLID Code climate, LINT Slides: Revisão de Codigo/Code Review: https://github.com/thamara/thamara/blob/7111f8907f2f2737902be4e60d7dc7f56e5d1bcc/presentations/2020-11-19%20Shes%20Tech%20-%20Code%20Review/Revisão%20de%20Código.pdf Dicas: https://github.com/MunGell/awesome-for-beginners | |
Terça-feira | Sprint 10 - Aula 01 Síncrona - Avisos Início Sprint | |
Quinta-feira | Sprint 10 - Aula 02 Pipeline de Integração Stages Build automatizada Testes automatizados qualidade de software deploy | |
Terça-feira | Sprint 11 - Aula 01 Síncrona - Avisos Início Sprint | |
Quinta-feira | Sprint 11 - aula 02 Aula: Licenças de software livre Copyright, patentes e aspectos legais Outros modelos de processo Cascata / RUP | |
Terça-feira | Sprint 12 - aula 01 Início Sprint | |
Quinta-feira | Feriado | |
Terça-feira | Release 02 - MVP - Poc | |
Quinta-feira | Retrospectiva Disciplina | |
Terça-feira | ||
Quinta-feira | Entrega notas final - revisão |