Optimising Self @ RedDotRubyConf 2013

Optimising Self @ RedDotRubyConf 2013

42a64442dad4115d8104d5c09289767d?s=128

Simon Robson

June 08, 2013
Tweet

Transcript

  1. June 8, 2013 Optimising Self Simon Robson @shr Sunday, 9

    June 13
  2. Project Me: the ongoing implementation of self Sunday, 9 June

    13
  3. Project Me: the ongoing implementation of self @dhh’s thing Sunday,

    9 June 13
  4. Project Me: the ongoing implementation of self @dhh’s thing @shr’s

    thing Sunday, 9 June 13
  5. Self is your context Sunday, 9 June 13

  6. self = UberRubyist.new SyntaxError: compile error Can't change the value

    of self Sunday, 9 June 13
  7. How to maximize the current performance and ensure long-term maintainability

    of the wetware pounding on the keyboard Sunday, 9 June 13
  8. self: Simon Robson twitter: @shr email: shrobson@gmail.com hacks_on: ruby, js,

    clojure lives_in: Chiang Mai, Thailand version: 14251 Sunday, 9 June 13
  9. Finding Self Towards a Process Implementation Techniques Sunday, 9 June

    13
  10. 1 - Individual Approach Finding Self Sunday, 9 June 13

  11. I’m a programmer Sunday, 9 June 13

  12. “The programmer, like the poet, works only slightly removed from

    pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination.” Fred Brooks, The Mythical Man-Month, 1975 Sunday, 9 June 13
  13. Why? Sunday, 9 June 13

  14. My ongoing and future personal comfort depends on my ability

    to design and realize creative works which meet certain externally imposed requirements Repeatedly.... and with some number of successes Sunday, 9 June 13
  15. Self Messy Competing Needs of the Real World Cold Hard

    Logic of the Machine Image: http://wallppaer.com/wp-content/uploads/2013/04/fantasy-castle-wallpaper.jpg Sunday, 9 June 13
  16. Finding Self 2 - System Approach Sunday, 9 June 13

  17. OMG! Hold the presses! Software is a people problem Sunday,

    9 June 13
  18. In the title, I refer to people as “components”. That

    is how people are treated in the process / methodology design literature. The mistake in this approach is that “people” are highly variable and non-linear, with unique success and failure modes. Those factors are first-order, not negligible factors Alistair Cockburn, 1999, Characterizing people as non-linear, first- order components in software development http://alistair.cockburn.us/Characterizing+people+as+non-linear,+first-order+components+in+software+development “...stupendously obvious but notable discovery...” Sunday, 9 June 13
  19. My API ~ My Place in the Development Process Sunday,

    9 June 13
  20. Towards a Process Sunday, 9 June 13

  21. Promote Creativity Technical Skill Longevity Some Goals Also: Simple, so

    I actually follow it Sunday, 9 June 13
  22. Promote Prevent Creativity Burnout Technical Skill Stagnation Longevity Death Also:

    Simple, so I actually follow it Some Goals Sunday, 9 June 13
  23. Promote Creativity / Prevent Burnout Risks work too hard /

    too long on the same thing too much context switching working on distasteful things (in ethical / engineering terms) Sunday, 9 June 13
  24. Promote Creativity / Prevent Burnout work too hard / too

    long on the same thing too much context switching working on distasteful things (in ethical / engineering terms) take a break / go to bed one day, one or two things - plan & schedule say no fix the (engineering) pain Risks Strategies Sunday, 9 June 13
  25. Promote Technical Skill / Prevent Stagnation Risks Risks doing the

    same thing time and again multiple projects, same requirements lack of challenges lack of new things Sunday, 9 June 13
  26. doing the same thing time and again multiple projects, same

    requirements lack of challenges lack of new things solve repetition with engineering make space (i.e. time) for learning start a project. Or join an existing project. Risks Strategies Promote Technical Skill / Prevent Stagnation Sunday, 9 June 13
  27. Promote Longevity / Prevent Death disease stress accidents old age

    Risks Risks Sunday, 9 June 13
  28. disease stress accidents old age get exercise. Make it routine.

    recognize stress. And look it in the eye. don’t text and drive / walk and read / etc age like wine Risks Strategies Promote Longevity / Prevent Death Risks Strategies Sunday, 9 June 13
  29. Process • set aside time for exercise • set aside

    time for learning / exploring • make the plan concrete • stick to it Mix to taste •Tools: Calendar, Pen & Paper Sunday, 9 June 13
  30. Exercise Learning and Exploring Higher Productivity energizes, leading to... frees

    up time for... motivates... frees up time for.. increases skill, leads to... Creativity enhances Longevity promotes Sunday, 9 June 13
  31. ... Exercise Learning and Exploring Higher Productivity Creativity Longevity Sunday,

    9 June 13
  32. Implementation Techniques Sunday, 9 June 13

  33. Meta Warning You’re asking the thing that does the work

    to also manage the work it does. Sunday, 9 June 13
  34. Aside: The Lizard Brain “The resistance grows in strength as

    we get closer to shipping, as we get closer to an insight, as we get closer to the truth of what we really want. That's because the lizard hates change and achievement and risk.” “Now you've seen the icon and you know its name. What are you going to do about it?” http://sethgodin.typepad.com/seths_blog/2010/01/quieting-the-lizard-brain.html Jan 28, 2010 Sunday, 9 June 13
  35. 1. Tackle the difficult thing right now • Upfront analysis

    easily turns to procrastination • Dive in, get hands dirty, then do some analysis Sunday, 9 June 13
  36. 1. Tackle the difficult thing right now 2. Plunge headfirst

    into the new • Conquer fear of messing up / looking dumb • You will anyway. Get over the hump quicker Sunday, 9 June 13
  37. 1. Tackle the difficult thing right now 2. Plunge headfirst

    into the new • Typing isn’t the core of your job • Almost certainly a learning experience to be had 3. Disable autopilot Sunday, 9 June 13
  38. 1. Tackle the difficult thing right now 2. Plunge headfirst

    into the new 3. Disable autopilot • Failure looks worse the longer you hide it • Involving others reduces chance of failure 4. Share early Sunday, 9 June 13
  39. Knowing others is wisdom. Knowing the self is enlightenment. Mastering

    others requires force. Mastering the self requires strength. Tao Te Ching, Lao Tzu Sunday, 9 June 13
  40. Self-responsibility As a programmer, it is my responsibility to craft

    an environment for myself in which my brain and creativity can thrive and grow. Sunday, 9 June 13
  41. Background: The Psychology of Computer Programming, Gerald M. Weinberg The

    Mythical Man-Month: Essays on Software Engineering, Frederick P. Brooks Peopleware: Productive Projects and Teams, Tom DeMarco, Timothy R. Lister Characterizing people as non-linear, first-order components in software development, Alistair A. R Cockburn Further Reading / Viewing: The Passionate Programmer, Chad Fowler The Healthy Programmer: Get Fit, Feel Better, and Keep Coding, Joe Kutner Older Is Wiser: Study Shows Software Developers’ Skills Improve Over Time, Matt Shipman, Dr. Emerson Murphy-Hill People Patterns, Joe O’Brien Credits: Thanks to @rpburns, @sbusso, @macarthy, @beambongga and the regulars at BeercampCM (@barcampcm) Continue the conversation... @shr shrobson@gmail.com Optimising Self: Resource https://gist.github.com/simonrobson/5730024 Sunday, 9 June 13