Desenvolvimento Ágil de Software

22
Licença de distribuição e uso

description

Apresentação sobre as aspectos da Engenharia de Software, sua evolução e a contribuição de Agile.

Transcript of Desenvolvimento Ágil de Software

Page 1: Desenvolvimento Ágil de Software

Licença de distribuição e uso

Page 2: Desenvolvimento Ágil de Software

Heitor Roriz Filho, MSc, CSP

Agile Coach and Trainer

Page 3: Desenvolvimento Ágil de Software

Há 17 anos no mercado

Desenvolvedor de software◦ Natural, Cobol, Clipper, Delphi, Java

Analista de Sistemas

ScrumMaster, Product Owner

Treinamento e coaching desde 2007

Agile Coach and Trainer, Rally Software◦ América Latina e Brasil

◦ Inglês, português, espanhol e alemão

Fortalecimento da comunidade

Agile Software Engineering Heitor Roriz Filho

www.massimus.com

Page 4: Desenvolvimento Ágil de Software

Treinamentos ◦ Scrum para PMPs (Agile PM)

◦ Mastering User Stories

◦ Scrum Introduction (CSD track)

◦ Agile Estimation and Planning (CSD track)

Agile Coaching◦ Um Scrum Coach não só tem histórias para contar e

respostas para dar, mas acima de tudo tem perguntas para cada ocasião. Um bom coach sabe que Scrum é a arte do possível, o melhor time é aquele que entende suas limitações e, sobretudo, o seu potencial.

Agile Software Engineering Heitor Roriz Filho

www.massimus.com

Page 5: Desenvolvimento Ágil de Software

SWEBOK (IEEE, Computer Society)◦ The application of a systematic, disciplined,

quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

Computer Engineering, Computer Science, Management, Mathematics, Project Management, Quality Management, Software Ergonomics, Systems Engineering

Sommerville, Pressman, etc.

Agile Software Engineering Heitor Roriz Filho

Page 6: Desenvolvimento Ágil de Software

SDLC (Software Development Lifecycle)◦ Modelo Cascata

Agile Software Engineering Heitor Roriz Filho

Dr. Winston Royce

Page 7: Desenvolvimento Ágil de Software

Agile Software Engineering Heitor Roriz Filho

Page 8: Desenvolvimento Ágil de Software

Complexidade do software

Popularização dos métodos ágeis:◦ Scrum

◦ XP

Teoria vs. Prática

Construção de software é uma disciplina legítima de engenharia?

Agile Software Engineering Heitor Roriz Filho

Page 9: Desenvolvimento Ágil de Software

A construção de software não pode ser considerado uma disciplina puramente de engenharia

Também não é uma “arte”, como a pintura de um quadro

Agile Software Engineering Heitor Roriz Filho

Arte EngenhariaCraftsmanship

Criatividade

Aspectos humanos

Orgânico

Boas práticas

Linguagem

Tecnologia

Page 10: Desenvolvimento Ágil de Software

Desenvolvimento ágil de software

Extreme Programming

Agile Software Engineering Heitor Roriz Filho

Valores Princípios Práticas

Comunicação, Simplicidade, Feedback,

Coragem, Respeito

Responsabilidade, baby steps

Multidisciplinaridade, local de trabalho informativo, userstories, trabalho energizado, pair

programming, TDD, integração contínua, design incremental

Page 11: Desenvolvimento Ágil de Software

Promove a multidisciplinaridade

Amadurece o time

Aumenta a interação

Pares devem ser rotacionados com frequencia

Agile Software Engineering Heitor Roriz Filho

Page 12: Desenvolvimento Ágil de Software

1. Posso desenvolver sem TDD?

2. Sou Agile se não faço TDD?

R1: Sim. Mas cuidado ao se considerar Agile.

R2: Dificilmente.

Agile Software Engineering Heitor Roriz Filho

Page 13: Desenvolvimento Ágil de Software

Agile Modeling, S. Ambler◦ Caixa de ferramentas

◦ Possui boas práticas

Domain Driven Design, Eric Evans◦ Nada de novo

◦ Contexto

Ponto em comum:◦ Simplicidade e foco

Design and code for today!

Agile Software Engineering Heitor Roriz Filho

Page 14: Desenvolvimento Ágil de Software

Agile Software Engineering Heitor Roriz Filho

Por iteração

Atividades concorrentes

Page 15: Desenvolvimento Ágil de Software

Colaboração com analistas de negócio, ou o cliente, ou o Product Owner, ou Analista de Requisitos

Conhecimento PROFUNDO por parte de todos da equipe de desenvolvedores :◦ Do negócio

◦ De práticas ágeis

Agile Software Engineering Heitor Roriz Filho

Page 16: Desenvolvimento Ágil de Software

ATDD (Acceptance Test Driven Development)

BDD (Behavior Driven Development)◦ Simples e iniciam com especificação em linguagem

natural

Agile Software Engineering Heitor Roriz Filho

Page 17: Desenvolvimento Ágil de Software

Agile Software Engineering Heitor Roriz Filho

Requisitos A

n

á

l

i

s

eDesign

Implementação Teste

Page 18: Desenvolvimento Ágil de Software

Agile Software Engineering Heitor Roriz Filho

ATDD

TDD

Requisitos A

n

á

l

i

s

eDesign

Implementação Teste

Page 19: Desenvolvimento Ágil de Software

Com certificação CSM: apenas 3 dias◦ Prática de Engenharia Ágil

Sem certificação CSM: todos os 5 dias◦ Scrum Introduction (1 dia)

◦ Agile Estimation and Planning (1 dia)

◦ Prática de Engenharia Ágil (3 dias)

Ao final é realizada uma prova

Agile Software Engineering Heitor Roriz Filho

Page 20: Desenvolvimento Ágil de Software

Vivenciar as práticas XP

Sentir os valores, interagindo no cotidiano

Aprender sobre visual management sob a ótica do time

Ajudar na implantação na sua empresa

Agile Software Engineering Heitor Roriz Filho

def test_create_user_fails_with_bad_password

assert [email protected]_exists?("newacc")

return_code = @auth.create("newacc", "a")

assert [email protected]_exists?("newacc")

assert_equal :invalid_password, return_code

end

Page 21: Desenvolvimento Ágil de Software

Agile Software Engineering Heitor Roriz Filho

Page 22: Desenvolvimento Ágil de Software

Heitor Roriz Filho – Agile MC & Agile Metrics

AGILE SOFTWARE

ENGINEERINGHeitor Roriz Filho, MSc, CSM, CSP

[email protected]

http://www.massimus.com

http://br.linkedin.com/in/hroriz@hroriz