O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Stories Every Developer Should Know

795 visualizações

Publicada em

Those who cannot remember the past are condemned to repeat it. –George Santayana

The past is never dead. It’s not even past. –William Faulkner

Most developers pursue the Latest and Greatest with intense fervor, yet the history of engineering, including software projects, contains rich lessons that we risk repeating ad nauseam. This session recounts a variety of stories of projects that failed…and why. Ranging from the Vasa in 1628 to Knight Capital in 2012, each story tells of a mistaken interpretation of some architectural fundamental principle and the consequences–some good, some less so. I also look at the common threads for these stories, which resonates with problems many companies have but don’t realize.



Pets. Com, San Francisco project, The Vasa, F16, Sagrada Familia, Tacoma Narrows Bridge, null, Ada, Serialization, Knight Capital, Ariane 5, Webvan, Chandler project

Publicada em: Software
  • Seja o primeiro a comentar

Stories Every Developer Should Know

  1. 1. Stories Every Developer Should Know @neal4d nealford.com
  2. 2. Vasa
  3. 3. 72x24lb/11Kg
  4. 4. 2- deck ships cannon ships
  5. 5. 2- deck ships cannon ships 2-deck cannon ships
  6. 6. #scaling_architecture
  7. 7. some things in architecture don’t scale linearly
  8. 8. when restructuring architecture… …reevaluate “—ilities”.
  9. 9. requirements
  10. 10. requirements + “—ilities”
  11. 11. defining architecture
  12. 12. no !
  13. 13. #tradeoffs
  14. 14. Tacoma Narrows Bridge
  15. 15. By Tysto - Self-published work by Tysto, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=477955
  16. 16. #scaling_architecture
  17. 17. F16
  18. 18. 1974
  19. 19. requirements + “—ilities” #feasibility
  20. 20. Why?
  21. 21. null
  22. 22. https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare
  23. 23. https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare
  24. 24. Person x = new Person(); Cat y = new Cat(); x = y; //not permitted
  25. 25. x = ?
  26. 26. x = ?
  27. 27. ?
  28. 28. Algol
  29. 29. Algol
  30. 30. why we can’t have nice things #legacy
  31. 31. #reuse
  32. 32. serializationserialization
  33. 33. #implications
  34. 34. Ada
  35. 35. Lady Ada Lovelace
  36. 36. Ada
  37. 37. Ada HOLWG
  38. 38. Ada
  39. 39. Ada
  40. 40. Ada
  41. 41. > 450 1983 37 1996 DOD Languages Used
  42. 42. COTS
  43. 43. #ubuiltit #uownit
  44. 44. #standardization
  45. 45. #overengineering (#forced)
  46. 46. Ariane 5
  47. 47. 0110101101011010 0110101101011010011010110101101001101011010110100110101101011010 guidance system (16 bit): flight data (64 bit):
  48. 48. 01101011010110100110101101011010011010110101101001101011010110100110101101011010 guidance system (16 bit): flight data (64 bit): Some of those bits might have been important!
  49. 49. guidance system (16 bit): v5 faster than v4 #reuse
  50. 50. guidance system (16 bit): only used on the ground… #debuggingNproduction …kept on for first 40s of flight…
  51. 51. #debuggingNproduction #legacy #abstractiondistraction
  52. 52. https://www.thoughtworks.com/insights/blog/implications-tech-stack-complexity-executives increased tech stack complexity #abstractiondistraction
  53. 53. https://www.thoughtworks.com/insights/blog/implications-tech-stack-complexity-executives increased tech stack complexity #abstractiondistraction
  54. 54. https://www.thoughtworks.com/insights/blog/implications-tech-stack-complexity-executives #abstractiondistraction
  55. 55. #debuggingNproduction #legacy #abstractiondistraction an int is an int…
  56. 56. pets.com
  57. 57. #toolittleinfrastructure
  58. 58. webvan
  59. 59. why webvan failed
  60. 60. why webvan failed
  61. 61. why webvan failed
  62. 62. #toomuchinfrastructure
  63. 63. #toomuchinfrastructure Let’s build all the frameworks we’ll need first!
  64. 64. #misunderstanding”—ilities"
  65. 65. Knight Capital
  66. 66. “bankrupt in 45 minutes” dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/
  67. 67. SMARS PowerPeg
  68. 68. http://www.nanex.net/aqck2/3522.html
  69. 69. SMARS PowerPeg
  70. 70. SMARS PowerPeg
  71. 71. #doyouevenDevOps?
  72. 72. clean up technical debt #reusegonebad
  73. 73. San Francisco Project
  74. 74. Every business is pretty much the same, isn’t it? spoken by someone who has never implemented a real-world business solution
  75. 75. auto and homeowners insurance division commercial insurance division casualty insurance division life insurance division disability insurance division travel insurance division customer customer customer customer customer customer customer service
  76. 76. #canonicality
  77. 77. bounded context ≠ entity
  78. 78. The more reusable something is, the less usable it is. — Evolutionary Architectures http://evolutionaryarchitecture.com
  79. 79. Microservice is a label, not a description. — Martin Fowler https://martinfowler.com/articles/microservices.html
  80. 80. San Francisco Foundation and Utilities San Francisco Common Business Objects
  81. 81. San Francisco Foundation and Utilities San Francisco Common Business Objects
  82. 82. #last10%rule
  83. 83. “Users always want 100% of what they want (& are never satisfied with less).” 80% what the user wants 10% 10% #last10%rule
  84. 84. #last10%rule #reuse
  85. 85. Chandler Project
  86. 86. infinite time infinite resources no legacy
  87. 87. https://www.amazon.com/Dreaming-Code-Programmers-Transcendent-Software/dp/1400082471
  88. 88. By OSAF - http://en.wikipedia.org/wiki/Image:Chandler_calendar_screenshot.png, CC BY 3.0, https://commons.wikimedia.org/w/index.php?curid=3876130
  89. 89. We’ve consistently overinvested in infrastructure and design, the fruits of which won’t be realized in the next development cycle or even two—that is, not in the next six or twelve months.
  90. 90. I’m more and more feeling like the art here is to do agile development without losing the long-term vision—and, frankly, I didn’t even define the problem as that to start with.
  91. 91. #metawork is more interesting than work.
  92. 92. #metawork is more interesting than work.
  93. 93. Sagrada Famila
  94. 94. #experimental LMAX
  95. 95. Vasa Tacoma Narrows F 16 null Ada Ariane 5 pets.com webvan Knight Capital SF Project Chandler Sagrada Familia
  96. 96. #tradeoffs #scaling_architecture #feasibility #legacy #standardization #reuse #toolittle #toomuch #doyouDevOps #canonicality #metawork #experimental Those who do not learn history are doomed to repeat it. —George Santayana
  97. 97. #tradeoffs Vasa F 16 Ada SF Project Chandler null
  98. 98. #tradeoffs #scaling_architecture #feasibility #legacy #standardization #reuse #toolittle #toomuch #doyouDevOps #canonicality #metawork #experimental Those who do not learn history are doomed to repeat it. —George Santayana
  99. 99. #metawork Envelopes webvan SF Project Chandler Ada
  100. 100. Vasa Tacoma Narrows F 16 null Ada Ariane 5 pets.com webvan Knight Capital SF Project Chandler Sagrada Familia #reuse
  101. 101. #reuse design Vasa
  102. 102. #reuse design Tacoma Narrows
  103. 103. #reuse old code null
  104. 104. #reuse everything Ada
  105. 105. #reuse old code Ariane 5
  106. 106. #reuse not enough! pets.com
  107. 107. #reuse invest too early webvan.com
  108. 108. #reuse old toggles Knight Capital
  109. 109. #reuse ∞San Francisco Project
  110. 110. #reuse design Chandler code frameworks platforms
  111. 111. message bus process choreographer service orchestrator business services BS BS BS BS BS BS enterprise services ES ES ES ES ES ES application services AS infrastructure services IS ESB-SOA
  112. 112. Customer Code Reuse (Over Time) checkout shipping ESB-SOA
  113. 113. checkout shippingmicroservices Code Reuse (Over Time)
  114. 114. The more reusable code is, the less usable it is.
  115. 115. checkout shippingmicroservices Code Reuse (Over Time) service component module module
  116. 116. service component module module service component module module
  117. 117. service templates service component module module logging monitoring A&A http://www.dropwizard.io/https://projects.spring.io/spring-boot/
  118. 118. #reuse carefully
  119. 119. #tradeoffs #scaling_architecture #reuse #toolittle #toomuch #doyouDevOps #canonicality #metawork #experimental Those who do not learn history are doomed to repeat it. —George Santayana The past is never dead. It’s not even past. —William Faulkner #feasibility #legacy #standardization
  120. 120. nealford.com @neal4d nealford.com/books nealford.com/videos www.oreilly.com/software-architecture-video-training-series.html

×