Desenvolvimento Ágil de Software

Post on 18-Dec-2014

2.247 views 0 download

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

Licença de distribuição e uso

Heitor Roriz Filho, MSc, CSP

Agile Coach and Trainer

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

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

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

SDLC (Software Development Lifecycle)◦ Modelo Cascata

Agile Software Engineering Heitor Roriz Filho

Dr. Winston Royce

Agile Software Engineering Heitor Roriz Filho

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

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

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

Promove a multidisciplinaridade

Amadurece o time

Aumenta a interação

Pares devem ser rotacionados com frequencia

Agile Software Engineering Heitor Roriz Filho

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

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

Agile Software Engineering Heitor Roriz Filho

Por iteração

Atividades concorrentes

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

ATDD (Acceptance Test Driven Development)

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

natural

Agile Software Engineering Heitor Roriz Filho

Agile Software Engineering Heitor Roriz Filho

Requisitos A

n

á

l

i

s

eDesign

Implementação Teste

Agile Software Engineering Heitor Roriz Filho

ATDD

TDD

Requisitos A

n

á

l

i

s

eDesign

Implementação Teste

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

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 !@auth.account_exists?("newacc")

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

assert !@auth.account_exists?("newacc")

assert_equal :invalid_password, return_code

end

Agile Software Engineering Heitor Roriz Filho

Heitor Roriz Filho – Agile MC & Agile Metrics

AGILE SOFTWARE

ENGINEERINGHeitor Roriz Filho, MSc, CSM, CSP

hroriz@massimus.com

http://www.massimus.com

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