ON COMPUTING

The History of

Grady Booch

THE FIRST were hu- 1963 or 1964 to distinguish her work time of . However, man (and for the most part, women). from the hardware engineering taking the fundamentals of engineering The term “digital” didn’t enter cir- place in the nascent US space program. hold true, although, as we shall see, culation until around 1942, when each age discovers some new truth George Stibitz took the ideas from versus about engineering software. another George (Boole) and applied Science them to electromechanical devices. It suggested that pro- From the 19th to the 20th took another decade for John Tukey gramming is a practical art; Edsger Century: Human Computers to popularize the term “software.” Dijkstra called the art of program- was perhaps the fi rst What, then, of the term “software ming the art of organizing com- person to understand that program- engineering”? plexity; referred to ming was a thing unto itself. Around programming as art because it pro- that same time, George Boole The Origins of the Term duced objects of beauty. I suspect brought a new way of thinking to the Many suggest it came from the 1968 that all of these observations are true, mathematicians and philosophers of NATO Conference on Software but what I like best is David Parnas’ the world, as expressed in his clas- Engineering, coined by Friedrich observation—much like Anthony sic book The Laws of Thought.2 At Bauer. Others have pointed to the 1966 Oettinger’s—that there is a distinc- the end of the 19th century, we saw letter by Anthony Oettinger in Com- tion between “” and the fi rst human computers, such as munications of the ACM, wherein the other stuff that we do. This is not Annie Cannon, Henrietta Leavitt, he used the term “software engineer- unlike the distinction between chem- and others, the so-called “Harvard ing” to make the distinction between ical engineering and chemistry: both Computers” working for the astron- computer science and the building of are valid; both have their particular omer Edward Pickering. The way software-intensive systems.1 Even ear- sets of practices; both are very differ- these women organized their work lier, in the June 1965 issue of Comput- ent things. Software engineering is, was astonishingly similar to contem- ers and Automation, there appeared a in my experience, equally an art and porary agile development practices; classifi ed ad seeking a “systems soft- a science: it is the art of the practical. they too had a different way of think- ware engineer.” Engineering in all fi elds is all ing, very different for their time. All the data I have points to about the resolution of forces. In Around the start of the new cen- Margaret Hamilton as the person who civil engineering, one must consider tury, as computational problems be- fi rst coined the term. Having worked static and dynamic forces of a physi- gan to scale up and as mechanical on the SAGE (Semi-automatic Ground cal nature and of human nature. In aids to calculation became more reli- Environment) program, she became software engineering, one also must able and economical, the process of the lead developer for Skylab and balance cost, schedule, complexity, computing underwent further regi- Apollo while working at the Draper functionality, performance, reliabil- mentation. It was common to see Lab. According to an (unpublished) ity, and security, as well as legal and large rooms fi lled with human com- oral history, she began to use the term ethical forces. Computing technol- puters (again, mostly women), all “software engineering” sometime in ogy has certainly changed since the lined up in rows. Data would enter

8 108 IEEE SOFTWARESeptember 2019 | PUBLISHED BY THE IEEE COMPUTERPublished by the SOCIETY IEEE Computer Society 0740-7459/18/$33.002469-7087/19 © 2018 © IEEE 2019 IEEE ON COMPUTING ON COMPUTING

