39
Applying Philosophy to Engineering Topher Bullock @topherbullock [email protected] ( how two seemingly different things you love might complement each other in interesting and useful ways )

Philosophical Solutions to Agile Engineering with Topher Bullock

  • Upload
    fitc

  • View
    368

  • Download
    1

Embed Size (px)

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.

Citation preview

Page 1: Philosophical Solutions to Agile Engineering with Topher Bullock

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 )

Page 2: Philosophical Solutions to Agile Engineering with Topher Bullock

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. "

Page 3: Philosophical Solutions to Agile Engineering with Topher Bullock

" The Dialectic of the new and the old. "

" Analyze today through the

lenses of the past."

Page 4: Philosophical Solutions to Agile Engineering with Topher Bullock

About - Agile Engineer @ Xtreme Labs- Work on Mobile Web / Hybrid products - UWO/Fanshawe Media Theory & Production grad.

Page 5: Philosophical Solutions to Agile Engineering with Topher Bullock

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

Page 6: Philosophical Solutions to Agile Engineering with Topher Bullock

Pair Programming

Page 7: Philosophical Solutions to Agile Engineering with Topher Bullock

``

Page 8: Philosophical Solutions to Agile Engineering with Topher Bullock

``Logic : William of Occam

Page 9: Philosophical Solutions to Agile Engineering with Topher Bullock

¬( 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.

Page 10: Philosophical Solutions to Agile Engineering with Topher Bullock

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.

Page 11: Philosophical Solutions to Agile Engineering with Topher Bullock

Occams Razor

" entities must not be multiplied beyond necessity "

- Synthesis of Occam's insights on Logic- Often (intentionally) over-simplified

Page 12: Philosophical Solutions to Agile Engineering with Topher Bullock

" 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). "

Page 13: Philosophical Solutions to Agile Engineering with Topher Bullock

DONE!

Page 14: Philosophical Solutions to Agile Engineering with Topher Bullock

Code Epistemology : Plato

Page 15: Philosophical Solutions to Agile Engineering with Topher Bullock

' 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"

Page 16: Philosophical Solutions to Agile Engineering with Topher Bullock
Page 17: Philosophical Solutions to Agile Engineering with Topher Bullock

Design Patterns

CreationalStructuralBehavioral

" a general reusable solution to a commonly occurring problem

within a given context "

Page 18: Philosophical Solutions to Agile Engineering with Topher Bullock

Mediator Pattern" encapsulates how a set of objects

interact. promotes loose coupling by keeping objects from referring to each

other explicitly "

Page 19: Philosophical Solutions to Agile Engineering with Topher Bullock

World of Forms

Page 20: Philosophical Solutions to Agile Engineering with Topher Bullock

V8 : Hidden Classes

Page 21: Philosophical Solutions to Agile Engineering with Topher Bullock

V8 : Hidden Classes

Page 22: Philosophical Solutions to Agile Engineering with Topher Bullock
Page 23: Philosophical Solutions to Agile Engineering with Topher Bullock

Observability

" Creators need to be able to see what they're doing "

Bret Victor - Inventing on Principle

Page 24: Philosophical Solutions to Agile Engineering with Topher Bullock

Debugging Ontology : Hume & Kant

Page 25: Philosophical Solutions to Agile Engineering with Topher Bullock

David Hume

Page 26: Philosophical Solutions to Agile Engineering with Topher Bullock

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

Page 27: Philosophical Solutions to Agile Engineering with Topher Bullock

When an event or output is dependant on the sequence or timing of other uncontrollable events.

Race Conditions

Page 28: Philosophical Solutions to Agile Engineering with Topher Bullock

Immanuel Kant

Page 29: Philosophical Solutions to Agile Engineering with Topher Bullock

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

Page 30: Philosophical Solutions to Agile Engineering with Topher Bullock

" All bachelors are unmarried " " 7 + 5 = 12"

a priori

Page 31: Philosophical Solutions to Agile Engineering with Topher Bullock

" 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"

Page 32: Philosophical Solutions to Agile Engineering with Topher Bullock

" Being wrong doesn't feel like anything. "

Page 33: Philosophical Solutions to Agile Engineering with Topher Bullock

Confirmation Bias

a tendency of people to favor information that confirms their beliefs or hypotheses

Page 34: Philosophical Solutions to Agile Engineering with Topher Bullock
Page 35: Philosophical Solutions to Agile Engineering with Topher Bullock
Page 36: Philosophical Solutions to Agile Engineering with Topher Bullock
Page 37: Philosophical Solutions to Agile Engineering with Topher Bullock
Page 38: Philosophical Solutions to Agile Engineering with Topher Bullock

Agile Engineers as Authors

Page 39: Philosophical Solutions to Agile Engineering with Topher Bullock

" 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).