Arquitetura (evolucionária) <br />de Software e o Arquiteto<br />Leandro Daniel<br />@leandronet<br />
Leandro Daniel<br />@leandronet<br />Comunidade<br />.net Magazine<br />Podcaster<br />Desenvolvimento de software<br />Vi...
http://voidpodcast.com<br />
Objetivos<br />Refletir sobre o desenvolvimento de software<br />Entender a importância da arquitetura<br />Apresentar uma...
Refletindo sobre o desenvolvimento de software<br />
Com o que o desenvolvimento de software se parece?<br />
Engenharia... É tudo igual?<br />
“-Ficou ótima a ponte! <br />Dá pra mudar ela de lugar?”<br />
É possível morar em um <br />prédio inacabado?<br />
É possível construir um avião em pleno voo?<br />
Complicar a execução de tarefas simples parece besteira?<br />
Desenvolver software se parece mais com isso:<br />by Fred Brooks<br />–Mythical Man-Month, The: Essays on Software Engine...
@leandronet<br />Arquitetura existe, sempre! Mesmo que não seja pensada!<br />Mas... O que é <br />arquitetura afinal?<br />
@leandronet<br />Arquitetura<br />Implementação<br />Design<br />
@leandronet<br />Arquitetura é aquela coisaque é difícil de mudar depois.<br />Por essa razão, deve existir o mínimo possí...
<ul><li>Conjuntodas decisõesmais importantes
Decisões com altocusto de reversão
Componentes– Papéis – Relacionamentos</li></ul>Gentilmente copiado do @elemarjr =P<br />
“organização fundamental de um sistema incorporada em seus componentes, suas relações entre si e entre o ambiente e os pri...
Existe diferença?<br />@leandronet<br />
Papéis do Arquiteto<br />SOA Architect<br />Data Architect<br /><papel aqui> Architect<br />
Preocupações relevantes durante o processo de definição de uma arquitetura<br />(segundo o TOGAF)<br />
<Intermission><br />
Apresentando: Um código C#!<br />
Essaéumaabstração do código (by NDepend)<br />Assembly<br />Classe<br />Método<br />
c<br />
Qual abordagem você utilizaria para construir esse software?<br /></Intermission><br />
Entendendo a importância da arquitetura de software<br />
Espectro do Design<br />Waterfall<br />clássico<br />Some<br />DUF<br />Agile<br />XGH<br />Design<br />Emergente<br />BDU...
Arquitetura Evolucionária e Design Emergente<br />@leandronet<br />#Simples<br />#Adaptativa<br />#Foco do cliente<br />#A...
"Nãoexiste nenhumdesignno início. <br />Você começa codificando uma <br />pequenaquantidade de funcionalidades, e vai acre...
Sim, a entropia existe em software...<br />Manter as coisas como estão, <br />exige trabalho!<br />@leandronet<br />
Quanto mais tempo você adiar suas decisões...<br />...Mais contextualizadas elas serão!<br />@leandronet<br />
<Lembrando><br />Qual abordagem você utilizaria para construir esse software?<br /></Lembrando><br />
Práxis da Arquitetura Evolucionária<br />
@leandronet<br />
Dívida Técnica<br />“Obrigação que uma organização de software incorre quando escolhe um design ou um tipo de construção q...
Dívida técnica sempre é uma vilã?<br />@leandronet<br />Fuuuuuuu!!!<br />Depende!<br />OMG!!<br />
@leandronet<br />Quadrante da dívida técnica<br />“Nós não temos tempo para design”<br />“Nós vamos lidar com as consequên...
Identificando padrões idiomáticos<br />@leandronet<br />
Para fechar, algumas dicas importantes...<br />@leandronet<br />
É necessário tomar essa decisão agora?<br />Posso adiar essa decisão com segurança?<br />O que posso fazer para tornar ess...
Toda e qualquer atividade dentro do desenvolvimento de software é importante.<br />Pense sempre em flexibilidade.<br />Não...
Tenha ciência do seu conhecimento (e da sua ignorância, se possível...)<br />“A simplicidade consiste em subtrair o óbvio ...
Upcoming SlideShare
Loading in...5
×

FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

1,375

Published on

