philosophical solutions to agile engineering with topher bullock
DESCRIPTION
Can Socrates teach you how to pair program? Do the methodologies of the German Idealism movement help solve complex engineering tasks? Could reading works by dead Frenchman with immaculate facial hair really help you be a better programmer? Part introduction to the philosophical tradition, part primer on engineering practice, this talk will present big philosophical ideas as common sense solutions to the daily tasks of Agile Engineers.TRANSCRIPT
Applying Philosophy to Engineering
Topher [email protected]@xtremelabs.com
( how two seemingly different things you love might complement each other in interesting and
useful ways )
Slavoj Zizek "First As Tragedy, Then As Farce" (2009).
" When we are dealing with a truly great philosopher the real question to
be raised concerns not what this philosopher may still tell us, what he may still mean to us, but rather the
opposite, namely, what we are, what our contemporary situation might be, in his eyes, how our epoch would appear
to his thought. "
" The Dialectic of the new and the old. "
" Analyze today through the
lenses of the past."
About - Agile Engineer @ Xtreme Labs- Work on Mobile Web / Hybrid products - UWO/Fanshawe Media Theory & Production grad.
To become the leading provider of mobile solutions to the world's most important companies as we help drive a revolution in computing.
Xtreme Labs : Mission
Pair Programming
``
``Logic : William of Occam
¬( Q AND P ) ⇔ ( ¬Q OR ¬P )
De Morgan's laws
!( Q && P ) ⇔ ( !Q || !P)
If ConditionQ and ConditonP are not simultaneously true.
It can be inferred that:
Either ConditionQ is not true or ConditionP is not true.
If the blog post is not both saved and valid.
It can be inferred that:
Either the post is invalid or it hasn't been saved.
Occams Razor
" entities must not be multiplied beyond necessity "
- Synthesis of Occam's insights on Logic- Often (intentionally) over-simplified
" A difficult-to-believe, but optimized internal dispatch function for triggering events. Tries
to keep the usual cases speedy (most internal
Backbone events have 3 arguments). "
DONE!
Code Epistemology : Plato
' grok '( pron :: /ɡrɒk/ )
" to understand profoundly and intuitively "
" to intimately and completely share the same reality or line of thinking
with another physical or conceptual entity"
Design Patterns
CreationalStructuralBehavioral
" a general reusable solution to a commonly occurring problem
within a given context "
Mediator Pattern" encapsulates how a set of objects
interact. promotes loose coupling by keeping objects from referring to each
other explicitly "
World of Forms
V8 : Hidden Classes
V8 : Hidden Classes
Observability
" Creators need to be able to see what they're doing "
Bret Victor - Inventing on Principle
Debugging Ontology : Hume & Kant
David Hume
When events of one kind are immediately followed by events of another kind.
Where, if there had been no object of the first kind, we would never have seen an object of the second kind.
Accounting for Causation
When an event or output is dependant on the sequence or timing of other uncontrollable events.
Race Conditions
Immanuel Kant
proposition whose justification does not rely upon experience; can be validated by experience, but is not grounded in it.
proposition whose justification relies on experience; validated by, and grounded in, experience.
a priori
a posteriori
" All bachelors are unmarried " " 7 + 5 = 12"
a priori
" All bachelors are unhappy." " Cats exist."
a posteriori
" Adding arrays gives you a string" " Feature X doesn't work on iPad but works in IE8"
" Being wrong doesn't feel like anything. "
Confirmation Bias
a tendency of people to favor information that confirms their beliefs or hypotheses
Agile Engineers as Authors
" Once the Author is gone, the claim to ' decipher ' a text becomes quite
useless. "
" To give an Author to a text is to impose upon that text a stop clause, to
furnish it with a final signification "
Roland Barthes"The Death of The Author" (1967).