Mitos do Desenvolvimento de Software

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

description

Apresentação do Rodrigo Yoshima na palestra do JustJava

Transcript of Mitos do Desenvolvimento de Software

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