Codemash 2013 Keynote Neal Ford

After three years I’ve returned to Codemash! Just like three years ago I’m going to post my notes here so to help the learning sink in!

The keynote presentation started a little late, around 8:20 Am.  I was a little bleary eyed after my hour long drive out from Cleveland, and had a bit of a food coma going after a super quick breakfast.  All in all I was hoping to have an eye popping and life altering experience, or at least enough to keep me from passing out in my scrambled eggs.   I didn’t pass out, but I didn’t have any religious experiences either.

The keynote was given by Neal Ford.  See his website for the details but to summarize author and big wheel at ThoughtWorks.  Apparently has written a few books and has a new book out relating design patterns to creating presentations.

Neal’s presentation was based on a concept called ‘Geek Leaking’.  The basic concept was applying problem solving from disparate areas to each other to come up with unanticipated breakthroughs.    For example apply the scientific method to anything to break down walls.

The presentation began with definitions of the word “Geek’.  Apparently Geek is a verb as well as a noun,  ‘Geeking’ is spending inordinate amounts of time on disciplines that other people don’t find very exciting.

Richard Feynman worked at Los Alamos and had a deep physics background.  He was known for applying his problem solving skills to areas well outside of his specialty and achieving impressive results.

Forbes published an article about how all companies now have some software aspect to them.  In this regard all companies are in some way software companies and the ‘Geekness’ of software professionals is now leaking into normal businesses.

Next Neal’s book ‘Presentation Patterns’ was used as an example of how the ‘Geekness’ of software people is now leaking into presentations.  Neal gave some examples of some good and bad presentation formatting.  Anti patterns in presentations:  looking old even if using new technology, hiccup words, Alienating artifacts.  Good patterns in presentations: Context Keepers, Backtracking, Blank Slide to put focus on you when you want it.

Reviewed John McCarthy from Stanford in fifties, was creator of LISP language ran AI lab.  Neal put forth that many of personal computer researchers at that time were hippies, and that hippies were more visionary than normal people so the PC age was ushered in.   One problem, however, hippies are egalitarian so couldn’t forsee email being abused for spam.

Neal admitted to making  crank calls as a child.  He indicated he has stopped this now that caller id has come into use.  No fun making crank call when recipient knows where you live.  Not quite sure what the point here was, but it’s interesting.

Richard Feynman did work optimizing process at a Uranium Enrichment facility.  Part of this work laid the groundwork for parallel computing.  Feynman essentially created a human parallel computing process to help with large calculations he was needing to perform.

Neal next mentioned the book Power of Habit.  Habituation causes the brain to be able to do tasks with less effort.  Once a task is a habit brain can accomplish it with far less mental effort.

The presentation now spent a good amount of time detailing benefits of continuous integration and deployment.  Mentioned anecdote about Martin Fowler as a teenager in Birmingham UK visiting a software project that was bogged down in long ‘integration’ process of software that was written then ‘integrated’.  Used this as a reason to integrate every day to make integration less painful by doing it more often.  ‘Bring the pain forward’ to make the pain less.

Deming Cycle is really just scientific method and really is Geek Leakage from research and statistics into software.

Richard Feynman like pretending to be a safe cracker.  He knew many safe codes were birthdays so would sneak into people’s offices and spend time guessing their safe codes, then if front of them would pretend he could crack their safe.

Jeweler’s Hammer metaphor.

Use a jeweler’s hammer to break a large problem domain down into two or more more easily solved problem domains.  Neal used time as  a hammer to break down presentation problems, gave examples of Traveling Highlight and code Overlays as examples of how looking for how to save time lead to breakthroughs.  Also used clojure as an example of a jeweler’s hammer approach to solve variable threading problems in Java.

Evolutionary Architecture and Emergent Design.  Architecture is anything that is really hard to change.  Architecture should start small and evolve.  Design is for things that are flexible so it can emerge as a project moves forward since changing it has minor consequences as compared to architecture changes.

Continuous Integration for Components.  Can create systems that self update when a dependency changes all the way through deploying a production ready version.  Guarded dependency is build with an updated component that did not make it all the way to deployable code.  Trust is required to setup systems that automatically consume other component updates.  Mentioned Github and change in open source motif where there are now pullers who get source code and make changes and then submit them versus old school allowed collaborators on a project.

Richard Feynman played the bongos.

Downsides to Geek Leakage: overly complicated solutions.  Reference wired article about advanced math used on Wall street being reason for financial melt down.  I disagree, if banks were allowed to fail they would not use these tool irresponsibly, it is the lack of risk involved since banks are too big to fail that lets them run massive risks that then damage the economy.

Neal then reviewed his concerns regarding armed robots.  He wants to make sure that armed not so smart robots have rock solid code.  In this context Neal mentioned Asimov’s robot books and the robot laws as  a good idea.

Richard Feynman participated in reviewing the challenger disaster.  By using a simple approach was more effective than statisticians  He simply put o-ring material in cold water to show it was ridgid.

In short, embrace scientific method everywhere, use Jeweler’s hammers and only Geek Leak positively.

Leave a Reply

Your email address will not be published. Required fields are marked *