26
Is Software Is Software Engineering? Engineering? A personal retrospective and A personal retrospective and a look at the road ahead a look at the road ahead . . Brad Cox, Ph.D. http://virtualschool.edu Cleveland State Cleveland State Nov 7, 2002 Nov 7, 2002

Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D. Cleveland

Embed Size (px)

Citation preview

Page 1: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

Is Software Engineering?Is Software Engineering?A personal retrospective andA personal retrospective and

a look at the road aheada look at the road ahead..

Brad Cox, Ph.D.http://virtualschool.edu

Cleveland StateCleveland StateNov 7, 2002Nov 7, 2002

Page 2: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Industrial RevolutionBefore

Generalist craftsmen hand-fabricated the parts and assembled them into finished products

DuringWater-powered tools of certainty replaced hand-powered tools of risk

Specification and testing tools made interchangeable parts possible

AfterIndustry-wide displacement of generalist craftsmen by specialized labor

Page 3: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Software complexitySoftware complexity

Wooden Pencil Digital Pencil

Digital PropertyEight people made this

Tangible PropertyThousands made this.

Page 4: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Pencil supply chainPencil supply chain

Pencil MillPencil Mill(San Leandro)(San Leandro)

BrassBrass

EraserEraser

LacquerLacquer

““Lead”Lead”

CedarCedar(Oregon)(Oregon)

GraphiteGraphite(Ceylon)(Ceylon)

ClayClay(Mississippi)(Mississippi)

Candelilla WaxCandelilla Wax(Mexico)(Mexico)

Rape Seed OilRape Seed Oil(Indonesia)(Indonesia)

Pumice (Italy)Pumice (Italy)

Sulfur Sulfur ChlorideChloride

FacticeFactice

CadmiumCadmiumSulfideSulfide

SulfonatedSulfonatedTallowTallow

ZincZinc

CopperCopper

Black NickelBlack Nickel

Page 5: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Eliminating complexity

Supply chainsSupply chains eliminateeliminate complexity complexityBy making it somebody else’s problemBy making it somebody else’s problem

Through buying/selling goods/servicesThrough buying/selling goods/services

Compensation is assuredCompensation is assuredGoods obey physical conservation lawsGoods obey physical conservation laws

Cheaters have the right but not the abilityCheaters have the right but not the ability

Protection is endogenous, not exogenousProtection is endogenous, not exogenous

Built in, not strapped onBuilt in, not strapped on

Page 6: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Is Software Engineering?

Engineers do for a dollarwhat any fool can do for two

Specify

Acquire/FabricateComponents

Assemble

Test

Deliver Design

Processes and Products Supply Chains

Page 7: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Today’s OutlineIs Software Engineering?

Software Components (Objective-C)

Salesrooms versus Vaults (MyBank)

Distributed Learning Environments

Page 8: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

An object-oriented guyFabrication Tools

1973: PhD Mathematical Biology, University of Chicago

1974: Post-doc; NIH, MD and Woods Hole, MA (Fortran)

1975: University of Chicago Virology, IL (Fortran)

1977: Tal-Star Systems, NJ, System Architect (C)

1978: Hendrix Electronics, NH, System Architect (Unix, C)

Assembly/Testing Tools1980: ITT Programming Technology Research, CT (Unix, C)

1982: Schlumberger-Doll Research, CT (Unix, C)

1983: Stepstone, CT (Objective-C, GUI ICpak)

Coordination Tools1993: George Mason University, VA (Perl, Java, Oberon)

2002: Interactive Learning Environment (Ruby)

Supply Chain Tools1999: Superdistribution Inc, VA (Java)

2001: MyBank Feasibility Demonstration (Java)

Page 9: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

The Software-IC IdealObjective-C

C for fabricating low-level Software ICs

Smalltalk for soldering them together

ICpak 101Foundation class library

ICpak 201Graphical User Interface Library

TaskmasterMultitasking library for higher-level components

Automated test infrastructure

Page 10: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

The Software-IC RealityHardware is made of atoms

Abide by physical conservation laws

Trivial to buy, sell and own

Software is made of bitsImmune to physical conservation laws

