Skip to content

Instantly share code, notes, and snippets.

@queertypes
Created April 14, 2014 18:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save queertypes/10670671 to your computer and use it in GitHub Desktop.
Save queertypes/10670671 to your computer and use it in GitHub Desktop.
Positive Advocacy for Functional Programming

Core message:

We're here because we're passionate about functional programming: Clojure, Haskell, Erlang, Scala, F#, Idris, and others. We've seen the benefits, we know why it works, and we want to spread what we've learned. I'm proposing to speak about how to advocate for functional programming while respecting the human element. By the end of this talk, you'll have learned:

  1. Why the human aspect is important to consider
  2. Advocacy anti-patterns: be aware and how to avoid them
  3. How to share what you love with positivity in mind

This talk targets advocacy on the group/individual level more than uptake in enterprise settings. Much of the advice remains applicable in that context, however.

Structure:

  • Introduction (3 minutes)

    • Who I am
    • Why healthy advocacy matters
  • On Being Human (6 minutes)

    • Cognitive biases
    • Need for security
    • Risk versus benefit judgments
    • Inclination towards familiarity
  • Advocacy Anti-Patterns (10 minutes)

    • Dismiss value of existing approaches/tools (don't do Java, because Java...)
    • Dismiss listener's excitement (Why on earth would you ever love node.js?!)
    • Overselling (Haskell with solve ALL your problems, and it's easy)
    • Fail to provide context (A Monad is just a monoid in the category of endofunctors)
    • Place yourself above your listener (with 2 years of type theory, I know better than you what's correct)
    • Address the logic w/o addressing the human (benchmarks and studies show that Idris makes you 10x more productive...)
  • Human-aware advocacy: Sharing with LOVES: (6 minutes)

    • Learning-focused: where does this idea come from? where can it take me?
    • Openness: what does my listener care about? why does it matter to them?
    • Valuable: what value am I proposing? how does it help?
    • Enabling/Energizing: what am I enabling by sharing this?
    • Story-driven: what happens next? what does the end look like? what's exciting?
  • Concluding remarks (2 minutes)

    • We're not perfect
    • Be honest - share what you know as well as what you don't
    • Fill in the gaps together for a more functional world
  • Q & A (rest)

Pre-reqs: an open mind

References:

  • Daniel Kahneman. Thinking, Fast and Slow. 2013.
  • Andy Hunt. Pragmatic Thinking and Learning: Refactor Your Wetware. 2008.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment