Programação Eficaz - Agile Trends Floripa 2016

223 visualizações

Publicada em

Apresentação realizada por Sebastian Ferrari no Agile Trends Floripa 2016 abordando o tema Programação Eficaz.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
223
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Curva de la jota.
    Costo de la innovación.
  • Programação Eficaz - Agile Trends Floripa 2016

    1. 1. Programação Eficaz Agile Trends Floripa 2016 Sebastian Ferrari (a.k.a. Sebas) sebas@taller.net.br
    2. 2. Sebastian Ferrari CTO e Co-fundador da Taller sebas5384
    3. 3. +10 anos programando +4 anos com Ágil vivendo o pós Ágil
    4. 4. ~10 anos atrás CPU 300 MHZ RAM 128 MB 640 x 480 px
    5. 5. RAMAC 305 - ano 1956
    6. 6. 68 cores = 8 bytes microSDHC 8 billion bytes
    7. 7. 1 bilhão de vezes mais bytes, em menos espaço
    8. 8. IBM 305 RAMAC de 1956, considerada um SUPER computador com 5 Megabytes de HDD
    9. 9. multiplicações podiam demorar entre 60 ms a 190 ms
    10. 10. IBM 650 FORTRAN
    11. 11. HOJE ano 2016
    12. 12. MOTO X2
    13. 13. 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.
    14. 14. +10.000 vezes em 60 anos !!
    15. 15. Capacidade de hardware melhorou muito !
    16. 16. Mas … e a maneira como programamos ?
    17. 17. E a qualidade? … melhorou?
    18. 18. procurou no Google ?
    19. 19. treta vixe
    20. 20. :(
    21. 21. Por que ?
    22. 22. Softwares complexos
    23. 23. Manutenção muito cara
    24. 24. Novas funcionalidades
    25. 25. Priorizamos a eficiência
    26. 26. Software frágil
    27. 27. Programamos de maneira familiar
    28. 28. Experiência do programador é péssima
    29. 29. O que estamos fazendo de errado?
    30. 30. Software complexo!
    31. 31. 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.
    32. 32. Lógicas escondidas e overload de abstrações
    33. 33. Estados internos mutáveis espalhados pelo sistema
    34. 34. Mutabilidade torna o sistema imprevisível
    35. 35. Refatoração quase impossível ou muito custosa
    36. 36. Side effects fora de controle
    37. 37. Testes automatizados são muito caros e precisam de muito mock
    38. 38. Acoplamento dificulta interoperabilidade
    39. 39. A soma das partes é maior do que o resultado final. Entropia
    40. 40. Alto risco e esforço perante as mudanças
    41. 41. Carregamos um elefante nas costas
    42. 42. Alto conhecimento do todo para realizar uma mudança
    43. 43. Overload cognitivo para entender
    44. 44. De onde vem esse campo?
    45. 45. Quem está trocando o texto desse botão?
    46. 46. Porque não está funcionando?
    47. 47. Porque está funcionando?
    48. 48. Não temos mais as mesmas restrições
    49. 49. Podemos usar outros paradigmas
    50. 50. Programação funcional e reativa λ lamba
    51. 51. Simples e declarativo que aumenta o entendimento do código
    52. 52. Familiar vs. Legibilidade pessoas novas no time podem entender o que o código faz
    53. 53. Funções puras são previsíveis, fácil de testar e sem estado interno
    54. 54. Funções de ordem superior, evita herança a favor da composição
    55. 55. Funções recursivas evita side-effects dentro de loops
    56. 56. Imutabilidade mudanças se tornam declarativas
    57. 57. Código fácil de se raciocinar
    58. 58. Programação reativa eventos no sistema unidirecional
    59. 59. Não precisa usar linguagens funcionais puras !
    60. 60. from: mobiltec.com.br
    61. 61. Tendência:
    62. 62. Não é a solução definitiva ou absoluta
    63. 63. … e o que tem a ver com Ágil ?
    64. 64. A empresa onde você trabalha é um sistema
    65. 65. A qualidade do resultado, depende do bom funcionamento entre as partes do sistema
    66. 66. Se os desenvolvedores geram software de baixa qualidade
    67. 67. ● Código frágil. ● Código que não escala. ● Refatoração de alto risco. ● Manutenção cara. ● Mudanças são lentas.
    68. 68. O que é ágil ? ou agilidade
    69. 69. “It’s not what happens that counts… it’s how you react.
    70. 70. Bruce Lee
    71. 71. Sua empresa vai precisar de: mais gerenciamento, mais negociações, mais contratos complexos, mais disciplinas, …. mais … mais …
    72. 72. Referências: Alan Kay Robert C. Martin (Uncle Bob) Joe Armstrong Rich Hickey
    73. 73. Obrigado :) Sebastian Ferrari sebas@taller.net.br

    ×