Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[2020.07 Meetup] [Talk] May Poppendieck - Six Decades of Software Engineering

[2020.07 Meetup] [Talk] May Poppendieck - Six Decades of Software Engineering

DevOps Lisbon

July 13, 2020
Tweet

More Decks by DevOps Lisbon

Other Decks in Technology

Transcript

  1. Six Decades of Software Engineering Those who cannot remember the

    past are condemned to repeat it. George Santayana Copyright©2020 Poppendieck.LLC Photograph© Tom Poppendieck
  2. 1964 IBM 360 Announced 1965 No. 1 ESS Installed 1968

    The Software Crisis 1969 Apollo Lands on the Moon Copyright©2020 Poppendieck.LLC NATO Conference on Software Engineering First Electronic Switching System, Schenectady, NY Apollo Guidance Computer 3
  3. Design Goal: Cost‐to‐Install and Reliability equivalent to existing electromechanical systems

    Reliability goal: Maximum 2 hours downtime in 40 years Copyright©2020 Poppendieck.LLC Bell Telephone Laboratories: No. 2 ESS Electronic Switching System for Community Exchanges 4 1967
  4. Copyright©2020 Poppendieck.LLC Photograph © Tom Poppendieck 5 In 1990 a

    routine failover began a cascading outage that shut down half the phone system for 9 hours. Did it Work? Mostly, But…
  5. Vinton Cerf and Robert Kahn (USA) Each distinct network stands

    on its own, no internal changes required. No information retained by gateways & routers. No global control at the operations level. Communications on a best‐effort basis. 1971: ARPANET Copyright©2020 Poppendieck.LLC 6 1972: Louis Pouzin (France) National phone companies will not switch data. CYCLADES 1974: TCP/IP Vulnerable to Failure Vulnerable to Failure Computer History Museum Make Hosts Responsible for Data Exchange Make Hosts Responsible for Data Exchange
  6. Novel Architecture  Breakthrough Innovation Copyright©2020 Poppendieck.LLC 7 Redundancy +

    Isolation + Local Responsibility System Architecture  Organizational Architecture
  7. A Masters Degree in Math An 18 month old daughter

    1 Year Programming No.2 ESS A husband embarking on a 5 year PhD Program Copyright©2020 Poppendieck.LLC 8 1973 I Worked for Murray Thompson [Professor in High Energy Physics] Digitizing Bubble Chamber Film Photograph from the Poppendieck collection.
  8. Interactive Computing: Bitmapped displays 1970’s: XEROX PARC Develops the Digital

    Office Photograph Courtesy of Xerox PARC Copyright©2020 Poppendieck.LLC Mouse Smalltalk Graphical User Interface: Personal Computers Menus Icons WYSIWYG editing Overlapping Windows Desktop Publishing Laser Printing Ethernet 9 XEROX commercialized only ONE of these.
  9. PLC (Digital Control) PID Controller Copyright©2020 Poppendieck.LLC Process Control System

    circa 1980 PLC (Digital Control) PLC (Digital Control) PLC (Digital Control) PID Controller PID Controller PID Controller PID Controller PID Controller PID Controller PID Controller Operator Station Recipe Storage Historical Records Switches, Timers Motors, Pumps, Heaters, Coolers Setpoints Setpoints Speed, Flow, Thickness Speed, Flow, Thickness Mini-Computer Interrupt Bus Event‐Driven Object‐Oriented Edge Computing Events Events PID Controller (Analog Control) 10 1977
  10. Anything that can go wrong will eventually go wrong. Copyright©2020

    Poppendieck.LLC 11 “If you want more effective programmers, you will discover that they should not waste their time debugging – they should not introduce bugs to start with.”* Engineers are responsible for the design and development of a component, and for making sure their component operates properly and does its job as a part of the overall system. *Edsger Dijkstra
  11. Copyright©2020 Poppendieck.LLC Implemented the first Just‐in‐Time System in 3M Focused

    on: Reliability Quality Safety Flow 3M Hutchinson Plant 1982
  12. Copyright©2019 Poppendieck.LLC 13 NEVER optimize for Resource Efficiency. It makes

    no sense. NEVER accumulate large batches. Small batches move faster. Aggressively discover and eliminate the biggest bottleneck. Then do it again. Use consumption to pull replenishment through a short, fast supply chain. Leverage consumer feedback to make product supply decisions. Photograph © Tom Poppendieck
  13. Personal Computers Word Processors Spreadsheets 4th Generation Languages Report Generators

    Copyright©2020 Poppendieck.LLC 14 PC’s arrived at our home. Photograph © TomPoppendieck, 1986 So Why Do We Need Programmers? 1986 Higher Level Languages Enable Higher Levels of Complexity
  14. Expertise, Focus, and Attention to Detail are essential for Reliability,

    Scalability, Usability, Safety, Security … Copyright©2020 Poppendieck.LLC 15 Complexity Expands to Fit the Latest Abstraction Don’t Suboptimize. Manage Throughput, not Tasks.
  15. Copyright©2020 Poppendieck.LLC 16 ACID Transactions ACID Transactions Database Server Application

    Servers Presentation Devices A single, integrated database. On a single server. CAP Theorem CAP Theorem
  16. Copyright©2020 Poppendieck.LLC Typical Code Freeze for Testing: 30% Sometimes: 50%

    Typical Release Cycle 6 to 18 months Typical Feature Freeze 7 to 24 months before release Start Working On Release Release to Production 17
  17. Eric Raymond: “The Cathedral and the Bazaar”, 1997; 1999 Copyright©2020

    Poppendieck.LLC 18 How could a Bazaar possibly work for Software Engineering? Photograph Copyright©Tom Poppendieck Photograph Copyright©Tom Poppendieck Cathedral Bazaar
  18. 1999 Copyright©2020 Poppendieck.LLC 1993 A group of eight developers started

    enhancing the NCSA HTTPd web server. 1999 1991 A Helsinki student writes an operating system “Just for Fun”. IBM invests $1 billion in Linux Apache is used by >40% of all the websites in 2020. 19
  19. Copyright©2020 Poppendieck.LLC 20 No Process, No Plan, Local Responsibility, Better

    Software! “Plan the Work and Work the Plan.” The world will probably fall apart when date = 2000.
  20. Coordinating across disciplines is the hard part. Copyright©2020 Poppendieck.LLC 23

    Large Projects and Long Release Cycles – once equated with professionalism – fell out of favor. “Customer Representative”–“Product Owner”–“The Business”
  21.  Enterprise Architecture Copyright©2017 Poppendieck.LLC 26  Microservice Architecture “You

    Build it, You Own it!” Business Data Application Technology Massive Dependency Generator! One System of Record Technology Platform Distributed Data Stores
  22. Photo Credit: SpaceX (CC0 license) Feb 6, 2018 Copyright©2020 Poppendieck.LLC

    27 Philosophy of Responsibility “No engineering process in exitance can replace this for getting things done right, efficiently.” AIAA 2012 Complex Aerospace Systems Exchange Event John Muratore, SpaceX Launch Director
  23. Copyright©2020 Poppendieck.LLC 28 The Cloud: Data Centers Become a Utility

    ‘Smartphone’ Architecture Independent Deployment Teams are responsible for the design and development of a component, and for making sure their component operates properly and does its job as a part of the overall system.