Palestra realizada na 4ª Semana Integrada / Faculdade Impacta e na 2ª Semana de Tecnologia da IFSP.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,375
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

  1. 1. Arquitetura (evolucionária) <br />de Software e o Arquiteto<br />Leandro Daniel<br />@leandronet<br />
  2. 2. Leandro Daniel<br />@leandronet<br />Comunidade<br />.net Magazine<br />Podcaster<br />Desenvolvimento de software<br />Visual Studio<br />ClubeDelphi<br />Editor Técnico <br />.NET<br />SQL Server <br />Autor de artigos<br />Business Intelligence<br />Arquiteto de Sistemas<br />Várias certificações...<br />
  3. 3. http://voidpodcast.com<br />
  4. 4. Objetivos<br />Refletir sobre o desenvolvimento de software<br />Entender a importância da arquitetura<br />Apresentar uma abordagem prática de arquitetura<br />
  5. 5. Refletindo sobre o desenvolvimento de software<br />
  6. 6. Com o que o desenvolvimento de software se parece?<br />
  7. 7. Engenharia... É tudo igual?<br />
  8. 8. “-Ficou ótima a ponte! <br />Dá pra mudar ela de lugar?”<br />
  9. 9. É possível morar em um <br />prédio inacabado?<br />
  10. 10. É possível construir um avião em pleno voo?<br />
  11. 11.
  12. 12. Complicar a execução de tarefas simples parece besteira?<br />
  13. 13. Desenvolver software se parece mais com isso:<br />by Fred Brooks<br />–Mythical Man-Month, The: Essays on Software Engineering, <br />Anniversary Edition, Capítulo 1<br />Escrever poemas. :)<br />
  14. 14.
  15. 15.
  16. 16.
  17. 17. @leandronet<br />Arquitetura existe, sempre! Mesmo que não seja pensada!<br />Mas... O que é <br />arquitetura afinal?<br />
  18. 18. @leandronet<br />Arquitetura<br />Implementação<br />Design<br />
  19. 19. @leandronet<br />Arquitetura é aquela coisaque é difícil de mudar depois.<br />Por essa razão, deve existir o mínimo possível dessa coisa.<br />
  20. 20. <ul><li>Conjuntodas decisõesmais importantes
  21. 21. Decisões com altocusto de reversão
  22. 22. Componentes– Papéis – Relacionamentos</li></ul>Gentilmente copiado do @elemarjr =P<br />
  23. 23. “organização fundamental de um sistema incorporada em seus componentes, suas relações entre si e entre o ambiente e os princípios guiando seu design e evolução”<br />IEEE<br />@leandronet<br />
  24. 24. Existe diferença?<br />@leandronet<br />
  25. 25.
  26. 26.
  27. 27.
  28. 28. Papéis do Arquiteto<br />SOA Architect<br />Data Architect<br /><papel aqui> Architect<br />
  29. 29. Preocupações relevantes durante o processo de definição de uma arquitetura<br />(segundo o TOGAF)<br />
  30. 30. <Intermission><br />
  31. 31. Apresentando: Um código C#!<br />
  32. 32. Essaéumaabstração do código (by NDepend)<br />Assembly<br />Classe<br />Método<br />
  33. 33.
  34. 34.
  35. 35. c<br />
  36. 36. Qual abordagem você utilizaria para construir esse software?<br /></Intermission><br />
  37. 37. Entendendo a importância da arquitetura de software<br />
  38. 38. Espectro do Design<br />Waterfall<br />clássico<br />Some<br />DUF<br />Agile<br />XGH<br />Design<br />Emergente<br />BDUF<br />@leandronet<br />
  39. 39. Arquitetura Evolucionária e Design Emergente<br />@leandronet<br />#Simples<br />#Adaptativa<br />#Foco do cliente<br />#Agile<br />#YAGNI<br />#Iterativa<br />#Flexível<br />
  40. 40. "Nãoexiste nenhumdesignno início. <br />Você começa codificando uma <br />pequenaquantidade de funcionalidades, e vai acrescentando outras gradativamente, deixando que o design tomeforma!”<br />Martin Fowler<br />@leandronet<br />Design Emergente<br />
  41. 41. Sim, a entropia existe em software...<br />Manter as coisas como estão, <br />exige trabalho!<br />@leandronet<br />
  42. 42.
  43. 43. Quanto mais tempo você adiar suas decisões...<br />...Mais contextualizadas elas serão!<br />@leandronet<br />
  44. 44. <Lembrando><br />Qual abordagem você utilizaria para construir esse software?<br /></Lembrando><br />
  45. 45. Práxis da Arquitetura Evolucionária<br />
  46. 46. @leandronet<br />
  47. 47. Dívida Técnica<br />“Obrigação que uma organização de software incorre quando escolhe um design ou um tipo de construção que é práticonocurto prazo mas que aumenta a complexidade e é maiscustoso no longoprazo.”<br />Ward Cunningham <br />@leandronet<br />
  48. 48. Dívida técnica sempre é uma vilã?<br />@leandronet<br />Fuuuuuuu!!!<br />Depende!<br />OMG!!<br />
  49. 49. @leandronet<br />Quadrante da dívida técnica<br />“Nós não temos tempo para design”<br />“Nós vamos lidar com as consequências”<br />Prudente<br />e<br />De propósito<br />Irresponsável<br />e<br />De propósito<br />“O que são camadas?”<br />“Agora nós sabemos que deveríamos ter feito isso”<br />Prudente<br />e<br />Sem querer<br />Irresponsável<br />e<br />Sem querer<br />
  50. 50. Identificando padrões idiomáticos<br />@leandronet<br />
  51. 51. Para fechar, algumas dicas importantes...<br />@leandronet<br />
  52. 52. É necessário tomar essa decisão agora?<br />Posso adiar essa decisão com segurança?<br />O que posso fazer para tornar essa <br />decisão reversível?<br />@leandronet<br />
  53. 53. Toda e qualquer atividade dentro do desenvolvimento de software é importante.<br />Pense sempre em flexibilidade.<br />Não lute contra as “mudanças”.<br />@leandronet<br />
  54. 54. Tenha ciência do seu conhecimento (e da sua ignorância, se possível...)<br />“A simplicidade consiste em subtrair o óbvio e acrescentar o significativo.”<br />(John Maeda)<br />Quando em dúvida, erre pela simplicidade.<br />@leandronet<br />
  55. 55. Referências<br />Pesquise no Google por:<br /><ul><li>“Neal Ford” + “EvolutionaryArchitecture”
  56. 56. “Martin Fowler” + Design + Enterprise</li></ul>http://reverb.leandrodaniel.com<br />http://voidpodcast.com <br />
  57. 57. Obrigado! :)<br />@leandronet<br />contato@leandrodaniel.com<br />http://reverb.leandrodaniel.com<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×