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.

Feedback-based Evolutionary Design

475 visualizações

Publicada em

Video and slides synchronized, mp3 and slide download available at http://bit.ly/12bfeX3.

Graham Brooks explores internal measurements used in a continuous delivery feedback mechanism in order to improve a system's design. Filmed at qconnewyork.com.

Graham Brooks is a software developer. When not consulting with clients he works on open source projects, learns new programming languages and reads. He has been a practicing developer, architect and team lead since the early 80s when he first became interested in programming.

Publicada em: Tecnologia, Negócios
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Feedback-based Evolutionary Design

  1. 1. Feedback based evolutionary design Graham Brooks gbrooks@thoughtworks.com Twitter: @grahamcbrooks Blog: http://www.grahambrooks.com/blog
  2. 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /feedback-continuous-delivery
  3. 3. Presented at QCon New York www.qconnewyork.com Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide
  4. 4. Design
  5. 5. 90’s UML and 4GL is Design
  6. 6. Design Build Test
  7. 7. Design Build Test Requirement Specifications Architecture Design Detailed design Modeling Write Code
  8. 8. Design!
  9. 9. Design TestDesign Design Build Build Build
  10. 10. If code is the design • Automated • Fast • Synchronized • Measurable
  11. 11. Design Design Design Design Build Test Build Test Build Test Build Test
  12. 12. Design Design Design Design Build Test Release Build Test Release Build Test Release Build Tes R
  13. 13. Design Design Design Design Time Design Fragmentation
  14. 14. Report Management Data Store Customers Analysts CMS Web Application CMIS Store Sales F For Ide ManageHTML Reports Immutable Store Data cleaning & View Generation Data Data Administration
  15. 15. Just one more thing...
  16. 16. Design Design Design Design Empirical Design
  17. 17. Feedback
  18. 18. Evaluating a build is evaluating the design The trick is knowing what to evaluate
  19. 19. Feedback
  20. 20. Feedback system A B
  21. 21. Feedback system A BComponent
  22. 22. Feedback system A BComponent BComponent Component
  23. 23. Feedback system A BComponent BComponent Component √ 7,000 request/s
  24. 24. Reinforcing feedback • Positive Feedback • Green Tests • Simpler - Lower complexity • Faster - Lower latency • Cleaner - Lower coupling
  25. 25. Disruptive feedback • Negative Feedback • Failed Tests • Complex - higher complexity • Slower - Higher latency • Dirty - High coupling Why??!!
  26. 26. Good Feedback • Fast • Deterministic • In Context • Value degrades • Small in number
  27. 27. • Static analysis • Operational analysis • Runtime
  28. 28. Automated functional tests are not enough
  29. 29. Measurements are contextual
  30. 30. Internal Web App Algorithmic TradingPerformance Monthly reports Social NetworkingAvailability Single server Distributed devicesConsistency Rebuild StartupResponsive
  31. 31. Too much feedback
  32. 32. Judgement Total toxicity 7524 Bad !!!!!
  33. 33. Antipatterns • Test cases with no asserts to improve coverage • Classes with shared responsibilities to reduce class/method length • Averages - fixing problems makes the average worse
  34. 34. • Javascript load order in the browser significantly impacting user perceptions Competing business drivers
  35. 35. • Javascript load order in the browser significantly impacting user perceptions • Advertising stakeholder - wants display advertising to always load and load early Competing business drivers
  36. 36. • Javascript load order in the browser significantly impacting user perceptions • Advertising stakeholder - wants display advertising to always load and load early • Business owner wants content to always load and advertising to be optimistic Competing business drivers
  37. 37. Rework Competing business drivers
  38. 38. Acceptance Test Competing business drivers
  39. 39. access.log
  40. 40. Design Countermeasures • Double over the wire encryption • Encapsulation • Microtype sensitive information • Obfuscation • String - byte or encrypted
  41. 41. Operational Change 100 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 Day Latency100ms
  42. 42. Lifesaver
  43. 43. Incorporating Feedback • Continuous (Integration) Delivery pipeline • Static code analysis • Load evaluations • System Interaction analysis • Security analysis
  44. 44. Humans
  45. 45. ThankYou Graham Brooks gbrooks@thoughtworks.com Twitter: @grahamcbrooks Blog: http://www.grahambrooks.com/blog ReBar
  46. 46. • http://www.developerdotstar.com/mag/ articles/reeves_design.html

×