Impossible to buy, sell and own as before

ConclusionsCopyright based compensation cannot work

Advertising based compensation : tried and failed

Useright based compensation (rental) could work

Pay by the drink v. pay by the barrel

Page 11: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Today’s OutlineIs Software Engineering?

Software Components (Objective-C)

Salesrooms versus Vaults (MyBank)

Distributed Learning Environments

Page 12: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

The present situationAdvertising-supported content

Internet as text TV

Distracting “animated content”

Pop-over ads, spyware, privacy, spam

Dot-bomb debacle

Warfare between owners and buyers Lawyers/courts/government

Digital Millennium Copyright Act

Napster out of business

RIAA’s tax proposal

Win-lose not win-winSellers view buyers as thieves

Buyers return the favor, in spades

Page 13: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Why not win-win?Root of the problem

Tangible property’s made of atoms

Digital property’s made of bits

Intellectual property’s made of neither

Seeds of the solutionRights v. abilities

Exogenous v. endogenous

Unigranular v. multigranular

Vaults v. salesrooms

Tangible Intellectual

Digital

Page 14: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Vaults

Win-loseFocus on thieves not customers

Focus on protectingNot on buying/selling

Static securityMaginot style concrete and steel

ExogenousWrapped around not built in

Cryptography

XRML

Digital property

Page 15: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Salesrooms

Win-winCustomers and thieves

Selling and protecting

Emphasis on dynamic securityCameras, alarms, clerks, guards

Endogenous protectionConservation of mass

Multigranular and unigranularAdvanced and primitive goods

Page 16: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Salesrooms

Exchange transactionsGoods flow one way, money the other

Flexibility. How would you like to pay?

Supply chainsUnigranular = primitive

Multigranular = advanced

goods money

supply chain

Page 17: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Checkout counter

dbmsprice

Barcode scanner

barcodeserver

Credit cardscanner

account

checkout

Total + tax

receipt

Page 18: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Data(dumb)

Seller

MyBank

Who? calling objectWhat? called objectWhen? timestamp

Buyer

allow?

commit

API

infrastructure

checkbookObject (smart) server

accounts

cryptographickeys

Seller2 Seller3

Page 19: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

SubroutineA SubroutineB

ComponentA ComponentB

Revenue flows upon useNot when bits are acquired

ApplicationA ApplicationB

login logoutEnd User

Page 20: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Today’s OutlineIs Software Engineering?

Software Components (Objective-C)

Vaults versus Salesrooms (MyBank)

Distributed Learning Environments

Page 21: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Coordination ToolsCommunication tools

Amplify signal and noise equally

Television, billboards, newspapers

Listservs, chat, static html

Coordination toolsAmplify only timely/relevant signal

Eliminate untimely/irrelevant noise

What this individual needs nowDynamic web sites

Page 22: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

A web-oriented worldA web-oriented world1993: Face to face (electronic) classroom

Gopher, Lynx, Html, Pine, Direct Dial Connectivity

1994: Video + InternetDialup IP, Eudora, MosaicTelevision + videotape

1995: Coordination TechnologyDynamic pages (perl, cgi, mod_perl)DARPA CAETI Project (DODDS Europe)

1997: Paul Allen AwardIMS Digital Commerce Project

2002: Interactive Learning Environmenthttp://virtualschool.edu/ile

Page 23: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Haul the education, not the studentsHaul the education, not the students

VideoVideoInternetInternet

TelephonesTelephones Face to FaceFace to Face

Page 24: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Teaching principlesHaul the education to the students

Not the other way around

Coordination technologyAmplify signal, eliminate noise

Leave no one behindDesign out failure behaviors

Doing, not memorizing

Teams, not individuals

Real-world, not academic

Get the economics rightAutomate the drudge work

Handle large enrollments

Page 25: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu

Questions?Is Software Engineering?

Software Components (Objective-C)

Vaults versus Salesrooms (MyBank)

Distributed Learning Environments

Page 26: Is Software Engineering? A personal retrospective and a look at the road ahead. Brad Cox, Ph.D.   Cleveland

http://virtualschool.edu