Successfully reported this slideshow.
Your SlideShare is downloading. ×

ACRUMEN Slides for DevConf Poland

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 86 Ad
Advertisement

More Related Content

Similar to ACRUMEN Slides for DevConf Poland (20)

Recently uploaded (20)

Advertisement

ACRUMEN Slides for DevConf Poland

  1. 1. @davearonsonwww.Codosaur.us Write Better Software with ACRUMEN(The Six Key Aspects of Software Quality) by Dave Aronson Slides at: bit.ly/acrumen-devconf-pl-slides
  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 . . . (but . . .)
  7. 7. @davearonsonwww.Codosaur.us zrobię to po angielsku. (I will do it in English.)
  8. 8. @davearonsonwww.Codosaur.us Experienced Developer
  9. 9. @davearonsonwww.Codosaur.us T. Rex of Codosaurus, LLC
  10. 10. @davearonsonwww.Codosaur.us Member of Toptal (but not speaking on their behalf) https://www.toptal.com/#accept-only-candid-coders
  11. 11. @davearonsonwww.Codosaur.us Do you like low quality software?
  12. 12. @davearonsonwww.Codosaur.us Have you written any?
  13. 13. @davearonsonwww.Codosaur.us We need more software quality!
  14. 14. @davearonsonwww.Codosaur.us What is software quality?!
  15. 15. @davearonsonwww.Codosaur.us Previous attempts to define software quality:
  16. 16. @davearonsonwww.Codosaur.us So zoom out to high level . . .
  17. 17. @davearonsonwww.Codosaur.us . . . from many points of view. +
  18. 18. @davearonsonwww.Codosaur.us ACRUMEN
  19. 19. @davearonsonwww.Codosaur.us Acrumen: Latin for sour fruit
  20. 20. @davearonsonwww.Codosaur.us ACRUMEN: Prioritized acronym of aspects
  21. 21. @davearonsonwww.Codosaur.us : does the right job (do what’s needed) : does the job right (do it correctly) : hard to make it misbehave : easy to use (for users) : easy to change (for devs) : efficiently uses resources Software should be: Appropriate Correct Robust Usable Maintainable Efficient
  22. 22. @davearonsonwww.Codosaur.us N stands for… Nothing! Just makes a word.
  23. 23. @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
  24. 24. @davearonsonwww.Codosaur.us How to Use ACRUMEN
  25. 25. @davearonsonwww.Codosaur.us How to Use ACRUMEN
  26. 26. @davearonsonwww.Codosaur.us Appropriate: do the right job
  27. 27. @davearonsonwww.Codosaur.us Appropriate > ALL the rest A CRUMEN
  28. 28. @davearonsonwww.Codosaur.us The Importance of Being Appropriate ≠
  29. 29. @davearonsonwww.Codosaur.us Achieving Appropriate: Requirements Analysts?
  30. 30. @davearonsonwww.Codosaur.us Achieving Appropriate: Talk to stakeholders!
  31. 31. @davearonsonwww.Codosaur.us Achieving Appropriate: Mockups, Prototypes, Demos
  32. 32. @davearonsonwww.Codosaur.us Achieving Appropriate: Propose Tests!
  33. 33. @davearonsonwww.Codosaur.us Correct: do the job right
  34. 34. @davearonsonwww.Codosaur.us How do we know it’s Correct?
  35. 35. @davearonsonwww.Codosaur.us Achieving Correct: Proven by Tests!
  36. 36. @davearonsonwww.Codosaur.us Achieving Correct: Automated tests
  37. 37. @davearonsonwww.Codosaur.us Achieving Correct: Start with “appropriate” tests (high-level)
  38. 38. @davearonsonwww.Codosaur.us Achieving Correct: Low-level tests too
  39. 39. @davearonsonwww.Codosaur.us Achieving Correct: Property and Mutation Testing
  40. 40. @davearonsonwww.Codosaur.us Robust: hard to make it “misbehave”
  41. 41. @davearonsonwww.Codosaur.us Defining Robust: Upholding the CIA Triad Confidentiality Availability Integrity
  42. 42. @davearonsonwww.Codosaur.us Confidentiality: Don’t Reveal Info (w/o authorization)
  43. 43. @davearonsonwww.Codosaur.us Integrity: Don’t Alter Info (w/o authorization)
  44. 44. @davearonsonwww.Codosaur.us Availability: Don’t Be Unavailable (w/o authorization)
  45. 45. @davearonsonwww.Codosaur.us Defining Robust: Uphold CIA Triad even under attack
  46. 46. @davearonsonwww.Codosaur.us Achieving Robust: Penetration Testers?
  47. 47. @davearonsonwww.Codosaur.us Pen-Test Tools: Static Analyzers
  48. 48. @davearonsonwww.Codosaur.us Pen-Test Tools: Fuzzers
  49. 49. @davearonsonwww.Codosaur.us Pen-Test Tools: Probes
  50. 50. @davearonsonwww.Codosaur.us Achieving Robust: What could go wrong?
  51. 51. @davearonsonwww.Codosaur.us Achieving Robust: Pick a file, any file…
  52. 52. @davearonsonwww.Codosaur.us Achieving Robust: Think Like an Attacker
  53. 53. @davearonsonwww.Codosaur.us Achieving Robust: Handle Likely Problems
  54. 54. @davearonsonwww.Codosaur.us Usable: easy to use
  55. 55. @davearonsonwww.Codosaur.us Defining Usable: Clear what/how
  56. 56. @davearonsonwww.Codosaur.us Defining Usable: What Else Can It Do? But wait! There’s more!
  57. 57. @davearonsonwww.Codosaur.us Defining Usable: Easy Despite Challenges
  58. 58. @davearonsonwww.Codosaur.us Usable: External Factors
  59. 59. @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>
  60. 60. @davearonsonwww.Codosaur.us Achieving Usable: Usability User Interface Experts?
  61. 61. @davearonsonwww.Codosaur.us Achieving Usable: Guidelines, Standards, and Regulations
  62. 62. @davearonsonwww.Codosaur.us Achieving Usable: Use It Ourselves
  63. 63. @davearonsonwww.Codosaur.us Achieving Usable: Testing!
  64. 64. @davearonsonwww.Codosaur.us Maintainable: Easy to Change
  65. 65. @davearonsonwww.Codosaur.us Defining Maintainable: …with low chance of error…
  66. 66. @davearonsonwww.Codosaur.us Defining Maintainable: …and low fear of error…
  67. 67. @davearonsonwww.Codosaur.us Defining Maintainable: …even for a novice…
  68. 68. @davearonsonwww.Codosaur.us Defining Maintainable: …new to the project.
  69. 69. @davearonsonwww.Codosaur.us Achieving Maintainable: Good Names
  70. 70. @davearonsonwww.Codosaur.us Achieving Maintainable: Single Responsibility
  71. 71. @davearonsonwww.Codosaur.us Achieving Maintainable: Tests!
  72. 72. @davearonsonwww.Codosaur.us Efficient: makes efficient use of resources
  73. 73. @davearonsonwww.Codosaur.us Achieving Efficient: Measure!
  74. 74. @davearonsonwww.Codosaur.us Achieving Efficient: Find the Cause
  75. 75. @davearonsonwww.Codosaur.us Achieving Efficient: Algorithms and Data Structures
  76. 76. @davearonsonwww.Codosaur.us Achieving Efficient: Performance Test
  77. 77. @davearonsonwww.Codosaur.us Achieving Efficient: Multitasking / Parallelism / Concurrency
  78. 78. @davearonsonwww.Codosaur.us Multitasking Example: Generating a PDF
  79. 79. @davearonsonwww.Codosaur.us What inspired ACRUMEN?
  80. 80. @davearonsonwww.Codosaur.us Why is this knight different from all other knights?
  81. 81. @davearonsonwww.Codosaur.us Search for a Definition
  82. 82. @davearonsonwww.Codosaur.us DIY
  83. 83. @davearonsonwww.Codosaur.us BOTA (Bring On The Acronyms)! ACRUME? U-SCREAM, CARE-SUM, etc. ACRSUME / ACSRUME?! ACRUMEN!
  84. 84. @davearonsonwww.Codosaur.us If our software is Appropriate, Correct, Robust, Usable, Maintainable, and Efficient, then Nobody should be sour about it! Conclusion
  85. 85. @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 Balance Scale: https://pixabay.com/en/balance-scale-justice-law-judge-154516/ 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 Cat/Bird: https://pixabay.com/en/genetic-modification-mutant-mutation-549889/ 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 Crowded Bus: https://pxhere.com/en/photo/655281 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/ Developer: https://pixabay.com/en/coding-computer-computer-user-pc-1294361/ Dice: https://pxhere.com/en/photo/615255 Diogenes Poster: https://commons.wikimedia.org/wiki/File:%22WE%27RE_LOOKING_FOR_SUGGESTIONS._WRITE_ONE_TODAY%22_-_NARA_-_516108.jpg 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 George Falcon: his Facebook profile 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/ Inspiration: https://commons.wikimedia.org/wiki/File:William-Adolphe_Bouguereau_(1825-1905)_-_Inspiration_(1898).jpg International Space Station: https://www.flickr.com/photos/nasacommons/8980505397 Jean-Luc Picard: https://www.flickr.com/photos/enerva/8496943140 Knight: https://pixabay.com/en/crusader-armour-fighter-knight-154623 Knight Cat Face: https://pixabay.com/en/cat-drawing-hand-drawn-cute-design-2573708/ Knight Wolf Face: https://pixabay.com/en/animal-wolf-nature-wild-wildlife-986052/ Knitting: https://pxhere.com/en/photo/1190813 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/ 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/ 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/ Private Property Sign: https://www.flickr.com/photos/athomeinscottsdale/3279949186 Quality Excellence Package: https://pixabay.com/en/software-packaging-quality-500956/ Report: https://www.flickr.com/photos/wufoo/4055862405 Rosie the Riveter: https://commons.wikimedia.org/wiki/File:We_Can_Do_It!.jpg 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/ Snail: https://pixabay.com/en/snail-animal-fun-surprised-160313/ Test Pattern: https://en.wikipedia.org/wiki/File:Telefunken_FuBK_test_pattern.svg 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 Train Tracks: https://pixabay.com/en/train-gleise-traces-parallel-3415515/ 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)
  86. 86. @davearonsonwww.Codosaur.us http://www.Codosaur.us @davearonson (on Twitter) Questions? Feedback? Training? Thanks again to Toptal (https://toptal.com/#accept-only-candid-coders)! ?

×