mitos do desenvolvimento de software

38
Mitos do Desenvolvimento de Software (e soluções ágeis) Rodrigo Yoshima

Upload: guest2f8cba

Post on 20-Jun-2015

7.140 views

Category:

Technology


1 download

DESCRIPTION

Apresentação do Rodrigo Yoshima na palestra do JustJava

TRANSCRIPT

Page 1: Mitos do Desenvolvimento de Software

Mitos do Desenvolvimento de Software

(e soluções ágeis)

Rodrigo Yoshima

Page 2: Mitos do Desenvolvimento de Software

Agenda

• Como era nos anos 90?• Mitos do Gerenciamento• Mitos dos Requisitos• Mitos do Design e do Código

Page 3: Mitos do Desenvolvimento de Software

Conheça o Tonhão!

Page 4: Mitos do Desenvolvimento de Software

Perfil do Sponsor 90’

O que ele queria:

• Uma solução rápida e barata• Feedback rápido• Ver coisas concretas• Implantar o mais rápido possível• Ganhar dinheiro com o software• Estar presente

Page 5: Mitos do Desenvolvimento de Software

Uma ligação que mudou tudo...

Y2K

Page 6: Mitos do Desenvolvimento de Software

Depois da virado do Milênio

Os projetos não voltaram mais para as empresas! Ficaram nas consultorias!

• Contratos ganharam muita importância• O usuário ficou distante• O report do andamento do projeto ficou abstrato• Os projetos ficaram maiores e mais custosos• RUP Cascata, CMM, PMBOK

Page 7: Mitos do Desenvolvimento de Software

O que estamos procurando?Definição de Sucesso de umProjeto de Software

• O software resolve o problema (qualidade externa)

• O software é fácil de manter e evoluir (qualidade interna)

• Menor custo e prazo possível (qualidade do projeto)

Page 8: Mitos do Desenvolvimento de Software

Mitos do GerenciamentoA base do gerenciamento de projetos de software é o processo iterativo incremental!

Page 9: Mitos do Desenvolvimento de Software

Mitos do Gerenciamento: Escopo

Escopo em software não são requisitos detalhados! Escopo são os problemas que o software pretende resolver!

Page 10: Mitos do Desenvolvimento de Software

As empresas tem problemas!!!

Page 11: Mitos do Desenvolvimento de Software

Duas empresas oferecem seus serviços:

Bravos Guerreiros S/A

• Experiência• Humildade• Foco em resultados• Escopo Aberto

DXA Ltda.

• Certificações• Planos detalhados• Foco no contrato• Escopo Fechado

Page 12: Mitos do Desenvolvimento de Software

Bravos Guerreiros S/A

Contrato de Escopo Aberto (Risco-Benefício)

• Cegar o dragão na semana 1• Tirar sua habilidade de voar na semana 2• Fazê-lo parar de cuspir fogo na semana 3• Impedi-lo de destruir casas na semana 4• Cortar suas pernas na semana 5

• O pagamento é semanal

Page 13: Mitos do Desenvolvimento de Software

DXA Ltda.

Contrato Escopo Fechado (por Entregáveis)

• Estudo exaustivo do dragão• Atirar 200 flechas• Lançar 30 pedras com a Catapulta• 400 golpes de espada• 250 golpes com o machado

• O pagamento é por ação tomada

Page 14: Mitos do Desenvolvimento de Software

Trazendo isso para software...

• Num primeiro planejamento rápido elabore uma “pilha de requisitos” que inicialmente é suficiente para solucionar o problema.

• Não é necessário detalhar os requisitos neste momento pois essa pilha pode mudar

• Priorize os requisitos (os mais importantes primeiro)

Page 15: Mitos do Desenvolvimento de Software

Desenvolvimento Iterativo

• Defina o tamanho das iterações– Todas elas terão o mesmo tamanho

– Qual a maturidade da equipe?

– Qual a disponibilidade do cliente?

1 2 3 4

...2 semanas

5

Page 16: Mitos do Desenvolvimento de Software

Desenvolvimento Iterativo• Desenvolva uma parte da pilha na iteração 1:

– Plano: O que podemos entregar?– Execute o trabalho focado só nesses requisitos – Entregue com qualidade– Demonstre o resultado para os interessados

1 2 3 4

...2 semanas

5

Page 17: Mitos do Desenvolvimento de Software

Desenvolvimento Iterativo• O ciclo recomeça!!!!

– Avalie as “avarias” no dragão (ele pode morrer antes!)

– Atualize a lista de requisitos (novos ou priorização)

