Software
Is Details
@KevlinHenney
Any program is a model of a
model within a theory of a model
of an abstraction of some portion
of the world or of some universe
of discourse.
Meir M Lehman
"Programs, Life Cycles, and Laws of Software Evolution"
The purpose of abstraction is not
to be vague, but to create a new
semantic level in which one can
be absolutely precise.
Edsger W Dijkstra
It's just semantics.
It's just meaning.
It's just details.
Details count.
Peter Weinberger
Geeks are people who
love something so much
that all the details matter.
Marissa Mayer
We're talking about a very
specific mindset that is crucial
when it comes to the act of
creating.
Will Gompertz
Think Like an Artist
It is an attitude that can be
encapsulated in a simple but
demanding rule: always think
both big picture and fine detail.
Will Gompertz
Think Like an Artist
software
software
architecture
code
implementation
implementation
details
design
details
design
decisions
Architecture represents the
significant design decisions
that shape a system, where
significant is measured by
cost of change.
Grady Booch
Architecture is a hypothesis,
that needs to be proven by
implementation and
measurement.
Tom Gilb
We propose [...] that one begins
with a list of difficult design
decisions or design decisions
which are likely to change. Each
module is then designed to hide
such a decision from the others.
David L Parnas
On the Criteria to Be Used in Decomposing Systems into Modules
Programming is
a design activity.
Jack W Reeves
What Is Software Design?
Coding actually makes sense more often
than believed. Often the process of
rendering the design in code will reveal
oversights and the need for additional
design effort.The earlier this occurs, the
better the design will be.
Jack W Reeves
What Is Software Design?
If a plot works out exactly
as you first planned, you're
not working loosely enough
to give room to your
imagination and instincts.
/ WordFriday
pantser, noun
 Writer who writes by the seat of their pants.
 In contrast to a plotter, a pantser doesn't
work to (or have) an outline.
16-bit
32-bit
64-bit
<windows.h>
LLP64
LP64
Hamlet: To be, or not to be,
that is the question.
Ophelia: 'Tis in my memory
locked, and you yourself
shall keep the key of it.
Hamlet: Yea, from the table
of my memory I'll wipe
away all trivial fond records.
Mutable
Immutable
Unshared Shared
Unshared mutable
data needs no
synchronisation
Unshared immutable
data needs no
synchronisation
Shared mutable
data needs
synchronisation
Shared immutable
data needs no
synchronisation
Mutable
Immutable
Unshared Shared
Unshared mutable
data needs no
synchronisation
Unshared immutable
data needs no
synchronisation
Shared mutable
data needs
synchronisation
Shared immutable
data needs no
synchronisation
The Synchronisation Quadrant
All computers
wait at the
same speed
Savings in
time feel like
simplicity
... premature optimization is
the root of all evil (or at least
most of it) in programming.
Donald Knuth
... premature optimization is
the root of all evil (or at least
most of it) in programming.
Donald Knuth
... premature optimization is
the root of all evil (or at least
most of it) in programming.
Donald Knuth
Command-line tools
can be 235x faster than
your Hadoop cluster
Adam Drake
http://aadrake.com/command-line-tools-can-be-235x-faster-than-your-hadoop-cluster.html
sort
O(n log n)
O(n2)
O(n!)
OMG!
O(n)
Simple Testing Can Prevent
Most Critical Failures
An Analysis of Production Failures in
Distributed Data-Intensive Systems
https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf
Schiaparelli’s Inertial Measurement Unit (IMU) went
about its business of calculating the lander’s rotation
rate. For some reason, the IMU calculated a saturation-
maximum period that persisted for one second longer
than what would normally be expected at this stage.
When the IMU sent this bogus information to the craft’s
navigation system, it calculated a negative altitude.
http://gizmodo.com/a-crazy-miscalculation-doomed-the-sciaparelli-lander-1789319670
That fateful miscalculation set off a cascade of despair,
triggering the premature release of the parachute and
the backshell, a brief firing of the braking thrusters, and
activation of the on-ground systems as if Schiaparelli had
already reached the surface.
This all happened while the vehicle was still two miles
(3.7 km) above ground.
http://gizmodo.com/a-crazy-miscalculation-doomed-the-sciaparelli-lander-1789319670
A majority of the production
failures (77%) can be
reproduced by a unit test.
https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf
http://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/
http://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/
http://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/
http://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/
Normally screws are so cheap and small and
simple you think of them as unimportant.
But now, as your Quality awareness
becomes stronger, you realize that this one,
individual, particular screw is neither cheap
nor small nor unimportant.
Robert M Pirsig
Zen and the Art of Motorcycle Maintenance
Right now this screw is worth exactly the
selling price of the whole motorcycle,
because the motorcycle is actually valueless
until you get the screw out.
With this reevaluation of the screw comes a
willingness to expand your knowledge of it.
Robert M Pirsig
Zen and the Art of Motorcycle Maintenance
Software
Is Details

Software Is Details