XP Flashcards

1
Q

O que é eXtreme Programming (XP)?

A

O eXtreme Programming é uma metodologia ágil de desenvolvimento de software para equipes pequenas, coesas e multidisciplinares cujos projetos possuem requisitos vagos e em constante mudança.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qual é o modelo de história de usuário?

A

Como um [ATOR] eu quero/preciso de/devo/gostaria de [AÇÃO] para [FUNCIONALIDADE].

Como um vendedor responsável pelo setor de livros eu quero procurar por livros filtrando por nome para que seja possível verificar se o livro X está disponível para compra.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quais são os valores fundamentais do XP?

A

SR. FCC

Simplicidade:
XP incentiva que se comece com a solução mais simples. Funcionalidades adicionais podem ser acrescentadas posteriormente. Alega-se que desenvolver funções que não são necessárias hoje pode ser prejudicial, na medida em que futuramente essa função pode não ser mais útil.

Respeito:
Aqui se inclui o respeito pelos outros, assim como o auto-respeito. Membros devem respeitar seu próprio trabalho, sempre se esforçando para oferecer alta qualidade e buscando o melhor projeto para a solução através de refatoração.

Feedback:
O feedback ocorre quando os testes unitários ou testes de integração retornam o estado do sistema após a implementação das mudanças. Ademais, como os clientes participam do desenvolvimento de testes, eles podem dar um feedback instantâneo.

Coragem:
A coragem permite que os desenvolvedores se sintam confortáveis ao refatorar o seu código, quando necessário. Eventualmente, há de se ter coragem para jogar fora um código ou para remover um código obsoleto, não importa quanto esforço e tempo se gastou para produzi-lo.
Além disso, coragem significa persistência, pois um programador pode se encontrar preso em um problema complexo durante um dia inteiro sem conseguir resolver.

Comunicação:
Para se desenvolver um sistema de software, exige-se comunicar os requisitos de sistema para os desenvolvedores. Em metodologias formais de desenvolvimento de software, esta tarefa é realizada por meio de documentação. O Extreme Programming favorece projetos simples, metáforas comuns, a colaboração dos usuários, programadores e outros stakeholders, a comunicação verbal frequente e o feedback.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quais são os princípios básicos do XP?

A

Feedback rápido:
Retorno tempestivo do cliente, isto é, o sistema é apresentado e – a cada mudança – há um novo retorno positivo ou negativo do cliente.

Abraçar mudanças:
Mudanças devem ser bem-vindas e ocorrerão de acordo com o melhor entendimento do projeto.

Presumir simplicidade:
Todo problema deve ser tratado para ser resolvido da forma mais simples possível.

Mudanças incrementais:
A solução deve ser aperfeiçoada a cada iteração de modo a satisfazer, ao fim, as expectativas do usuário.

Trabalho de qualidade:
A qualidade jamais deve ser comprometida – essa é uma das razões para se ter a codificação dos testes antes da codificação do sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que é o planejamento incremental no XP?

A

Os requisitos são registrados em cartões de histórias e as histórias a serem incluídas em um release são determinadas pelo tempo disponível e sua prioridade relativa. Os desenvolvedores dividem essas histórias em tarefas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que são pequenos releases?

A

O conjunto mínimo útil de funcionalidade que agrega valor ao negócio é desenvolvido primeiro. Releases do sistema são frequentes e adicionam funcionalidade incrementalmente ao primeiro release.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Por que se mantém um Projeto Simples no XP?

A

Para que se atenda os requisitos atuais e nada mais para evitar desperdícios.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

No que consiste o desenvolvimento test-first?

A

Um framework automatizado de teste unitário é usado para escrever os testes para uma nova parte da funcionalidade antes que esta seja implementada. Portanto, primeiro se escreve o teste, depois faz-se a implementação.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que significa a prática de refactoring?

A

Espera-se que todos os desenvolvedores recriem o código continuamente tão logo os aprimoramentos do código forem encontrados. Isso torna o código simples de entender e fácil de manter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Por que é feita a programação em pares no XP?

A

Para que atuem um verificando o trabalho do outro e fornecendo apoio para realizar sempre um bom trabalho. Eles utilizam o mesmo mouse, teclado e monitor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Como explicar a propriedade coletiva do XP?

A

FAMOSO COMUNISMO

Os pares de desenvolvedores trabalham em todas as áreas do sistema, de tal maneira que não se formem ilhas de conhecimento, com todos os desenvolvedores de posse de todo o código. Qualquer um pode mudar qualquer coisa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Do que se trata a prática de Integração Contínua no XP?

A

Ela diz que tão logo o trabalho em tarefa seja concluído, este é integrado ao sistema. Além disso, são realizados testes unitários.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

O que seria um ritmo sustentável para a programação XP?

A

Grandes quantidades de horas extras não são consideradas aceitáveis, pois, no médio prazo, há uma redução na qualidade do código e na produtividade. Trabalhar por longos períodos se torna contraproducente – recomenda-se 40 horas semanais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Como é feita a comunicação entre a equipe?

A

A equipe se comunica sobre o desenvolvimento de software por meio de metáforas, caso consiga encontrar uma que realmente faça sentido dentro do contexto e possa facilitar a comunicação.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

O que significa dizer um cliente on-site?

A

Um representante do usuário final do sistema deve estar disponível em tempo integral para apoiar a equipe. No XP, o cliente é um membro da equipe de desenvolvimento e é responsável por trazer os requisitos do sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Por que as reuniões são feitas em pé?

A

Reuniões são realizadas em pé para não se perder o foco nos assuntos, produzindo reuniões mais rápidas, somente abordando as tarefas realizadas e tarefas a realizar pela equipe no futuro.

17
Q

No que consiste o jogo do planejamento?

A

O planejamento de um release e das iterações são feitos com base nas histórias e conta com a colaboração de toda equipe de desenvolvimento, inclusive o cliente, divididos em papéis: negócio e técnico.

Os clientes atribuem valor à história e os desenvolvedores estimam um custo medido em semanas.

18
Q

O que são cartões CRC?

A

A XP estimula o uso de cartões CRC como um mecanismo eficaz para pensar o software em um contexto orientado a objetos. Os cartões CRC (classe-responsabilidade-colaborador) identificam e organizam as classes orientadas a objetos relevantes para o incremento de software corrente.

19
Q

Quais são as etapas da metodologia XP?

A

P P C T

Planejamento (histórias de usuário, critérios de teste de aceitação, plano de iteração)

Projeto (projeto simples, cartões CRC, soluções de ponta)

Codificação (programação em pares, refactoring)

Teste (teste de aceitação, incremento de software)

testes unitários + integração contínua