one end; a computer would carry out George Boole’s ideas of binary logic from a machine’s hardware. This The History of Software one operation and then pass the re- to build the fi rst digital adder made led to one of the fi rst instances of sult to the next computer. This was of electromechanical relays. He abstraction in programming, the in effect the organic manifestation called this the Model (the K rep- idea that one could devise a pro- of what today we’ call a pipeline resenting the kitchen table on which gramming language at a level closer Engineering architecture. he built it), and thus digital com- to human expression and further puting was born. The idea of build- from the machine’s hardware. Fur- From the Great Depression ing electromechanical mechanisms thermore, as Hopper realized, one to World War II: Birth of the for computation spread rapidly, and could use the computer itself to Electronic Computer it was not long thereafter that oth- translate those higher-order expres- Effi ciency and the reduction of costs ers realized that relays could be re- sions into machine language; the were then, as they are now, impor- placed by vacuum tubes, which were was born. THE FIRST COMPUTERS were hu- 1963 or 1964 to distinguish her work time of Charles Babbage. However, tant to every industrial process. So, much, much faster. In the summer In the lamentations of World War man (and for the most part, women). from the hardware engineering taking the fundamentals of engineering we saw people such as Frederick of 1944, a serendipitous meeting II, the computing world split into The term “digital” didn’t enter cir- place in the nascent US space program. hold true, although, as we shall see, Taylor and Frank and Lillian between John von Neumann (who three pieces. In Germany, there was culation until around 1942, when each age discovers some new truth Gilbreth (of Cheaper by the Dozen3 George Stibitz took the ideas from Software Engineering versus about engineering software. fame) introduce time and motion another George (Boole) and applied Computer Science studies. The Gilbreths also promoted them to electromechanical devices. It Grace Hopper suggested that pro- From the 19th to the 20th the concept of process charts—the took another decade for John Tukey gramming is a practical art; Edsger Century: Human Computers direct predecessor of fl owcharts— Ada Lovelace was perhaps the to popularize the term “software.” Dijkstra called the art of program- Ada Lovelace was perhaps the fi rst to codify industrial processes. It did rst person to understand that What, then, of the term “software ming the art of organizing com- person to understand that program- not take long for these same ideas in engineering”? plexity; Donald Knuth referred to ming was a thing unto itself. Around manufacturing to jump over to the programming was a thing unto itself. programming as art because it pro- that same time, George Boole problems of computing. The Origins of the Term duced objects of beauty. I suspect brought a new way of thinking to the As the global Great Depres- Many suggest it came from the 1968 that all of these observations are true, mathematicians and philosophers of sion took hold, the Works Progress NATO Conference on Software but what I like best is David Parnas’s the world, as expressed in his clas- Administration was launched as Engineering, coined by Friedrich observation—much like Anthony sic book The Laws of Thought.2 At part of President Roosevelt’s New at the time was working on the Konrad Zuse. In a different time and Bauer. Others have pointed to the 1966 Oettinger’s—that there is a distinc- the end of the 19th century, we saw Deal. Gertrude Blanche was put in Manhattan Project) and Herman place, his work would have been the letter by Anthony Oettinger in Com- tion between “computer science” and the fi rst human computers, such as charge of the Mathematical Tables Goldstine (who was working at the center of gravity of modern comput- munications of the ACM, wherein the other stuff that we do. This is not Annie Cannon, Henrietta Leavitt, Project, the predecessor of today’s Ballistic Research Laboratory) led to ing, for he invented the fi rst high- he used the term “software engineer- unlike the distinction between chem- and others, the so-called “Harvard Handbook of Mathematical Func- their connection with John Mauchly order as well ing” to make the distinction between ical engineering and chemistry: both Computers” working for the astron- tions. This was a work relief project (a professor at the Moore School of as the fi rst general-purpose stored computer science and the building of are valid; both have their particular omer Edward Pickering. The way that employed hundreds of out-of- Electrical Engineering). This caused computer. software-intensive systems.1 Even ear- sets of practices; both are very differ- these women organized their work work mathematicians and comput- ENIAC (Electronic Numerical In- In England, there was Bletchley lier, in the June 1965 issue of Comput- ent things. Software engineering is, was astonishingly similar to contem- ers (again, mostly women). Blanche’s tegrator and Computer) to come Park, where laid the ers and Automation, there appeared a in my experience, equally an art and porary agile development practices; work developed best practices for hu- into prominence and, more impor- theoretical foundations for modern classifi ed ad seeking a “systems soft- a science: it is the art of the practical. they too had a different way of think- man computing that were extremely tant, later yielded the First Draft computer science. However, it took ware engineer.” Engineering in all fi elds is all ing, very different for their time. sophisticated, including mechanisms of a Report on the EDVAC (Elec- an engineer—most notably Tommy All the data I have points to about the resolution of forces. In Around the start of the new cen- for error checking, which infl uenced tronic Discrete Variable Automatic Flowers—to turn those theories into Margaret Hamilton as the person who civil engineering, one must consider tury, as computational problems be- the way early punched-card comput- Computer).5 pragmatic solutions, and from this fi rst coined the term. Having worked static and dynamic forces of a physi- gan to scale up and as mechanical ing evolved. In 1940, Wallace Eckert And thus was born a new way of Colossus was born. Dorothy Du on the SAGE (Semi-automatic Ground cal nature and of human nature. In aids to calculation became more reli- published Methods in thinking: the concept of a program- Boisson, a human computer, served Environment) program, she became software engineering, one also must able and economical, the process of Scienti Computing,4 which turned mable, electronic computer with its as the primary operator of Colossus. the lead developer for Skylab and balance cost, schedule, complexity, computing underwent further regi- out to be, in a manner of speaking, instructions stored in memory. In her experience of leading a team Apollo while working at the Draper functionality, performance, reliabil- mentation. It was common to see the fi rst computing methodology or Grace Hopper, very much in of women who operated Colossus, Lab. According to an (unpublished) ity, and security, as well as legal and large rooms fi lled with human com- pattern language. the spirit of Ada Lovelace, then re- she codifi ed the ideas of workfl ow oral history, she began to use the term ethical forces. Computing technol- puters (again, mostly women), all As the winds of war were gather- discovered the idea that software that eventually were programmed “software engineering” sometime in ogy has certainly changed since the lined up in rows. Data would enter ing in Europe, George Stibitz applied could be a thing unto itself, distinct into the machine itself.

