-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Bem-vindas(os) à wiki de Engenharia de Software, Universidade de Brasília (UnB), ministrada por Claudia Melo. Esta edição aconteceu em 2018 e é baseada na minha experiência como profissional na indústria e pesquisadora na área, além do curso ministrado no IME-USP desde 2001.
Este sumário contém algumas dicas de ferramentas, conceitos e métodos úteis para utilizar durante o desenvolvimento de software ágil. Curiosa/o para ver um pouco do curso? Veja as fotos!
Nosso objetivo é aprender Engenharia de Software e Agilidade entregando software funcionando para um cliente real. Isso é possível usando uma estratégia que combina teoria e prática na medida certa, sempre respeitando o ritmo de aprendizagem turma e do cliente.
Clientes:
Tópico | Conteúdo | Links interessantes |
---|---|---|
Intro à Engenharia de Software | Notas de aula | Livros: Roger S. Pressman, Software Engineering, A Practitioner’s Approach; Ian Sommerville, Software Engineering, Addison-Wesley, 9a ed., 2010; Kent Beck and Cynthia Andres, Extreme Programming Explained: Embrace Change, Addison-Wesley, 2a ed., 2004. |
Intro Métodos ágeis | Notas de aula | Livros: [1] Kent Beck and Cynthia Andres, extreme Programming: Explained � Second Edition, Addison-Wesley, 2004. [2] Kent Beck, Test-Driven Development: By Example, Addison-Wesley, 2002. [3] P. McBreen, Questioning Extreme Programming, Addison Wesley, 2003. [4] Ken Schwaber and Mike Beedle, Agile Software Development with SCRUM, Prentice Hall, 2001. |
Intro Programação Extrema (Extreme Programming - XP) | Notas de aula |
Links úteis:
|
Requisitos ágeis | Notas de aula | User Stories Applied; Mike Cohn. Agile Estimating and Planning; Mike Cohn |
Gerência de configuração ágil | Notas de aula | Links úteis: |
Testes ágeis | Notas de aula |
Links úteis: Livros relacionados:
|
Avaliação dos times (80%) + Avaliação individual (20%). A avaliação individual calibrará a avaliação de times.
- Infra-estrutura pronta para iniciar projeto?
- Equipe organizada para iniciar o projeto (ex: Tecnologia definida, pré-requisitos mínimos identificados, backlog inicial montado, área de trabalho montada)?
- Planejamento/Comunicação Interna e Externa?
- Histórias definidas, claras, concisas, entregam valor (INVEST)?
- Ambiente de versionamento/commits frequentes?
- Testes rodando e automatizados?
- Rodízio de pares?
- Pelo menos uma entrega para o cliente?
- Showcase bem conduzido, claro, conciso?
- Histórias definidas, claras, concisas, entregam valor (INVEST)?
- Tracking atualizado?
- Ambiente de versionamento/commits frequentes?
- Testes rodando e automatizados?
- Integração contínua?
- Entregas frequentes?
- Cobertura dos testes?
- TDD experimentado e usado (ou não utilizado com boa justificativa)?
- PP experimentado e usado (ou não utilizado com boa justificativa)?
- Artefatos para garantir continuidade do projeto?
- Cliente satisfeito?
- Showcase do Projeto bem conduzido (funcionalidades implementadas + repasse para evolução futura)? (ver detalhes na próxima seção).
- Documentação clara, objetiva, conduzindo qualquer pessoa a montar o ambiente corretamente e contribuir com o projeto? (ver detalhes na próxima seção).
Avaliação das pessoas do time sobre si mesmas e as demais. Será triangulada com a avaliação da docente. Utilizada para calibrar a nota final individual. Preencher o formulário até 19/06.
Lista de critérios de documentação que serão avaliados como parte da 3a etapa.
Lista de itens recomendáveis para sua apresentação interna (21/06) e externa (26/06).
- opção 1) post sobre Guia definitivo para organizar meu ambiente Python
- opção 2) tutorial passo a passo em vários sistemas operacionais
- sobre ambiente virtual (o tal virtualenv): no começo da intro de instalação Django tem um bom tutorial (mas não precisam aprender django agora)
- Teste de unidade em python, artigo Dr. Dobbs
- Escreva a mensagem sempre no infinitivo. Tente sempre responder o que o commit fará ao ser incorporado à master. This commit will "Improve test coverage". Desta maneira você terá uma mensagem com significância sem precisar pensar muito.
- Mantenha a mensagem curta. Tente sempre manter abaixo de 72 caracteres, detalhes e derivados devem ir na parte de comentários.
- Não termine a mensagem com ponto final.
- Mais informações
- Aprendam as estruturas básicas de programação em Python:
- Introdução à Ciência da Computação com Python Parte 1 (Coursera, pelo meu orientador de doutorado, Prof. Fabio Kon, IME-USP) e Parte 2.
- Material de estudo (aberto) indicado pelo Luciano Ramalho, autor do Fluent Python.
- Intro de python, tutorial DjangoGirls
- O que é integração contínua? [TODO]
- Livro Cracking the code interview (Google)
- Página Principal
- Métricas de Software
-
CI (Continuous integration)
- O que é integração contínua? [TODO]
- CD (Continuous deployment)
- API Rest
- Guia de API Rest para servir Data Viz