Philosophical Solutions to Agile Engineering with Topher Bullock

Post on 22-Apr-2015

368 views 1 download

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 of Philosophical Solutions to Agile Engineering with Topher Bullock

Applying Philosophy to Engineering

Topher Bullock@topherbullocktopher.bullock@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).