Successfully reported this slideshow.
Your SlideShare is downloading. ×

ACRUMEN Slides for Arlington Ruby (Practice for DevConf)

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 75 Ad
Advertisement

More Related Content

Similar to ACRUMEN Slides for Arlington Ruby (Practice for DevConf) (20)

Recently uploaded (20)

Advertisement

ACRUMEN Slides for Arlington Ruby (Practice for DevConf)

  1. 1. @davearonsonwww.Codosaur.us ACRUMEN: The Six Key Aspects of Software Quality by Dave Aronson Slides at: bit.ly/acrumen-slides-arlington-ruby
  2. 2. @davearonsonwww.Codosaur.us Dzień dobry, Kraków! (Good morning, Krakow!)
  3. 3. @davearonsonwww.Codosaur.us Jestem Dave Aronson, (I am Dave Aronson,)
  4. 4. @davearonsonwww.Codosaur.us i przyjechałem opowiedzieć wam o (and I came to tell you about)
  5. 5. @davearonsonwww.Codosaur.us ACRUMEN
  6. 6. @davearonsonwww.Codosaur.us ale, zrobię to po angielsku. (but, I will do it in English.)
  7. 7. @davearonsonwww.Codosaur.us Experienced Developer
  8. 8. @davearonsonwww.Codosaur.us T. Rex of Codosaurus, LLC
  9. 9. @davearonsonwww.Codosaur.us Member of Toptal (but not speaking on their behalf) https://www.toptal.com/#accept-only-candid-coders
  10. 10. @davearonsonwww.Codosaur.us Do you like low quality software?
  11. 11. @davearonsonwww.Codosaur.us Have you written any?
  12. 12. @davearonsonwww.Codosaur.us We need more software quality!
  13. 13. @davearonsonwww.Codosaur.us What is software quality?!
  14. 14. @davearonsonwww.Codosaur.us Previous attempts to define software quality:
  15. 15. @davearonsonwww.Codosaur.us So zoom out . . .
  16. 16. @davearonsonwww.Codosaur.us . . . to six aspects . . .
  17. 17. @davearonsonwww.Codosaur.us . . . with simple names and explanations . . .
  18. 18. @davearonsonwww.Codosaur.us . . . from many points of view. +
  19. 19. @davearonsonwww.Codosaur.us ACRUMEN
  20. 20. @davearonsonwww.Codosaur.us Acrumen: Latin for sour fruit
  21. 21. @davearonsonwww.Codosaur.us ACRUMEN: Prioritized acronym of aspects
  22. 22. @davearonsonwww.Codosaur.us Software should be: does the right job does the job right hard to make misbehave easy (for users) to use easy (for devs) to change efficiently uses resources Appropriate Correct Robust Usable Maintainable Efficient : : : : : :
  23. 23. @davearonsonwww.Codosaur.us N stands for… Nothing! Just makes a word.
  24. 24. @davearonsonwww.Codosaur.us Aspekty po Polsku — oprogramowanie powinno być: Właściwe : wykonuje właściwą pracę Poprawne : prawidłowo wykonuje zadanie Odporne : trudno wymusić błędne zachowanie Praktyczne : łatwe w użyciu Utrzymywalne : łatwe do zmiany Wydajne : skutecznie wykorzystuje zasoby
  25. 25. @davearonsonwww.Codosaur.us The Importance of Being Appropriate ≠
  26. 26. @davearonsonwww.Codosaur.us Achieving Appropriate: Requirements Analysts?
  27. 27. @davearonsonwww.Codosaur.us Achieving Appropriate: Talk to stakeholders!
  28. 28. @davearonsonwww.Codosaur.us Achieving Appropriate: Mockups, Prototypes, Demos
  29. 29. @davearonsonwww.Codosaur.us Achieving Appropriate: Propose Tests!
  30. 30. @davearonsonwww.Codosaur.us Correct
  31. 31. @davearonsonwww.Codosaur.us How do we know it’s Correct?
  32. 32. @davearonsonwww.Codosaur.us Achieving Correct: Proven by Tests!
  33. 33. @davearonsonwww.Codosaur.us Achieving Correct: Automated tests
  34. 34. @davearonsonwww.Codosaur.us Achieving Correct: Start with “appropriate” tests (high-level)
  35. 35. @davearonsonwww.Codosaur.us Achieving Correct: Low-level tests too
  36. 36. @davearonsonwww.Codosaur.us Robust
  37. 37. @davearonsonwww.Codosaur.us Defining Robust: Upholding the CIA Triad Confidentiality Availability Integrity
  38. 38. @davearonsonwww.Codosaur.us Confidentiality: Don’t Reveal Info (w/o authorization)
  39. 39. @davearonsonwww.Codosaur.us Integrity: Don’t Alter Info (w/o authorization)
  40. 40. @davearonsonwww.Codosaur.us Availability: Don’t Be Unavailable (w/o authorization)
  41. 41. @davearonsonwww.Codosaur.us Defining Robust: Uphold CIA Triad even under attack
  42. 42. @davearonsonwww.Codosaur.us Achieving Robust: Penetration Testers?
  43. 43. @davearonsonwww.Codosaur.us Pen-Test Tools: Static Analyzers
  44. 44. @davearonsonwww.Codosaur.us Pen-Test Tools: Fuzzers
  45. 45. @davearonsonwww.Codosaur.us Pen-Test Tools: Probes
  46. 46. @davearonsonwww.Codosaur.us Achieving Robust: What could go wrong?
  47. 47. @davearonsonwww.Codosaur.us Achieving Robust: Pick a file, any file…
  48. 48. @davearonsonwww.Codosaur.us Achieving Robust: Think Like an Attacker
  49. 49. @davearonsonwww.Codosaur.us Achieving Robust: Handle Likely Problems
  50. 50. @davearonsonwww.Codosaur.us Usable
  51. 51. @davearonsonwww.Codosaur.us Defining Usable: Clear what/how
  52. 52. @davearonsonwww.Codosaur.us Defining Usable: What Else Can It Do? But wait! There’s more!
  53. 53. @davearonsonwww.Codosaur.us Defining Usable: Easy Despite Challenges
  54. 54. @davearonsonwww.Codosaur.us ALL software should be usable! GET /index.html HTTP/1.1 HOST www.example.com HTTP/1.1 200 OK <html><body>Hello, world!</body></html>
  55. 55. @davearonsonwww.Codosaur.us Achieving Usable: Usability User Interface Experts?
  56. 56. @davearonsonwww.Codosaur.us Achieving Usable: Guidelines, Standards, and Regulations
  57. 57. @davearonsonwww.Codosaur.us Achieving Usable: Use It Ourselves
  58. 58. @davearonsonwww.Codosaur.us Achieving Usable: Testing!
  59. 59. @davearonsonwww.Codosaur.us Defining Maintainable: Easy to Change
  60. 60. @davearonsonwww.Codosaur.us Defining Maintainable: …with low chance of error…
  61. 61. @davearonsonwww.Codosaur.us Defining Maintainable: …and low fear of error…
  62. 62. @davearonsonwww.Codosaur.us Defining Maintainable: …even for a novice…
  63. 63. @davearonsonwww.Codosaur.us Defining Maintainable: …new to the project.
  64. 64. @davearonsonwww.Codosaur.us Achieving Maintainable: Good Names
  65. 65. @davearonsonwww.Codosaur.us Achieving Maintainable: Single Responsibility
  66. 66. @davearonsonwww.Codosaur.us Achieving Maintainable: Tests!
  67. 67. @davearonsonwww.Codosaur.us Efficient Use of Resources
  68. 68. @davearonsonwww.Codosaur.us Achieving Efficient: Measure!
  69. 69. @davearonsonwww.Codosaur.us Achieving Efficient: Algorithms and Data Structures
  70. 70. @davearonsonwww.Codosaur.us Achieving Efficient: Performance Test
  71. 71. @davearonsonwww.Codosaur.us Achieving Efficient: Multitasking
  72. 72. @davearonsonwww.Codosaur.us Multitasking Example: Generating a PDF
  73. 73. @davearonsonwww.Codosaur.us If our software is Appropriate, Correct, Robust, Usable, Maintainable, and Efficient, then Nobody should be sour about it! Conclusion
  74. 74. @davearonsonwww.Codosaur.us Just to keep legal, image credits: all mine, public domain, used with permission, or usable with credit Alterations: http://www.barksdale.af.mil/News/Article/321176/military-clothing-sales-reopens-inside-base-exchange/ ATM: http://www.publicdomainpictures.net/view-image.php?image=25030 Billy Mays: https://commons.wikimedia.org/wiki/File:Billy_Mays_headshot.jpg Boards High Up: https://pixabay.com/en/boards-height-balance-2040575/ Business Silhouettes: http://www.publicdomainpictures.net/view-image.php?image=57465 Calipers: https://pixabay.com/en/diet-calorie-counter-weight-loss-695723/ Call Stack: https://commons.wikimedia.org/wiki/File:ProgramCallStack2_en.png Cassini Space Probe: https://photojournal.jpl.nasa.gov/catalog/PIA03883 Checkers: https://commons.wikimedia.org/wiki/File:Draughts.svg Checklist on clipboard: https://pixabay.com/en/checklist-clip-board-blank-to-do-310092/ Checklist w/o clipboard: https://pixabay.com/en/checklist-list-check-check-list-911840/ Chess: https://bs.wikipedia.org/wiki/Datoteka:AAA_SVG_Chessboard_and_chess_pieces_03.svg Clear Night Sky: https://pixabay.com/en/british-columbia-canada-clear-lake-2382640/ Codosaurus Rate Calculator: screenshot taken by me, of my own app Corrected Paper: https://commons.wikimedia.org/wiki/File:Correct.svg Darth Vader: https://pixabay.com/en/star-wars-darth-wader-villain-2463926/ Data Structure: https://commons.wikimedia.org/wiki/File:A_diagram_of_the_Aho-Corasick_string_search_algorithm_extracted.png Desktop App: https://pixabay.com/en/presentation-slide-animation-title-1794128/ Dice: https://pxhere.com/en/photo/615255 Dog Eating: http://www.usafe.af.mil/News/Article-Display/Article/748008/mwds-cared-for-at-home-station-in-the-field/ Dog at keyboard: https://www.publicdomainpictures.net/en/view-image.php?image=174322 Easy Button: https://www.flickr.com/photos/slgc/24803618672 Easy Cheese: https://www.flickr.com/photos/jeepersmedia/13943817487 Error X: https://commons.wikimedia.org/wiki/File:Dialog-error-round.svg Experts (tho Road Safety, not Requirements): http://archive.government.ru/eng/multimedia/photo/2013/3/#PhotoSwipe1528053974200 Experts (tho NASA, not UX): https://roundupreads.jsc.nasa.gov/pages.ashx/699/10%20things%20to%20know%20and%20share%20about%20the%20Eclipse%20Across%20America Eye Tester: https://commons.wikimedia.org/wiki/File:Test_type_to_test_eyesight,_England,_1920-1960_Wellcome_L0058205.jpg F-35 Flight Test: http://www.hill.af.mil/News/Article-Display/Article/838188/commentary-diamond-in-the-rough-commander-shares-514th-flts-mission/ F-35 Landing Test: http://www.eglin.af.mil/News/Article/814410/marines-fly-first-f-35-stovl-mission-at-eglin/ Feedback Circuit: mine (other than the “?” and the color, this was the TIDMADT logo.) File Icon: extracted from https://pixabay.com/en/folder-icon-file-business-sign-2013220/ Fuzzy Green Slippers: https://www.flickr.com/photos/jamiesrabbits/4131046128 Girl with Staticy Hair: extracted from https://pixabay.com/en/girl-child-trampoline-blonde-212022 (CC0) Glucose Test: https://pxhere.com/en/photo/726931 Handle: https://pixabay.com/en/handle-door-handle-doorknob-lock-1200809/ International Space Station: https://www.flickr.com/photos/nasacommons/8980505397 Lemonade: https://pixabay.com/en/lemonade-lemons-glass-beverage-1447521/ Lemonhead: https://www.maxpixel.net/Face-Fruit-Citrus-Fruit-Angry-Sour-Citron-Lemon-155021 Long List: https://pxhere.com/en/photo/941467 Low Quality: https://pixabay.com/en/bad-review-bad-customer-review-2813741/ Man in Matrix: https://pixabay.com/en/man-despair-problem-null-one-65049/ Mobile App: https://pixabay.com/en/whatsapp-smartphone-mobile-phone-3126713/ Name Tags: https://commons.wikimedia.org/wiki/File:NFX_Guild_conference_name_tags.jpg New Guy: https://commons.wikimedia.org/wiki/File:New_Guy_(5895483627).jpg Novice: https://pxhere.com/en/photo/796734 One Job: https://bloodredstrider.deviantart.com/art/Fortune-Cookie-Fail-394495312 Ordered List: https://pixabay.com/en/steps-list-ordered-list-items-1496523/ Parallel Lines: https://pixabay.com/en/train-gleise-traces-parallel-3415515/ Penetrating Pen: https://commons.wikimedia.org/wiki/File:Javad_alizadeh_-penetrating-pen.jpg Plan A/B/C: https://pixabay.com/get/ef37b10d21fd1c22d9584518a345479ee277e0d204b014439df0c47ba7eab1/planning-620299_1920.jpg Potatoes in Pot: https://pixabay.com/en/potatoes-fear-horror-pot-cook-3119211/ Prius: https://www.flickr.com/photos/toyota-europe/6759334043/in/photostream/ Quality Excellence Package: https://pixabay.com/en/software-packaging-quality-500956/ Shuttle Engine Performance Test: https://www.nasa.gov/multimedia/imagegallery/image_feature_457.html Simple list: https://commons.wikimedia.org/wiki/File:List_icon.svg Site Unavailable: https://pixabay.com/en/error-www-internet-calculator-101408/ Test Pattern: https://commons.wikimedia.org/wiki/File:RCA_Indian_Head_test_pattern.JPG The Codosaurus: by Fanie Gregoire, https://www.etsy.com/shop/fanie (used by permission) Thermos: https://zh.wikipedia.org/wiki/File:Thermoskanne(hoch,_silber).JPG Ties: https://www.publicdomainpictures.net/en/view-image.php?image=37274 TPS Report: https://www.flickr.com/photos/wufoo/4055862405 Tractor: https://commons.wikimedia.org/wiki/File:Hanomag_Robust_901A_Cloppenburg.jpg Triangle: https://cdn.pixabay.com/photo/2016/03/31/17/52/geometry-1293961_960_720.png (words mine) Two Women at Laptop: https://www.flickr.com/photos/wocintechchat/22543243101 Usability Testing: https://www.flickr.com/photos/eekim/1819059803 Unix Command Line: https://en.wikipedia.org/wiki/File:Version_7_Unix_SIMH_PDP11_Emulation_DMR.png Viking: https://pixabay.com/en/man-viking-barbarian-machado-1706964/ Weeds: extracted from https://commons.wikimedia.org/wiki/File:Indian_Weeds.jpg Wireframe Mockups: https://www.flickr.com/photos/qubodup/14793417722 Wizard: https://commons.wikimedia.org/wiki/File:Kandalf_wizard_mascot_kde.png Woman Programming: https://pxhere.com/en/photo/912909 Wondering Monkey: https://www.pexels.com/photo/brown-monkey-photo-767197/ Your Co's App: Eric Burke of StuffThatHappens.com (defunct)
  75. 75. @davearonsonwww.Codosaur.us http://www.Codosaur.us @davearonson (on Twitter) Questions? Feedback? Training? Thanks again to Toptal (https://toptal.com/#accept-only-candid-coders)! ?

×