Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Copyright©2020 Poppendieck.LLC 2 Summer, 1961 +HOOR :RUOG

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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…

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Novel Architecture  Breakthrough Innovation Copyright©2020 Poppendieck.LLC 7 Redundancy + Isolation + Local Responsibility System Architecture  Organizational Architecture

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Copyright©2020 Poppendieck.LLC Implemented the first Just‐in‐Time System in 3M Focused on: Reliability Quality Safety Flow 3M Hutchinson Plant 1982

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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.

Slide 21

Slide 21 text

2000 Extreme Programming Explained 2001 Agile Manifesto Copyright©2020 Poppendieck.LLC 21

Slide 22

Slide 22 text

Copyright©2020 Poppendieck.LLC 22 Photograph Copyright©Tom Poppendieck

Slide 23

Slide 23 text

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”

Slide 24

Slide 24 text

Copyright©2020 Poppendieck.LLC 24 Continuous Integration / Continuous Delivery Pipeline Photograph Copyright©Tom Poppendieck

Slide 25

Slide 25 text

Dependencies Copyright©2020 Poppendieck.LLC 25 Photograph Copyright©Tom Poppendieck

Slide 26

Slide 26 text

 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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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.

Slide 29

Slide 29 text

Copyright©2020 Poppendieck.LLC 29 Adaptability. Photograph © Tom Poppendieck Resilience. Rapid Response. How do we Prepare for Black Swan Events?

Slide 30

Slide 30 text

Thank You! Copyright©2020 Poppendieck.LLC Photograph© Tom Poppendieck Mary Poppendieck [email protected] www.Poppendieck.com Mary Poppendieck [email protected] www.Poppendieck.com