108 IEEE SOFTWARE | PUBLISHED BY THE IEEE COMPUTER SOCIETY 0740-7459/18/$33.00 © 2018 IEEE www.computer.org/computingedge SEPTEMBER/OCTOBER 2018 | IEEE SOFTWARE 109 9 ON COMPUTING

In the US, ENIAC, then later the Lyons Electronic Office (LEO). programming, and that work led EDVAC, dominated the scene. Ini- John Pinkerton, LEO’s chief engi- directly to the SAGE system. Con- tially, “programming” was carried neer, had the insight that software structed as a defense against the Soviet out by wiring up plugboards, a task could be treated as a component threat of sending nuclear-armed carried out by human computers unto itself. Realizing that many low- bombers over the Arctic, SAGE led to (yet again, mostly women), such as level programming tasks kept being a number of important innovations Kay Antonelli, Betty Snyder, Fran- written over and over again, he be- and issues, including ces Spence, Ruth Teitelbaum, and gan to bundle these common rou- Marlyn Wescoff. The way they or- tines into libraries, forming what • human–computer interfaces using ganized their work was reminiscent today we’d call an CRT displays and light pens, of the Harvard Computers and thus, or framework, yet another rise in • the institutionalization of core in a manner of speaking, anticipated programming’s levels of abstraction. memory, and the structure of contemporary Grace Hopper, Robert Bemer, • the problems associated with development teams focused on con- Jean Sammet, and others, influenced building very large soft- tinuous integration. by John Backus’s work, created ware systems in a distributed Cobol, another imperative language, environment. Post World War II: Rise of focused on the needs of businesses. Computing and Birth of With the introduction of IBM’s Software development was no lon- Software Engineering System/360, it was now possible to ger just a small part of bringing a The technical and economic forces write software for more than one spe- computer to life; it was increasingly that would shape modern software cific machine. IBM’s decision to un- a very expensive part, and certainly engineering further coalesced in the bundle software from hardware was the most important part. economic rise at the end of World a transformative event: now it was So there we were, in the second War II, where we began to see com- possible to develop software as a com- half of the 1960s, with the conflu- puting applied to problem domains ponent that had individual economic ence of three important events in the beyond the needs of conflict. Her- value. Around this time, organiza- history of software: man Goldstine built on the ideas tions such as SHARE emerged—a of the Gilbreths and, together with predecessor of today’s open source • the rise of commercial software John von Neumann, invented a no- software movement—giving a plat- as a product unto itself, tation that eventually morphed into form for third parties to write soft- • the complexities of defense what today we call flowcharts. Mau- ware for hardware they themselves systems such as SAGE, and rice Wilkes, David Wheeler, and didn’t control. In the UK, Dina • the rise of human-critical soft- Stanley Gill invented the concept of St. Johnson seized on the business op- ware as demanded by the US subroutines, thus again raising com- portunity and established England’s space program. puting’s levels of abstraction, and first software services business. This making manifest the pragmatics of made manifest the idea that one could This is the context in which Margaret algorithmic decomposition. John outsource software development to Hamilton coined the term “software Backus took Grace Hopper’s early teams with particular computing engineering” and in which NATO work and went further, yielding For- skills a company with specific domain declared that there was a “software tran, the high-level imperative lan- knowledge might not possess. crisis.” guage that would dominate scientific A sort of programming priest- computing for years to come. Rise of the Cold War: hood was the common form of The commercial world, now un- Coming of Age software development at the time, leashed at the end of global conflict, The rise of the Cold War between the and—in its time—it made a great turned to automatic aids to com- US and the Soviet Union generated deal of sense. In that era, the cost of puting: opportunities for growth another set of forces that pushed soft- a computer was greater than the cost quickly outran the cost and reliabil- ware engineering to come of age. Tom of its programmers, and as such, com- ity of human computers. The first Kilburn and his work with Whirlwind puters would be kept apart in a climate- computer put in commercial use was explored the possibilities of real-time controlled room. Much like the

