$30 off During Our Annual Pro Sale. View Details »

Optimising Self @ RedDotRubyConf 2013

Optimising Self @ RedDotRubyConf 2013

Simon Robson

June 08, 2013
Tweet

More Decks by Simon Robson

Other Decks in Programming

Transcript

  1. How to maximize the current performance and ensure long-term maintainability

    of the wetware pounding on the keyboard Sunday, 9 June 13
  2. self: Simon Robson twitter: @shr email: [email protected] hacks_on: ruby, js,

    clojure lives_in: Chiang Mai, Thailand version: 14251 Sunday, 9 June 13
  3. “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
  4. 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
  5. 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
  6. 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
  7. Promote Prevent Creativity Burnout Technical Skill Stagnation Longevity Death Also:

    Simple, so I actually follow it Some Goals Sunday, 9 June 13
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. Meta Warning You’re asking the thing that does the work

    to also manage the work it does. Sunday, 9 June 13
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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 [email protected] Optimising Self: Resource https://gist.github.com/simonrobson/5730024 Sunday, 9 June 13