level up
play

Level Up Quality, Security, & Safety Todd L. Montgomery - PowerPoint PPT Presentation

StoneTor Level Up Quality, Security, & Safety Todd L. Montgomery @toddlmontgomery 1986 https://www.nap.edu/catalog/10616/post-challenger-evaluation-of-space-shuttle-risk-assessment-and-management IV&V Independent Verification


  1. StoneTor Level Up Quality, Security, & Safety Todd L. Montgomery @toddlmontgomery

  2. 1986…

  3. https://www.nap.edu/catalog/10616/post-challenger-evaluation-of-space-shuttle-risk-assessment-and-management

  4. IV&V Independent Verification & Validation

  5. “Safety is a system property, not a component property, and must be controlled at the system level, not the component level.” ― Nancy G. Leveson, Engineering a Safer World: Systems Thinking Applied to Safety

  6. Software Safety + Mission Safety

  7. Typically… Small Teams - 1-2 or 5-6 Small Budgets - if any

  8. Not just when people could die…

  9. More relevant every day

  10. Tax Day 2018 https://www.vox.com/2018/4/17/17247614/irs-glitch-2018-delays

  11. Security == Quality Quality == Security

  12. https://en.wikipedia.org/wiki/List_of_data_breaches

  13. https://en.wikipedia.org/wiki/List_of_data_breaches

  14. Don’t Worry … The Cloud

  15. Don’t Worry … The Cloud

  16. Don’t Worry … The Cloud

  17. Software Quality

  18. Most people don’t expect software to work* * - Seriously, ask others about this…

  19. Large Projects

  20. Software Project Success Rates Successful: 32% Challenged: 44% Failure: 24% - Standish Group Chaos Report 2010

  21. EULAs

  22. Software Quality

  23. Systems meeting Functional Requirements

  24. “Non”-Functional Requirements?

  25. Security Performance Quality Robustness Safety Stability Usability https://en.wikipedia.org/wiki/Non-functional_requirement

  26. When not met is the system not “Non-Functional”?

  27. https://en.wikipedia.org/wiki/Non-functional_requirement

  28. “Non”-Functional Requirements Are Unspoken / Incomplete Functional Requirements

  29. Quality, Security, Safety At best, afterthoughts!

  30. Quality isn’t an Issue … Until it (suddenly) is s/Quality/Security… s/Quality/Scalability…

  31. “What could possibly go wrong?”

  32. “Oh… It went wrong… what now?!”

  33. “Throw testers at it!” “Patch/Hot Fix!” “Source Code Reviews” “Bug Triage Meetings”

  34. It can help… But, by itself, NOTHING is magic

  35. More “What Quality ISN’T” * - Based on ROI from 100s of NASA projects & personal experiences

  36. Agile/Waterfall/Scrum/etc. Language Choice Framework/Library Choice Formal Methods Functional vs. Imperative/OOP Reference Enterprise Architecture Vendor Stack

  37. … “never” / “always” Recruiting Process Web Scale Architecture Distributed Algorithm AI / Big Data / IoT / Reactive / OSS / …

  38. … Source Code Reviews Bug Triage Meetings Code Coverage Comprehensive Test Plan

  39. Dogma is Anathema to Quality

  40. Languages are Inspirational Java, C/C++, C#, Python, Erlang, OCaml, Ada, etc. Even JavaScript…

  41. Technologies are Inspirational Microservices, Reactive, SOA, CRDTs, Blockchain, etc. Even ORM, DI, RPC, …

  42. Case Studies * - Even when you do everything else well…OK…

  43. 100% code coverage

  44. Error Handling (is hard)

  45. File Processor Create File Process File Bus/Network Directory File Sender Process File Receiver Process

  46. // create empty file // check params // fill file In C return 0; error: unlink(file); return -1;

  47. try { // create empty file // check params // fill file And Java } catch (final Exception ex) { file.delete(); }

  48. Keeping up-to-date

  49. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------------------------+ | Version |X|0| Flags | ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------------------------+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------------------------+ | Version |R|S| Flags | ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------------------------+ Request Service Response @toddlmontgomery

  50. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------------------------+ | Version |0|1| Flags | ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------------------------+ “Service must have Q=1 now!” Request(New) Service (Old) Response “I know nothing of your … logic” @toddlmontgomery +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------------------------+ | Version | Flags | ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-------------------------------+

  51. Async all the things!

  52. Request Block Request La-La Request … La-La Block Service …? Response Timeout!!! Service Service @toddlmontgomery Timeout!!!

  53. Request Request La-La Request … La-La Service …? Response Timeout!!! Service Service @toddlmontgomery Timeout!!!

  54. Request Request Request La-La … La-La Response …? Timeout!!! Level 2!!! Service Service @toddlmontgomery Timeout!!!

  55. Root Cause Matters

  56. Bet I can Exploit That

  57. Don’t keep things around!

  58. https://en.wikipedia.org/wiki/Row_hammer

  59. https://arstechnica.com/information-technology/2019/12/scientists-pluck-crypto-keys-from-intels-sgx-by-tweaking-cpu-voltage/

  60. “But it doesn’t have to be fast”

  61. “But it doesn’t have to be fast” Doesn’t have to be SLOW

  62. https://www.nature.com/articles/d41586-018-06610-y https://www.forbes.com/sites/forbestechcouncil/2017/12/15/why-energy-is-a-big-and-rapidly-growing-problem-for-data-centers/#344456665a30 https://www.datacenterdynamics.com/opinions/power-consumption-data-centers-global-problem/

  63. Software is getting slower more rapidly than hardware is becoming faster — Niklaus Wirth, "A Plea for Lean Software”, 1995 https://en.wikipedia.org/wiki/Wirth%27s_law

  64. What Quality IS

  65. One uncomfortable truth…

  66. One (un)comfortable truth… Pride Ownership Responsibility

  67. “It does this…” “I do this…” We do this…

  68. Putt's Law: "Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand.” Putt's Corollary: "Every technical hierarchy, in time, develops a competence inversion." with incompetence being "flushed out of the lower levels" of a technocratic hierarchy, ensuring that technically competent people remain directly in charge of the actual technology while those without technical competence move into management. https://en.wikipedia.org/wiki/Putt's_Law_and_the_Successful_Technocrat

  69. We take responsibility, or…

  70. https://www.nytimes.com/2017/08/25/business/volkswagen-engineer-prison-diesel-cheating.html

  71. Pointy-Haired Boss Takeaway

  72. ROI Return on Investment

  73. ROI •https://www.nasa.gov/sites/default/files/1-4a-ivv_conference_bob_hunt_dulos_kalman.pdf •https://www.nasa.gov/centers/ivv/dynamic_analysis_roi.html •https://www.nasa.gov/sites/default/files/166681main_NASA_Annual_Report_2005.pdf •https://www.nasa.gov/sites/default/files/1-1a-nasa_workshop_-_measuring_ivv_roi_-_greendart.pdf •http://www.iceaaonline.com/ready/wp-content/uploads/2014/03/Software-Test-Cost-and-ROI-Galorath- Feb-14-Hunt.pdf •https://www.researchgate.net/publication/ 220845858_Estimating_direct_return_on_investment_of_independent_verification_and_validation •http://dau.dodlive.mil/2014/12/19/the-path-to-software-cost-control/ •https://books.google.com/books? id=6LcpBgAAQBAJ&pg=PA114&lpg=PA114&dq=return+on+investment+nasa+ivv&source=bl&ots=nwVR Bx47aO&sig=1YEozo_huDJL4QfGl_5BgkFQou4&hl=en&sa=X&ved=0ahUKEwj6- Lanx5PWAhWGjlQKHTqCAcUQ6AEITzAI#v=onepage&q=return%20on%20investment%20nasa%20ivv &f=false •http://media.govtech.net/Events/2006Events/2006Pennsylvania/ 6_230_IndependentValidationandVerificationIVV_HURLEY.ppt •http://catal0g.info/downloads/nasa-iv-v-metrics.pdf

  74. Allen Nikora https://scholar.google.com/citations?user=K-c0IEUAAAAJ&hl=en Leslie Lamport https://lamport.azurewebsites.net/pubs/pubs.html Martin Feather https://trs.jpl.nasa.gov/browse?value=Feather%2C+Martin+S.&type=author http://www.sciencedirect.com/science/article/pii/S1877050914001124

  75. Specifications as Communication Early Requirements Analysis Early Domain Expertise Culture of Accountability

  76. Some Suggestions

  77. TDD/BDD - The Spec? Agile - Intent! Language - Rise Above! Functional/OOP - Rise Above! Dogma - holds you back

Recommend


More recommend