10110 IEEE SOFTWAREComputingEdge | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE September 2019 ON COMPUTING ON COMPUTING

In the US, ENIAC, then later the Lyons Electronic Office (LEO). programming, and that work led pipelined methods of the punched- the ideas of coupling and cohesion artifacts and the processes of soft- EDVAC, dominated the scene. Ini- John Pinkerton, LEO’s chief engi- directly to the SAGE system. Con- card era, analysts would take re- applied as a mechanism for algorith- ware development. tially, “programming” was carried neer, had the insight that software structed as a defense against the Soviet quirements and pass them on to mic decomposition. Edsger Dijkstra This led to the fi rst generation of out by wiring up plugboards, a task could be treated as a component threat of sending nuclear-armed programmers, who would use their took a more formal approach, giving software engineering methodologies. carried out by human computers unto itself. Realizing that many low- bombers over the Arctic, SAGE led to fl owcharts to devise . us an important tool for software Doug Ross, Larry Constantine, Ed (yet again, mostly women), such as level programming tasks kept being a number of important innovations These programmers in turn would engineering: the idea of structured Yourdon, Tom DeMarco, Chris Gane, Kay Antonelli, Betty Snyder, Fran- written over and over again, he be- and issues, including pass their programs on to keypunch- programming. Trish Sarson, and Michael Jackson— ces Spence, Ruth Teitelbaum, and gan to bundle these common rou- ers. The resulting card decks would Around the same time, there was to name just a few—developed meth- Marlyn Wescoff. The way they or- tines into libraries, forming what • human–computer interfaces using be given to the computer operators important work by researchers such ods for structured analysis and design ganized their work was reminiscent today we’d call an operating system CRT displays and light pens, working in their sacred space. as Robert Floyd and Tony Hoare, that took over the fi eld. Adding the of the Harvard Computers and thus, or framework, yet another rise in • the institutionalization of core It wasn’t until the economics of who devised formal ways to express work by Michael Fagan (on software in a manner of speaking, anticipated programming’s levels of abstraction. memory, and computers changed with the rise of and reason about programs—a true inspections), James Martin (on infor- the structure of contemporary small Grace Hopper, Robert Bemer, • the problems associated with and microcomput- attempt to connect computer science mation engineering), John Backus (on development teams focused on con- Jean Sammet, and others, influenced building very large soft- ers, together with the realization of and software engineering. Niklaus ), and Leslie tinuous integration. by John Backus’s work, created ware systems in a distributed Christopher Strachey’s idea of time Cobol, another imperative language, environment. sharing, that this model of develop- Post World War II: Rise of focused on the needs of businesses. ment changed. This is also the con- Computing and Birth of With the introduction of IBM’s Software development was no lon- text in which the principles of Software Engineering System/360, it was now possible to ger just a small part of bringing a software project management came The introduction of personal The technical and economic forces write software for more than one spe- computer to life; it was increasingly alive, as Fred Brooks so profoundly computing changed software that would shape modern software cific machine. IBM’s decision to un- a very expensive part, and certainly described in The Mythical Man engineering further coalesced in the bundle software from hardware was the most important part. Month.6 Brooks made the important engineering. economic rise at the end of World a transformative event: now it was So there we were, in the second insight that software engineering War II, where we began to see com- possible to develop software as a com- half of the 1960s, with the conflu- was not just a technical process but puting applied to problem domains ponent that had individual economic ence of three important events in the also a very human process. beyond the needs of conflict. Her- value. Around this time, organiza- history of software: The economic rise after World Wirth invented Pascal, an effort to Lamport (on best practices for distrib- man Goldstine built on the ideas tions such as SHARE emerged—a War II, given a further boost by the explicitly support best practices in uted computing), software engineer- of the Gilbreths and, together with predecessor of today’s open source • the rise of commercial software Cold War, led inevitably to a coun- . Ole Dahl ing entered in its fi rst golden age. John von Neumann, invented a no- software movement—giving a plat- as a product unto itself, terculture shift, as wonderfully de- and Kristen Nygaard had the outra- tation that eventually morphed into form for third parties to write soft- • the complexities of defense scribed by John Markoff in What the geously wonderful idea that yielded The Eighties and Onward: what today we call flowcharts. Mau- ware for hardware they themselves systems such as SAGE, and Dormouse Said.7 The introduction the invention of Simula, a language Golden Age rice Wilkes, David Wheeler, and didn’t control. In the UK, Dina • the rise of human-critical soft- of personal computing not only was that was object-oriented rather than However, a sea change was com- Stanley Gill invented the concept of St. Johnson seized on the business op- ware as demanded by the US fueled by technical and social ad- algorithmic in nature. ing. Owing to the growing prob- subroutines, thus again raising com- portunity and established England’s space program. vances but also changed the nature Winston Royce then brought to lems of software quality, the rise of puting’s levels of abstraction, and first software services business. This of software engineering. Now, pro- us the idea of a formal software de- ultralarge software-intensive sys- making manifest the pragmatics of made manifest the idea that one could This is the context in which Margaret grammers were more expensive than velopment process. Although he is tems, the globalization of software, algorithmic decomposition. John outsource software development to Hamilton coined the term “software computers, and it was economically much criticized for what we today and the shift from programs to dis- Backus took Grace Hopper’s early teams with particular computing engineering” and in which NATO viable to put computers everywhere. call the waterfall process, his meth- tributed systems, new approaches work and went further, yielding For- skills a company with specific domain declared that there was a “software This led to Allen Newell speaking of odology was actually quite advanced: were needed. Ole Dahl and Kristen tran, the high-level imperative lan- knowledge might not possess. crisis.” the enchanted world that computing he spoke of iterative development, Nygaard’s ideas of object-oriented guage that would dominate scientific A sort of programming priest- made possible, as described in his the importance of prototyping, and programing gave rise to a completely computing for years to come. Rise of the Cold War: hood was the common form of wonderful essay “Fairytales.”8 the value of artifacts beyond source new class of programming lan- The commercial world, now un- Coming of Age software development at the time, code itself. Coupled with David guages: , C with Classes, leashed at the end of global conflict, The rise of the Cold War between the and—in its time—it made a great From the Sixties to the Parnas’s ideas of information hiding, Ada, and many others. Although turned to automatic aids to com- US and the Soviet Union generated deal of sense. In that era, the cost of Eighties: Maturation Barbara Liskov’s ideas of abstract data structured methods were useful, puting: opportunities for growth another set of forces that pushed soft- a computer was greater than the cost Software engineering was forced to types, and Peter Chen’s approaches to they were not altogether suffi cient quickly outran the cost and reliabil- ware engineering to come of age. Tom of its programmers, and as such, com- mature. Larry Constantine was per- entity–relationship modeling, all of for these new languages, and thus ity of human computers. The first Kilburn and his work with Whirlwind puters would be kept apart in a climate- haps the fi rst to introduce the con- a sudden the fi eld had a vibrant set was born the second golden age of computer put in commercial use was explored the possibilities of real-time controlled room. Much like the cept of modular programming, with of ideas whereby to expresses the software engineering.