– Faça o planejamento da iteração 2

1 2 3 4

...2 semanas

5

Page 18: Mitos do Desenvolvimento de Software

Desenvolvimento Iterativo

SIM, pode ser que nosso planejamento da iteração não se CUMPRA!!!!

1 2 3 4

...2 semanas

5

? ? ?

Page 19: Mitos do Desenvolvimento de Software

Por que não gerenciar tarefas?

“Você não consegue controlar aquilo que você não consegue mensurar.”

Tom Demarco, 1983

Page 20: Mitos do Desenvolvimento de Software

Mito do Gerenciamento

Em software, a soma das tarefas não é garantia de sorriso na cara do cliente.

O Gerenciamento de Projetos deve responder quais resultados você está obtendo e não o que você

está fazendo!

Page 21: Mitos do Desenvolvimento de Software

Como é a sua equipe?

Requisitos

Análise

Desenvolvimento

Teste

Page 22: Mitos do Desenvolvimento de Software

Por que não aplicamos Taylorismo?

Especialização e rigorosamente “dividir e conquistar” serviu para produzir mais carros de maneira mais barata. Na minha experiência esses princípios não fazem sentido como estratégia para desenvolvimento de software. Nem para o negócio e nem para o lado humano eles fazem sentido.Kent Beck, 2004

Page 23: Mitos do Desenvolvimento de Software

Mito: Divisão e Especialização

Promova a Colaboração!!!!

Page 24: Mitos do Desenvolvimento de Software

Mito: Divisão e Especialização

Papéis do SCRUM

Product Owner

Equipe

ScrumMaster

Page 25: Mitos do Desenvolvimento de Software

Erros em Requisitos!

• Ficar muito tempo sem reduzir a incerteza(sem entregar software funcionando)

• Requisitos mudam! (não adianta especificar todos no início)• Papel e Diagramas aceitam qualquer coisa• Software funcionando é o melhor artefato

para levantar requisitos

Page 26: Mitos do Desenvolvimento de Software

Faça junto com o Cliente!!!

Page 27: Mitos do Desenvolvimento de Software

Mitos da Análise e do Design

• O que é Análise para você?• O que eu quero com o meu Design?

Análise e Design focam principalmente a qualidade interna do software.

Page 28: Mitos do Desenvolvimento de Software

Como modelamos atualmente?

• Uso do modelo é homeopático• Modelamos em Grupo!• Focamos a comunicação dentro da Equipe• Poucos modelos viram artefatos• Buscamos um bom código e não um bom modelo• Rascunhos também servem• Modelagem = minutos / Codificação = horas

Page 29: Mitos do Desenvolvimento de Software

Usamos UML? Sim!

Page 30: Mitos do Desenvolvimento de Software

Usamos UML? Sim!

Page 31: Mitos do Desenvolvimento de Software

Sempre UML? Não!!!

Seu código sempre deve ser bonito. O modelo visual não!

Page 32: Mitos do Desenvolvimento de Software

O que é um modelo afinal?

“O modelo é uma simplificação de uma coisa complexa.” Grady

Booch, 1999

Page 33: Mitos do Desenvolvimento de Software

Mitos da codificação

• O que é programar para você?• Analista é melhor que Programador?

A codificação é a atividade que deve ser valorizada no desenvolvimento de

software, afinal, o código é o elemento mais próximo do que queremos de fato:

solucionar problemas de negócio.

Page 34: Mitos do Desenvolvimento de Software

Como programamos atualmente?• Nosso código é formal• Nosso código documenta praticamente 95% do projeto:

– Comentários em código– Orientação a Objetos: Alta Coesão / Baixo Acoplamento– Design Patterns (Padrões)– Domain-Driven Design– TDD / BDD : Testes, Testes e Mais Testes Automatizados– Fazer mais com menos código (frameworks e abstrações fortes)

Isso garante a manutenção do projeto!!!!

• Programamos em Grupo• Arquitetura Aberta• Design Emergente

Page 35: Mitos do Desenvolvimento de Software

O Código é o seu Design!

Programar é uma atividade de design – um bom processo reconhece isso, e não teme

iniciar a codificação quando isso fizer sentido. Jack W. Reeves, 1992

Page 36: Mitos do Desenvolvimento de Software

O Mito “Nerd”

Desenvolver software é uma atividade social e imersa na área

de negócios do cliente.

Quem quer simplesmente receber especificações e se isolar

não terá espaço no mercado!

Page 37: Mitos do Desenvolvimento de Software

Mito da Melhoria do Processo