Skip to content
Claudia Melo edited this page Sep 7, 2020 · 34 revisions

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.

Sumário

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ópicos

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:
  • XUnit Test Patterns
  • Growing Object-Oriented Systems Guided by Tests.
  • Agile principles patterns and practices in C#.
  • Agile Testing; Lisa Crispin, Janet Gregory.
  • More Agile Testing; Janet Gregory, Lisa Crispin.
  • Testing Extreme Programming by Lisa Crispin.

Avaliação

Avaliação dos times (80%) + Avaliação individual (20%). A avaliação individual calibrará a avaliação de times.

Time: 1a etapa (15%)

  • 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)?

Time: 2a etapa (20%)

  • 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?

Time: 3a etapa (65%) - Final

  • 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).

Individual: Avaliação 360o

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.

Individual: Presença

Critérios de Documentação do Projeto

Lista de critérios de documentação que serão avaliados como parte da 3a etapa.

Apresentações finais

Lista de itens recomendáveis para sua apresentação interna (21/06) e externa (26/06).

Python

Montando o seu ambiente para começar a desenvolver em Python:

Boas práticas nas mensagens de commit

  • 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

Aprenda python

CI (Continuous integration)

CD (Continuous deployment)

Design e Arquitetura

API Rest

Guia de API Rest para servir Data Viz

Preparando-se para carreira em TI

  • Livro Cracking the code interview (Google)