110 IEEE SOFTWARE | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE www.computer.org/computingedge SEPTEMBER/OCTOBER 2018 | IEEE SOFTWARE 11111 ON COMPUTING

Ada—the US Department of influenced the creation of Java. Alan design patterns and applied them to Defense’s solution to the problem of Cooper’s invigorated organizational patterns. Mary Shaw the proliferation of programming the Windows platform. Brad Cox’s and David Garlan furthered these languages and the changing nature invention of Objective-C had a tre- concepts in their work on software of software itself—proved to be a mendous effect on NeXT and Apple. architecture styles. catalyst for this era. Some of the Furthermore, Cox’s ideas surround- Two other lasting developments structured-method pioneers pivoted. ing component-based engineering— of note took place in this era. First, James Martin and Ed Yourdon cel- another rise in software engineering’s Eric Raymond evolved an important ebrated object-oriented approaches; levels of abstraction—led directly to legal framework for open source, others brought completely new ideas ’s OLE (object linking and making it possible to scale the ideas to the field: Stephen Mellor, Peter embedding) and COM (Component first seen in the early days of com- Coad, and Rebecca Wirfs-Brock, Object Model), which were the pre- puting, with SHARE. Kiran Karnik, to name a few. The Booch Method decessors of today’s microservice working in India, established the grew out of this primordial soup of architecture. first outsourcing contracts between ideas, as did Jim Rumbaugh’s OMT General Electric and India, thus lay- (object-modeling technique) and Ivar The Nineties and the ing the foundation for a transfor- Jacobson’s Objectory. Sensing an Millennium: Era of Disruptions mative economic shift in software opportunity to bring the market to But another change was in the wind: development. some common best practices, the the Internet. Suddenly we had a very With the Internet well in place three of us united to produce what rich, as of yet unexplored, platform. and organizations beginning to em- became the Unified Modeling Lan- In it, distribution was the default, brace its possibilities, mobile de- guage (made an Object Management consumers were the new stakehold- vices hit the scene, and the world Group standard in 1987) and then ers, users were measured in the changed yet again. The foundation the Unified Process. billions, and participants in this eco- laid by Brad Cox for component- Other aspects of software engi- system were not necessarily reliable based engineering morphed into neering came into play—for example, or trustworthy. We were no longer service-based architectures, which building programs; we were building in turn morphed into microser- • Philippe Kruchten’s 411 View systems, often made of parts that we vice architectures, evolving as the Model of software architecture; no longer controlled. Web’s technical infrastructure grew • Barry Boehm’s work in software By this time, there existed a rela- in fits and starts. New program- economics, together with his tively stable and economically very ming languages came and went spiral model; vibrant software engineering com- (and still do), but only a handful • Vic Basili and his ideas on em- munity. Independent companies still dominate—for example, Java, pirical software engineering; existed to serve the needs of require- JavaScript, Python, C11, C#, PHP, • Capers Jones and software ments analysis, design, development, and Swift. Computing moved from metrics; testing, and configuration manage- the mainframe to the datacenter • Harlan Mills and clean-room ment. Continuous integration with to the cloud, but coupled with mi- software engineering; incremental and iterative develop- croservices, the Internet evolved to • Donald Knuth’s literate ment was becoming the norm. The become the de facto computing plat- programming; and Gang of Four—Eric Gamma, Rich- form. Company-specific ecosystems • Watts Humphrey and his ard Helm, Ralph Johnson, and John rose like walled cathedrals: Ama- Capability Maturity Model. Vlissides—gave us another bump zon, Google, Microsoft, , up in software engineering levels of Salesforce, IBM—really, every eco- Simultaneously, these software en- abstraction in the form of the de- nomically interesting company built gineering concepts influenced the sign pattern. Institutionalized by its own fortress. development of an entirely new gen- the Hillside Group in 1993, pat- This was now the age of the eration of programming languages. terns heavily influenced that genera- framework. Long gone were the re- Bjarne Stroustrup’s C with Classes tion of software development. Jim ligious battles over operating sys- grew up to become C11, which later Coplien took the ideas of software tems. Now, battles were fought

