Grandiosismo dos
     loucos
     @cecifernandes
    @guilhermecaelum
OU
Loucura dos grandes
      @cecifernandes
     @guilhermecaelum
fanatismo
que diabos ele faz?
que diabos
  ela faz?
tudo menos
 dançar no
  knetics
www.caelum.com.br
3 partes
3 partes
2 loucuras
3 partes
2 loucuras
2 loucuras
3 partes
     2 loucuras
     2 loucuras
loucuras em conjunto
Imagine...
lista de refatorações

   switch => recursão

  repetição => método
• ({}–>nil)
• (nil->constant)
• (constant->constant+)
• (constant->scalar)
• (statement->statements)
• (unconditional->if)
• (scalar->array)
• (array->container)
• (statement->recursion)
• (if->while)
• (expression->function)
• (variable->assignment)
uma sequência de
 passos a serem
    tomados
algoritmo

0, 1, 2, 3, ...
como ela é fácil
usar ela SEMPRE
parece
 bom?
é bom ter um guia!
problema:
ordenar uma array

    (4, 2, 5, 1)
é difícil mesmo!
1 ==> 1
  2,1 ==> 1,2
1,3,2 ==> 1,2,3
resultado:

quicksort
o melhor resultado
   hoje em dia!
nossa reação?
animal!
PORTANTO
PORTANTO
todo problema terá
 como resultado o
 melhor algoritmo
O QUÊ?
o MELHOR algoritmo
  para QUALQUER
      problema
“O melhor algoritmo”
resolve com a melhor solução
               =
         bala de prata
SÉRIO MESMO?
pior ainda,
mesmo que
existisse!!!
Qual a chance de uma pessoa
descobrir A REGRA que resolve
 todos os problemas da melhor
        maneira possível?
eu bombei na terceira
Einstein errou
quem é que vai acertar
     essa lista?
aliás na ordem que ele
sugeriu, a solução dava
         outra!
provei pra 1, provei pra todos

     indução dos loucos
ps:
1. existe outras trans?
2. são as certas? (prov
          não)
    essa é a melhor?
Uncle Bob
               em
“encontrei a solução do universo”




http://cleancoder.posterous.com/the-
                   priority-premise
quero mais...
antigamente
waterfall zuava
existe algo melhor?
já existia Lean
problemas visíveis
ainda linha de produção
significa que...
LEAN
                =
(waterfall - descanso - criatividade)
AHN?
mas tenho a solução
se você usar Scrum
se você usar Scrum
se você usar Scrum
se você usar Scrum
melhor do que todos
 os competidores
todos querem trabalhar
      com você
AHN?
“o meu é o melhor do
      mundo”
cheirinho
   de
   ....
REPITO
“o meu é o melhor do
      mundo”
pé no saco
Ken Schwaber
    em “o meu é o melhor do mundo”




http://kenschwaber.wordpress.com/2010/06/10/waterfall-
               leankanban-and-scrum-2/
querem mais?
algumas pessoas não
  querem aprender
poucas pessoas querem
  aprender sem parar
“não quero perder
tempo tentando mudar
   a pessoa média”
só quero ser o melhor
CALMA LÁ!
se todo mundo ou
“desiste” ou “só pensa
        em si”
o mercado vai ser
sempre o mesmo
com cada vez MAIS
   legado lixo
com cada vez MAIS
   legado lixo
ENTÃO
adianta sim tentar mudar
uma pessoa arrombada
pode produzir o dobro!
mas 50% dos devs
(a média) com 10% de
   qualidade a mais
     é um salto
(sem mencionar os
erros matemáticos)
MAS
“não gosto de código
      legado”
“fazer algo novo, com
   tecnologia nova”
“depois de n meses,
quero fazer com outra
     tecnologia”
“UHU! eu tô me
  divertindo!”
mas o que eu deixei pra
        trás?
MEU legado
estou contribuindo
com o lixo mais do que
        nunca!
ENTÃO
nosso código será
     legado
mas que não seja um
   legado LIXO
Michael Feathers
                  em
      “não to nem aí pro mercado,
         quero é ser produtivo”




http://michaelfeathers.typepad.com/michael_feathers_blog/
          2011/02/the-pinned-progress-curve.html
Programming Language
+50 anos
Programming Language
procedural
OO
logical
funcional
estruturada
graphical
Já vimos +10 tipos.
Matematicamente
    falando,
Já exploramos *todas*
   as possibilidades?
Se já exploramos todos
os tipos possíveis, então...
como assim?
todas?
só 50 anos de
programação
o *universo* é gigante




          ps: e olha que de universo ele manja
se nós já exploramos
 TODOS os tipos de
     linguagens?
sempre tem algo novo
  para experimentar
que tristeza seria
se a partir de agora não
 desse mais pra inovar
Sabe essa área de
    estudo?
*acabou*!
Uncle Bob
                                  em
                   “não vale a pena tentar algo novo”




http://cleancoder.posterous.com/the-last-programming-
                        language
o mais importante
mesmo ao ler algo de
alguem importante tem
   que tomar cuidado
respondendo
que diabos eles fazem?
NÃO
    existe “o melhor”
algoritmo dos algoritmos
NÃO
existe “o melhor” método
adianta sim tentar mudar
adianta sim tentar
 novas linguagens
valeu!
@guilhermecaelum   @cecifernandes

O grandiosismo dos loucos - Agile Brazil 2011, Cecilia Fernandes e Guilherme Silveira