programação eficaz - agile trends floripa 2016
TRANSCRIPT
![Page 2: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/2.jpg)
Sebastian FerrariCTO e Co-fundador da Tallersebas5384
![Page 3: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/3.jpg)
+10 anos programando
+4 anos com Ágilvivendo o pós Ágil
![Page 4: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/4.jpg)
![Page 5: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/5.jpg)
~10 anos atrás
CPU 300 MHZRAM 128 MB640 x 480 px
![Page 6: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/6.jpg)
![Page 7: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/7.jpg)
RAMAC 305 - ano 1956
![Page 8: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/8.jpg)
![Page 9: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/9.jpg)
![Page 10: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/10.jpg)
68 cores = 8 bytesmicroSDHC 8 billion
bytes
![Page 11: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/11.jpg)
1 bilhão de vezes mais
bytes, em menos espaço
![Page 12: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/12.jpg)
IBM 305 RAMAC de 1956, considerada um
SUPER computadorcom 5 Megabytes de
HDD
![Page 13: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/13.jpg)
multiplicaçõespodiam demorar entre
60 ms a 190 ms
![Page 14: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/14.jpg)
IBM 650FORTRAN
![Page 15: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/15.jpg)
![Page 16: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/16.jpg)
![Page 17: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/17.jpg)
HOJEano 2016
![Page 18: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/18.jpg)
MOTO X2
![Page 19: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/19.jpg)
CPU Quad Core de 2.5 GHz.GPU Adreno 330, 26 frames por segundo.Memória de 32 GB e 2 GB de RAM.Alta Resolução de 1080 x 1920 pixels.Velocidade de download de 150 Mbps.
![Page 20: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/20.jpg)
+10.000 vezesem 60 anos !!
![Page 21: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/21.jpg)
Capacidade de hardware
melhorou muito !
![Page 22: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/22.jpg)
Mas …
e a maneira comoprogramamos ?
![Page 23: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/23.jpg)
E a qualidade?
… melhorou?
![Page 24: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/24.jpg)
![Page 25: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/25.jpg)
procurouno Google ?
![Page 26: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/26.jpg)
treta vixe
![Page 27: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/27.jpg)
![Page 28: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/28.jpg)
![Page 29: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/29.jpg)
:(
![Page 30: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/30.jpg)
Por que ?
![Page 31: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/31.jpg)
Softwares complexos
![Page 32: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/32.jpg)
Manutenção muito cara
![Page 33: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/33.jpg)
Novas funcionalidades
![Page 34: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/34.jpg)
![Page 35: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/35.jpg)
Priorizamos a eficiência
![Page 36: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/36.jpg)
![Page 37: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/37.jpg)
Software frágil
![Page 38: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/38.jpg)
![Page 39: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/39.jpg)
Programamos demaneira familiar
![Page 40: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/40.jpg)
Experiência doprogramador é
péssima
![Page 41: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/41.jpg)
![Page 42: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/42.jpg)
![Page 43: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/43.jpg)
![Page 44: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/44.jpg)
O que estamos fazendo deerrado?
![Page 45: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/45.jpg)
Softwarecomplexo!
![Page 46: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/46.jpg)
![Page 47: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/47.jpg)
Programação imperativa é um paradigma de
programação que descreve a computação como ações,
enunciados ou comandos que mudam o estado (variáveis)
de um programa.
![Page 48: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/48.jpg)
Lógicas escondidase
overload de abstrações
![Page 49: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/49.jpg)
Estados internosmutáveis
espalhadospelo sistema
![Page 50: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/50.jpg)
Mutabilidadetorna o sistema
imprevisível
![Page 51: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/51.jpg)
Refatoraçãoquase impossívelou muito custosa
![Page 52: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/52.jpg)
Side effectsfora de controle
![Page 53: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/53.jpg)
![Page 54: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/54.jpg)
Testes automatizados
são muito caros eprecisam de muito
mock
![Page 55: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/55.jpg)
Acoplamentodificulta
interoperabilidade
![Page 56: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/56.jpg)
A soma das partes é maior do que o resultado final.
Entropia
![Page 57: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/57.jpg)
Alto risco e esforçoperante as mudanças
![Page 58: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/58.jpg)
Carregamosum elefante nas
costas
![Page 59: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/59.jpg)
Alto conhecimento do todo para realizar
uma mudança
![Page 60: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/60.jpg)
Overloadcognitivo
para entender
![Page 61: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/61.jpg)
De onde vemesse campo?
![Page 62: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/62.jpg)
Quem está trocando o texto desse botão?
![Page 63: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/63.jpg)
Porque não está funcionando?
![Page 64: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/64.jpg)
Porque está funcionando?
![Page 65: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/65.jpg)
Não temos mais as mesmas restrições
![Page 66: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/66.jpg)
Podemos usar outros
paradigmas
![Page 67: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/67.jpg)
Programaçãofuncional e reativa
λlamba
![Page 68: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/68.jpg)
Simples e declarativo que
aumenta o entendimento do
código
![Page 69: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/69.jpg)
![Page 70: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/70.jpg)
Familiar vs. Legibilidade
pessoas novas no time podem entender o que o
código faz
![Page 71: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/71.jpg)
Funções purassão previsíveis,fácil de testar
e sem estado interno
![Page 72: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/72.jpg)
Funções de ordem superior,
evita herança a favor da composição
![Page 73: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/73.jpg)
Funções recursivasevita side-effects
dentrode loops
![Page 74: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/74.jpg)
Imutabilidademudanças se tornam
declarativas
![Page 75: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/75.jpg)
Código fácil de seraciocinar
![Page 76: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/76.jpg)
Programação reativa
eventos no sistemaunidirecional
![Page 77: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/77.jpg)
Não precisausar linguagensfuncionais puras !
![Page 78: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/78.jpg)
from: mobiltec.com.br
![Page 79: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/79.jpg)
Tendência:
![Page 80: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/80.jpg)
Não é a soluçãodefinitiva ou
absoluta
![Page 81: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/81.jpg)
… e o que tem a ver com Ágil ?
![Page 82: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/82.jpg)
A empresa ondevocê trabalhaé um sistema
![Page 83: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/83.jpg)
A qualidade do resultado, depende
dobom funcionamentoentre as partes do
sistema
![Page 84: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/84.jpg)
Se os desenvolvedoresgeram software
de baixa qualidade
![Page 85: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/85.jpg)
●Código frágil.●Código que não
escala.●Refatoração de alto
risco.●Manutenção cara.●Mudanças são
lentas.
![Page 86: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/86.jpg)
![Page 87: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/87.jpg)
O que é ágil ?ou agilidade
![Page 88: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/88.jpg)
“ It’s not what happens
that counts…it’s how you react.
![Page 89: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/89.jpg)
Bruce Lee
![Page 90: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/90.jpg)
Sua empresa vai precisar de:mais gerenciamento,
mais negociações,mais contratos complexos,
mais disciplinas,…. mais … mais …
![Page 91: Programação Eficaz - Agile Trends Floripa 2016](https://reader031.vdocuments.com.br/reader031/viewer/2022012914/587329b01a28ab596c8b54cb/html5/thumbnails/91.jpg)
Referências:
Alan KayRobert C. Martin (Uncle Bob)Joe ArmstrongRich Hickey