12112 IEEE SOFTWAREComputingEdge | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE September 2019 ON COMPUTING ON COMPUTING

Ada—the US Department of influenced the creation of Java. Alan design patterns and applied them to along the lines of the veritable Knowledge, fi rst released in 2004 We as an industry have not yet Defense’s solution to the problem of Cooper’s Visual Basic invigorated organizational patterns. Mary Shaw explosion of open source frame- and whose current version was re- built enough of these AI systems to the proliferation of programming the Windows platform. Brad Cox’s and David Garlan furthered these works: Bootstrap, jQuery, Apache, leased in 2014)9 and the Systems fully understand how they might languages and the changing nature invention of Objective-C had a tre- concepts in their work on software NodeJS, MongoDB, Brew, Cocoa, Engineering Body of Knowledge impact the software engineering of software itself—proved to be a mendous effect on NeXT and Apple. architecture styles. Caffe, Flutter—truly a dizzying, by INCOSE10 exist as an attempt process, as they most certainly will. catalyst for this era. Some of the Furthermore, Cox’s ideas surround- Two other lasting developments ever-growing collection. to codify software engineering best What is the best lifecycle for sys- structured-method pioneers pivoted. ing component-based engineering— of note took place in this era. First, Today, we no longer build just practices. tems whose components we teach, James Martin and Ed Yourdon cel- another rise in software engineering’s Eric Raymond evolved an important programs or monolithic systems; rather than program? How do we ebrated object-oriented approaches; levels of abstraction—led directly to legal framework for open source, we build apps that live on the edge The Decade Ahead: Big Data test them? Where does confi guration others brought completely new ideas Microsoft’s OLE (object linking and making it possible to scale the ideas and interact with these distributed and the New Season of AI management fi t in when data for to the field: Stephen Mellor, Peter embedding) and COM (Component first seen in the early days of com- systems. Agile methods—in vari- But software engineering is about to ground truth is perhaps more impor- Coad, and Rebecca Wirfs-Brock, Object Model), which were the pre- puting, with SHARE. Kiran Karnik, ous personality-led variations— undergo yet another change. tant than the neural network itself? to name a few. The Booch Method decessors of today’s microservice working in India, established the have fl owered and have become the The foundations of AI have How do we best architect systems grew out of this primordial soup of architecture. first outsourcing contracts between dominant method, in name if not been around for decades. Over the with parts whose operation we can- ideas, as did Jim Rumbaugh’s OMT General Electric and India, thus lay- necessarily perfectly in practice. decades, we’ve seen at least four not explain or fully trust? (object-modeling technique) and Ivar The Nineties and the ing the foundation for a transfor- Hirotaka Takeuchi and Ikujiro Non- seasons of AI, manifested by the ex- This will be the challenge of Jacobson’s Objectory. Sensing an Millennium: Era of Disruptions mative economic shift in software aka coined the term “Scrum” in 1986 treme rising and falling of fortunes. the next generation of women and opportunity to bring the market to But another change was in the wind: development. as an agile approach to product de- What we have now feels different. men who keep software engineer- some common best practices, the the Internet. Suddenly we had a very With the Internet well in place velopment. Later, Ken Schwaber and The growth of big data, the abun- ing vibrant. Add to this mix the three of us united to produce what rich, as of yet unexplored, platform. and organizations beginning to em- (independently) Jeff Sutherland and dance of raw computational power, growth of quantum computing, became the Unified Modeling Lan- In it, distribution was the default, brace its possibilities, mobile de- Jeff McKenna codifi ed those prin- guage (made an Object Management consumers were the new stakehold- vices hit the scene, and the world ciples in the domain of software de- Group standard in 1987) and then ers, users were measured in the changed yet again. The foundation velopment. Around that same time, the Unified Process. billions, and participants in this eco- laid by Brad Cox for component- Kent Beck introduced the concept of Other aspects of software engi- system were not necessarily reliable based engineering morphed into Extreme Programming, while Ralph How do we best architect systems neering came into play—for example, or trustworthy. We were no longer service-based architectures, which Johnson further developed the idea building programs; we were building in turn morphed into microser- of refactoring (which Martin Fowler with parts whose operation we cannot • Philippe Kruchten’s 411 View systems, often made of parts that we vice architectures, evolving as the further codifi ed in his book Refac- explain or fully trust? Model of software architecture; no longer controlled. Web’s technical infrastructure grew toring: Improving the Design of Ex- • Barry Boehm’s work in software By this time, there existed a rela- in fits and starts. New program- isting Code). In February 2001, 17 economics, together with his tively stable and economically very ming languages came and went agilists met in Snowbird, Utah, and spiral model; vibrant software engineering com- (and still do), but only a handful penned the Agile Manifesto. The ag- • Vic Basili and his ideas on em- munity. Independent companies still dominate—for example, Java, ile approach to software development and the presence of these walled augmented reality, virtual real- pirical software engineering; existed to serve the needs of require- JavaScript, Python, C11, C#, PHP, entered the mainstream. cathedrals have given rise to eco- ity, and the spread of computing to • Capers Jones and software ments analysis, design, development, and Swift. Computing moved from Software engineering had en- nomic forces that have made fi rst every human, every device, and metrics; testing, and configuration manage- the mainframe to the datacenter tered another golden age. Git and statistical approaches and now neu- every nook and cranny of the earth • Harlan Mills and clean-room ment. Continuous integration with to the cloud, but coupled with mi- GitHub emerged; Joel Spolsky gave ral networks viable. Most of these and beyond, and this makes for a software engineering; incremental and iterative develop- croservices, the Internet evolved to us Stack Overfl ow; Jeannette Wing modern advances have been in what tremendously exciting time to be in • Donald Knuth’s literate ment was becoming the norm. The become the de facto computing plat- introduced the idea of computa- I call “signal AI”: the use of neu- computing. programming; and Gang of Four—Eric Gamma, Rich- form. Company-specific ecosystems tional thinking; Andrew Shafer and ral networks and gradient descent In the , we • Watts Humphrey and his ard Helm, Ralph Johnson, and John rose like walled cathedrals: Ama- Patrick Debois brought us the idea of to do complex pattern matching in have seen the progression of sys- Capability Maturity Model. Vlissides—gave us another bump zon, Google, Microsoft, Facebook, DevOps; the full stack developer be- images, video, and audio signals. tems from mathematical, to sym- up in software engineering levels of Salesforce, IBM—really, every eco- came a thing; the Internet of Things The early outcomes are impressive, bolic, to what Yuval Harari calls Simultaneously, these software en- abstraction in the form of the de- nomically interesting company built appeared in every imaginable corner as evidenced in IBM’s Watson and “imagined realities.” Some soft- gineering concepts influenced the sign pattern. Institutionalized by its own fortress. of the world. Now, all of a sudden, Google’s AlphaGo. In many ways, ware is like building a doghouse: development of an entirely new gen- the Hillside Group in 1993, pat- This was now the age of the everyone could learn how to code we are just beginning to understand you just do it, without any blue- eration of programming languages. terns heavily influenced that genera- framework. Long gone were the re- (and many did). what is possible and where the lim- prints, and if you fail, you can Bjarne Stroustrup’s C with Classes tion of software development. Jim ligious battles over operating sys- Artifacts such as SWEBOK its of these connectionist models of always get another dog. Other soft- grew up to become C11, which later Coplien took the ideas of software tems. Now, battles were fought (Software Engineering Body of computation live. ware is like building a house or a

