Rodrigo Branas - @rodrigobranas – http://www.agilecode.com.br




       Introdução a Modelagem
@rodrigobranas
  rodrigo.branas@gmail.com
 http://www.agilecode.com.br
Formação Acadêmica
Ciências da Computação – UFSC
Gerenciamento de Projetos - FGV

Certificações

SCJA, SCJP, SCJD, SCWCD, SCBCD, PMP, MCP e CSM
Rodrigo Branas – rodrigo.branas@gmail.com
10 anos de experiência na plataforma Java
1000 horas em sala de aula
Mais de 50 palestras em eventos

Líder da área de desenvolvimento na Gennera
Autor da revista Java Magazine
Palestrante
Instrutor da Academia Java e Agile da Globalcode
Criador dos treinamentos de Clean Code, Selenium e
Maven da Agile Code

Trabalhou com as empresas: EDS, HP, GM, Citibank,
OnCast, Globalcode, V.Office, Dígitro, Softplan, Unimed,
Suntech, Vale do Rio Doce, Senai, NET.
Compartilhando objetivos e
experiências com a modelagem
As pessoas tem muitas idéias...
Você conhece alguém assim?
No entanto, raramente essas idéias
estão claras o suficiente para serem
      transmitidas à alguém!
Satisfação = Percepção - Expectativa
Cenário 1: Restaurante
Cenário 2: Relacionamento
Cenário 3: Desenvolvimento de
           Software
O sucesso parece loteria?
Qual é o objetivo da modelagem?
Dar forma ao conhecimento
Mas, isso não é tão fácil assim!
Geralmente tentamos modelar um
   conhecimento que é tácito
Está distribuido entre várias
           pessoas
Essas pessoas tem percepções
diferentes sobre esse conhecimento
Logo, esse conhecimento é difícil de
   ser formalizado, entendido ou
             explicado
Modelos
Favorecem o amadurecimento de
            ideias
Consolidam opiniões
Comunicar de forma mais efetiva
Que áreas aplicam o processo de
         modelagem?
Arquitetura
Artes
Móveis
Moda
Software
Para que mais servem os modelos?
Ponte Salginatobel
Problemas com a abordagem
  tradicional de modelagem
Modelos ajudam a reduzir custos
Será que modelar tudo no início
 não ajudaria a reduzir custos?
Custo da mudança
Comparação entre o
desenvolvimento de software e a
          engenharia!
Como se constrói um prédio?
1 – Um grupo de engenheiros
2 – Produzem documentos (design)
3 – Trabalhadores executam a
  construção com base nos
         documentos
    Projetos aeronáuticos
Problemas com a abordagem
  tradicional de fica pronto!
   4 – O prédio modelagem
Como funciona na engenharia de
     software tradicional?
1 – Um grupo de engenheiros
Problemas com a abordagem
     tradicional de modelagem
2 – Produzem documentos (design)
3 – Trabalhadores executam a
  construção com base nos
         documentos
4 – O código-fonte fica pronto!
O problema é que isso não funciona
Como realizar a fase de design de
   maneira fácil, compreensível e
correta, sem que os programadores
precisem alterar o design durante a
       fase de programação?
1 - E se trocarmos os engenheiros
       por desenvolvedores?
2 – Os desenvolvedores escrevem o
   código fonte com o auxílio da
            modelagem
Problemas com a abordagem
3 –tradicional de modelagem
    Os compiladores trabalham!
4 – O software fica pronto!
Onde está o modelo agora?
No código-fonte!
Quais são os problemas com a
engenharia de software tradicional?
BDUF (Big Design Up Front)
Nível de suposições alto
Processo de modelagem
pesado, incerto e sem feedback
Como fica o retorno do
   investimento?
Working software is the primary
    measure of progress!
Já tentou mandar fazer um vestido
            de noiva?
Desenvolver software requer
       aprendizado
O maior aprendizado ocorre ao
     longo do processo!
Somente 20% do software é
   realmente utilizado
A mudança vai acontecer e ela é
      muito bem-vinda!
Como evitar todo esse desperdício?

Introdução a Modelagem