Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for...
Transcript of Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for...
![Page 1: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/1.jpg)
Worse Is Better,
for Better or for Worse
@KevlinHenney
![Page 2: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/2.jpg)
![Page 3: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/3.jpg)
![Page 4: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/4.jpg)
![Page 5: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/5.jpg)
![Page 6: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/6.jpg)
![Page 7: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/7.jpg)
There are only two kinds of languages: the ones people complain about and the ones nobody uses.
Bjarne Stroustrup
![Page 8: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/8.jpg)
![Page 9: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/9.jpg)
In 1990 I proposed a theory, called
Worse Is Better...
![Page 10: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/10.jpg)
The "good enough software" concept popularized by Yourdon.
In many senses, it's just a rationalization of what's happening in the software world: the first company hitting the market with a feature-rich product is more likely to win the battle than the careful, quality-seeking company.
Carlo Pescio http://www.eptacom.net/pubblicazioni/pub_eng/wirth.html
![Page 11: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/11.jpg)
"Good enough software" is rarely good enough.
Niklaus Wirth http://www.eptacom.net/pubblicazioni/pub_eng/wirth.html
![Page 12: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/12.jpg)
Good
Enough
Feature-complete
development
Beta testing
Technical debt
Visual Age
First to market
Feature rich
Not quality driven
![Page 13: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/13.jpg)
In 1990 I proposed a theory, called
Worse Is Better, of why software would
be more likely to succeed if it was
developed with minimal invention.
![Page 14: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/14.jpg)
It is far better to have an underfeatured
product that is rock solid, fast, and
small than one that covers what an
expert would consider the complete
requirements.
![Page 15: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/15.jpg)
The following is a characterization of the
contrasting [the right thing] design philosophy:
Simplicity: The design is simple [...].
Simplicity of implementation is irrelevant.
Completeness: The design covers as many
important situations as possible. All
reasonably expected cases must be covered.
Correctness: The design is correct in all
observable aspects.
Consistency: The design is thoroughly
consistent. A design is allowed to be slightly
less simple and less complete in order to
avoid inconsistency. Consistency is as
important as correctness.
![Page 16: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/16.jpg)
The Right
Thing
MIT Approach
Consistent
Simple interfaces
Defined
Implementation
complexity Complete
scope
Quality driven
![Page 17: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/17.jpg)
![Page 18: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/18.jpg)
People overvalue their knowledge
and underestimate the probability
of their being wrong.
![Page 19: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/19.jpg)
What I cannot create, I do
not understand.
Richard Feynman
![Page 20: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/20.jpg)
You have to finish things —
that's what you learn from,
you learn by finishing things.
Neil Gaiman
![Page 21: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/21.jpg)
Here are the characteristics of a worse-is-better
software design:
Simplicity: The design is simple in
implementation. The interface should be
simple, but anything adequate will do.
![Page 22: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/22.jpg)
Interface
Implementation
![Page 23: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/23.jpg)
Implementation
Interface
![Page 24: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/24.jpg)
Implementation
Interface
![Page 25: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/25.jpg)
Aesthetics does not affect perceived usability, but degraded usability negatively affects perceived aesthetics. In other words, usability is more important than beauty.
"Is Beautiful Usable, or Is It the Other Way Around?" http://www.infoq.com/news/2012/05/Aesthetics-Usability
![Page 26: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/26.jpg)
Here are the characteristics of a worse-is-better
software design:
Simplicity: The design is simple in
implementation. The interface should be
simple, but anything adequate will do.
Completeness: The design covers only
necessary situations. Completeness can be
sacrificed in favor of any other quality.
![Page 27: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/27.jpg)
![Page 28: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/28.jpg)
The more specific a
design idea is, the
greater its appeal is
likely to be.
![Page 29: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/29.jpg)
#!/usr/bin/perl # -------------------------------------------------------- PerlInterpreter # PerlInterpreter must be the first line of the file. # # Copyright (c) 1995, Cunningham & Cunningham, Inc. # # This program has been generated by the HyperPerl # generator. The source hypertext can be found # at http://c2.com/cgi/wikibase. This program belongs # to Cunningham & Cunningham, Inc., is to be used # only by agreement with the owner, and then only # with the understanding that the owner cannot be # responsible for any behaviour of the program or # any damages that it may cause. # -------------------------------------------------------- InitialComments
# InitialComments print "Content-type: text/html\n\n"; $DBM = "/usr/ward/$ScriptName"; dbmopen(%db, $DBM , 0666) || &AbortScript("can't open $DBM"); $CookedInput{browse} && &HandleBrowse; $CookedInput{edit} && &HandleEdit; $CookedInput{copy} && &HandleEdit; $CookedInput{links} && &HandleLinks; $CookedInput{search} && &HandleSearch; dbmclose (%db); if ($ENV{REQUEST_METHOD} eq POST) { $CookedInput{post} && &HandlePost; } # &DumpBinding(*CookedInput); # &DumpBinding(*old); # &DumpBinding(*ENV); # -------------------------------------------------------- WikiInHyperPerl
![Page 30: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/30.jpg)
Here are the characteristics of a worse-is-better
software design:
Simplicity: The design is simple in
implementation. The interface should be
simple, but anything adequate will do.
Completeness: The design covers only
necessary situations. Completeness can be
sacrificed in favor of any other quality.
Correctness: The design is correct in all
observable aspects.
Consistency: The design is consistent as far
as it goes. Consistency is less of a problem
because you always choose the smallest
scope for the first implementation.
![Page 31: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/31.jpg)
Implementation characteristics are foremost:
The implementation should be fast.
![Page 32: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/32.jpg)
Savings in time feel like simplicity
![Page 33: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/33.jpg)
Implementation characteristics are foremost:
The implementation should be fast.
It should be small.
![Page 34: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/34.jpg)
Allan Kelly Beyond Projects
http://www.slideshare.net/allankellynet/no-prokects-beyond-projects-refreshed-version
Software development does not
have economies of scale.
Development has diseconomies
of scale.
![Page 35: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/35.jpg)
Allan Kelly Beyond Projects
http://www.slideshare.net/allankellynet/no-prokects-beyond-projects-refreshed-version
![Page 36: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/36.jpg)
https://twitter.com/KevlinHenney/status/538296211166740480
![Page 37: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/37.jpg)
completion time for one person
𝑡 = 𝑡1
![Page 38: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/38.jpg)
division of labour
𝑡 =𝑡1
𝑛
![Page 39: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/39.jpg)
𝑡 = 𝑡1 1 − 𝑝 𝑛 − 1
𝑛
portion in parallel
Amdahl's law
![Page 40: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/40.jpg)
𝑡 = 𝑡1 1 − 𝑝 𝑛 − 1
𝑛+ 𝑘
𝑛 𝑛 − 1
2
communication overhead
connections
![Page 41: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/41.jpg)
𝑡 = 𝑡1 1 − 𝑝 𝑛 − 1
𝑛+ 𝑘
𝑛 𝑛 − 1
2
![Page 42: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/42.jpg)
Implementation characteristics are foremost:
The implementation should be fast.
It should be small.
It should interoperate with the programs
and tools that the expected users are
already using.
![Page 43: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/43.jpg)
I always have it in the back of my head that I want to make a slightly better C.
But getting everything to fit, top to bottom, syntax, semantics, tooling, etc., might not be possible or even worth the effort.
As it stands today, C is unreasonably effective, and I don't see that changing any time soon.
Damien Katz http://damienkatz.net/2013/01/the_unreasonable_effectiveness_of_c.html
![Page 44: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/44.jpg)
![Page 45: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/45.jpg)
Implementation characteristics are foremost:
The implementation should be fast.
It should be small.
It should interoperate with the programs
and tools that the expected users are
already using.
It should be bug-free, and if that requires
implementing fewer features, do it.
It should use parsimonious abstractions as
long as they don’t get in the way.
![Page 46: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/46.jpg)
Worse Is
Better
Unix
Agile
Lean Startup Small
Minimum Viable Product
Incremental
development
Wiki Simple
implementation
New Jersey style
Empirical
Existing
infrastructure Quality driven
![Page 47: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/47.jpg)
![Page 48: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/48.jpg)
There have always been fairly severe
size constraints on the Unix operating
system and its software. Given the
partially antagonistic desires for
reasonable efficiency and expressive
power, the size constraint has
encouraged not only economy but a
certain elegance of design.
Dennis Ritchie and Ken Thompson "The UNIX Time-Sharing System", CACM
![Page 49: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/49.jpg)
Architecture is the decisions that
you wish you could get right early
in a project, but that you are not
necessarily more likely to get them
right than any other.
Ralph Johnson
![Page 50: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/50.jpg)
Analysis Design Code Test
![Page 51: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/51.jpg)
Analysis Design Code Test
![Page 52: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/52.jpg)
Analysis Design Code Test
![Page 53: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/53.jpg)
![Page 54: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/54.jpg)
Design Design Design Design
![Page 55: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/55.jpg)
Design
![Page 56: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/56.jpg)
![Page 57: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/57.jpg)
![Page 58: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/58.jpg)
The "defined" process control
model requires that every
piece of work be completely
understood. Given a well-
defined set of inputs, the
same outputs are generated
every time.
![Page 59: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/59.jpg)
The empirical process control
model, on the other hand,
expects the unexpected. It
provides and exercises control
through frequent inspection
and adaptation for processes
that are imperfectly defined
and generate unpredictable
and unrepeatable results.
![Page 60: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/60.jpg)
The classic essay on "worse is better" is either misunderstood or wrong.
Jim Waldo
![Page 61: Worse Is Better, for Better or for Worse - SDD Conference · Worse Is Better, for Better or for Worse @KevlinHenney . There are only two kinds of languages: the ones people complain](https://reader030.fdocuments.net/reader030/viewer/2022040409/5ec686fefa32ab50b40d1bd8/html5/thumbnails/61.jpg)
Decide for yourselves.
Richard P Gabriel