112 IEEE SOFTWARE | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE www.computer.org/computingedge SEPTEMBER/OCTOBER 2018 | IEEE SOFTWARE 11313 ON COMPUTING

6. F. Brooks, The Mythical Man Month: ABOUT THE AUTHOR Essays on Software Engineering, Addison-Wesley, 1975. 7. J. Markoff, What the Dormouse GRADY BOOCH is an IBM Fellow and one of UML’s original authors. Said, Penguin, 2005. Contact him at [email protected] and on Twitter as @grady_booch. 8. A. Newell, “Fairytails,” Carnegie Mellon Univ., 1976; http://repository .cmu.edu/cgi/viewcontent.cgi?article 3321&contextcompsci. 9. The Guide to the Software Engineer- ing Body of Knowledge, IEEE Com- puter Soc., 2004. 10. Guide to the Systems Engineering Body of Knowledge (SEBoK), Int’l high-rise: the economics are differ- keynote at the 2015 International Council Systems Eng., 2012. ent, the scale is different, and the Conference on Software Engineering cost of failure is higher. Much of in Florence, software is the invisible modern software engineering is like writing that whispers the stories of renovating a city: there is room for possibility to our hardware. This article originally appeared in radical innovation, but you are con- And you are the storytellers. IEEE Software, vol. 35, no. 5, 2018. strained by the past as well as the cultural, social, ethical, and moral Acknowledgments context of everyone else in the city. This essay is based on my ACM Learn-

One thing I do know. No mat- ing Webinar of the same title, broadcast IEEE MultiMedia July–September 2016 ter the medium or the technology on 25 April 2018. A recording is available http://www.computer.org

or the domain, the fundamentals at https://www.youtube.com/watch?v 2016 july–september of sound software engineering will QUz10Z1AfLc. A more extensive bibliog- ❚

always apply: craft sound abstrac- raphy is available as a Web Extra at https:// Quality Modeling

tions; maintain a clear separation extras.computer.org/extra/mso2018050108s1 of concerns; strive for a balanced .pdf. distribution of responsibilities; seek Volume 23 Number 3 simplicity. The pendulum will con- References tinue to swing—symbolic to con- 1. A. Oettinger, “President’s Letter to mult-22-03-c1 Cover-1 July 12, 2016 4:40 PM nectionist to quantum models of the ACM Membership,” Comm. IEEE MultiMedia serves the computation; intentional architec- ACM, vol. 9, no. 8, 1966. community of scholars, ture or emergent architecture; edge 2. G. Boole, The Laws of Thought, developers, practitioners, or cloud computing—but the funda- Walton and Maberly, 1854. and students who are mentals will stand. 3. F.B. Gilbreth Jr. and . Gilbreth interested in multiple Carey, Cheaper by the Dozen, media types and work in Thomas Y. Crowell, 1948. fields such as image and have named a few dozen women 4. W.J. Eckert, Punched Card Methods video processing, audio and men who have shaped soft- in Scienti c Computing, Thomas J. analysis, text retrieval, and I ware engineering, but please Watson Astronomical Computing data fusion. know that there are thousands more Bureau, Columbia Univ., 1940. who have made software engineering 5. J. von Neumann, First Draft of a Read It Today! what it is today, each by his or her Report on the EDVAC, US Army own unique contributions. And so it Ordinance Department and Univ. www.computer.org will be for the future of software en- Pennsylvania Moore School of Elec- /multimedia gineering. As I said in closing in my trical Eng., 1945.

14114 IEEE SOFTWAREComputingEdge | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE September 2019