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

Reflect & Refactor

Reflect & Refactor

As developers, we’re constantly learning: whether it’s figuring out how to solve new problems and bugs, or focusing on new skills and knowledge to apply to our work. Often when we talk about reflecting and refactoring, it will be about the way we work in our teams or how we can make our code better – but why don’t we apply the same method to ourselves?

This talk looks at how to constantly reflect and refactor your own skills and values, creating your own idea of a “good” developer. It will examine the psychology of creating new habits, the different motivations of why we are developers, and how we can each define the type of developers we want to be.

Melinda Seckington

May 03, 2017
Tweet

More Decks by Melinda Seckington

Other Decks in Technology

Transcript

  1. @mseckington
    Melinda Seckington
    reflect
    refactor
    &

    View Slide

  2. What do I want to
    be when I grow up?
    @mseckington

    View Slide

  3. @mseckington

    View Slide

  4. 10 years later:
    computer science
    @mseckington

    View Slide

  5. 15 years later:
    what do I do now?
    @mseckington

    View Slide

  6. Things are always
    changing
    @mseckington

    View Slide

  7. Learning to adapt
    @mseckington

    View Slide

  8. How do we figure
    out what’s next?
    @mseckington

    View Slide

  9. @mseckington
    FutureLearn

    View Slide

  10. Collaborative
    multidisciplinary
    agile teams
    @mseckington

    View Slide

  11. Reflect
    Refactor
    &
    @mseckington

    View Slide

  12. Reflect
    Refactor
    @mseckington
    &

    View Slide

  13. human equivalent of
    technical debt
    @mseckington

    View Slide

  14. How to create our
    own best practices
    @mseckington

    View Slide

  15. Reflect
    Refactor
    @mseckington

    View Slide

  16. Reflect
    @mseckington

    View Slide

  17. @mseckington

    View Slide

  18. Make time for
    reflection
    @mseckington

    View Slide

  19. Personal
    retrospectives
    @mseckington

    View Slide

  20. @mseckington
    Throw away your
    assumptions

    View Slide

  21. Take notes and
    revisit them
    @mseckington

    View Slide

  22. Find a time when
    you are in the
    right mindset
    @mseckington

    View Slide

  23. Don’t wallow in the
    world of what if
    @mseckington

    View Slide

  24. 5 retro formats
    @mseckington

    View Slide

  25. What motivates you?
    1
    @mseckington

    View Slide

  26. Focus on why
    @mseckington

    View Slide

  27. Drive
    Daniel H. Pink
    @mseckington

    View Slide

  28. Autonomy
    Mastery
    Purpose
    @mseckington

    View Slide

  29. Autonomy @mseckington

    View Slide

  30. Tasks
    Team Technique
    Time
    @mseckington

    View Slide

  31. Understand your
    autonomy needs:
    Tasks, Time, Team,
    Technique
    @mseckington

    View Slide

  32. Mastery @mseckington

    View Slide

  33. Why do you want
    to master writing
    code?
    @mseckington

    View Slide

  34. Understand what
    skills you want to
    master and why
    @mseckington

    View Slide

  35. Purpose @mseckington

    View Slide

  36. @mseckington

    View Slide

  37. Understand what
    impact you want to
    have on the world
    @mseckington

    View Slide

  38. What
    motivates
    you?
    @mseckington

    View Slide

  39. What are your
    six objects?
    2
    @mseckington

    View Slide

  40. six
    objects
    @mseckington

    View Slide

  41. Focus on what
    @mseckington

    View Slide

  42. Write down
    what you do
    @mseckington

    View Slide

  43. How would you
    represent that
    as an object?
    @mseckington

    View Slide

  44. Example:
    My objects
    @mseckington

    View Slide

  45. Example:
    My objects
    @mseckington

    View Slide

  46. Define your six
    objects
    @mseckington

    View Slide

  47. What are your
    personal values?
    3

    View Slide

  48. What values matter
    to you?
    @mseckington

    View Slide

  49. Focus on how
    @mseckington

    View Slide

  50. Define your values
    @mseckington

    View Slide

  51. @mseckington
    Candidness
    Courage
    Efficiency
    Empathy
    Imagination
    Inspirational
    Playfulness
    Be candid
    Be courageous
    Be efficient
    Be empathetic
    Be imaginative
    Be inspiring
    Be playful

    View Slide

  52. @mseckington
    Candidness
    Courage
    Efficiency
    Empathy
    Imagination
    Inspirational
    Playful

    View Slide

  53. understand your
    strengths &
    weaknesses
    based on your values

    View Slide

  54. What would you
    tell your past and
    your future self?
    @mseckington
    4

    View Slide

  55. How have you
    changed over time?
    @mseckington

    View Slide

  56. Write a letter to
    your past self
    @mseckington

    View Slide

  57. What would your
    past self write
    back to you?
    @mseckington

    View Slide

  58. Write a letter to
    your future self
    @mseckington

    View Slide

  59. Understand where
    you come from and
    where you’re going
    @mseckington

    View Slide

  60. What have you done recently?
    What do you celebrate?
    What do you change?
    @mseckington
    5

    View Slide

  61. Examine
    recent events
    @mseckington

    View Slide

  62. Examine a shorter
    period (day, week,
    month)
    @mseckington

    View Slide

  63. Celebrate what
    you’ve achieved
    @mseckington

    View Slide

  64. Learn from what
    you have done
    @mseckington

    View Slide

  65. What went well?
    What didn’t go well?
    What do you have questions about?
    @mseckington

    View Slide

  66. What went well?
    What did you learn?
    What was unusual?
    Who helped you?
    What was your main strength?
    What inspired you?
    What went less well?
    What did you fail at?
    What would you change?
    Who did you help?
    What was your weakness?
    What still puzzles you?
    @mseckington

    View Slide

  67. @mseckington
    candid?
    courageous?
    efficient?
    empathetic?
    imaginative?
    inspiring?
    playful?
    What did I do that was:

    View Slide

  68. Follow up question:
    What action could you do next time?
    @mseckington

    View Slide

  69. Celebrate and
    learn from what
    you have done
    @mseckington

    View Slide

  70. 3
    2
    1
    @mseckington
    4 5

    View Slide

  71. Define tangible goals
    @mseckington

    View Slide

  72. Do your research
    @mseckington

    View Slide

  73. Approach your goals
    like a new city
    @mseckington

    View Slide

  74. Reflect
    @mseckington

    View Slide

  75. Reflect
    Refactor
    @mseckington

    View Slide

  76. Refactor
    @mseckington

    View Slide

  77. Why do we
    refactor code?
    @mseckington

    View Slide

  78. To avoid
    technical debt
    @mseckington

    View Slide

  79. • Maintainability
    • Extensibility
    Improving the design of the
    existing codebase:
    make it easier to add new
    features and capabilities
    make it easier to fix and
    change things
    @mseckington

    View Slide

  80. Code smell Refactor
    Tests
    pass
    Refactoring @mseckington

    View Slide

  81. Code smell Refactor
    Tests
    pass
    Refactoring @mseckington

    View Slide

  82. Code smell Refactor
    Tests
    pass
    Refactoring @mseckington

    View Slide

  83. Code smell Refactor
    Tests
    pass
    Refactoring @mseckington

    View Slide

  84. Code smell Refactor
    Tests
    pass
    Refactoring @mseckington

    View Slide

  85. Why should we
    refactor ourselves?
    @mseckington

    View Slide

  86. Improving the design of
    ourselves:
    make it easier to add
    new behaviours or skills
    make it easier to change
    existing behaviours or skills
    • Maintainability
    • Extensibility
    @mseckington

    View Slide

  87. How do we make it
    easier
    to change or add
    new behaviours or skills?
    @mseckington

    View Slide

  88. Code smell Refactor
    Tests
    pass
    Refactoring @mseckington

    View Slide

  89. Sign we need
    to do something
    Do the thing
    Celebrate
    Refactoring @mseckington

    View Slide

  90. The Habit Loop
    @mseckington

    View Slide

  91. The Power
    of Habit
    Charles Duhigg
    @mseckington

    View Slide

  92. Cue Routine
    Reward
    1 2
    3
    The Habit Loop @mseckington

    View Slide

  93. every goal can be
    broken down into
    HABITS
    @mseckington

    View Slide

  94. Adapt existing loops
    Create a new loop
    with an existing cue
    Find new cues and
    new rewards
    @mseckington

    View Slide

  95. Adapt existing loops
    @mseckington

    View Slide

  96. Example:
    Flossing more
    regularly
    @mseckington

    View Slide

  97. Cue Routine
    Reward
    1 2
    3
    The Habit Loop
    My teeth feel icky
    My teeth are clean!
    Brush my teeth
    @mseckington

    View Slide

  98. Cue Routine
    Reward
    1 2
    3
    The Habit Loop
    My teeth feel icky
    & floss!
    My teeth are clean!
    Brush my teeth
    @mseckington

    View Slide

  99. Example:
    Finding time for
    learning
    @mseckington

    View Slide

  100. Cue Routine
    Reward
    1 2
    3
    The Habit Loop
    Calendar reminder
    to read
    Learnt something new!
    Read book
    @mseckington

    View Slide

  101. Cue Routine
    Reward
    1 2
    3
    The Habit Loop
    Time to pick up
    a new feature
    to work on
    Shipped a feature!
    Implement the
    feature
    Reading time?
    @mseckington

    View Slide

  102. Cue Routine
    Reward
    1 2
    3
    The Habit Loop
    Time to pick up
    a new feature
    to work on
    Implement the
    feature
    @mseckington
    Shipped a feature!
    Read for 30 minutes!

    View Slide

  103. What are your
    existing habit loops?
    @mseckington

    View Slide

  104. Which one of them
    could you adapt?
    @mseckington

    View Slide

  105. Create a new loop
    with an existing cue
    @mseckington

    View Slide

  106. Example:
    Disconnect before
    sleeping
    @mseckington

    View Slide

  107. Cue Routine
    Reward
    1 2
    3
    The Habit Loop
    Going to bed
    Read a book
    for 30 min
    Go to sleep more
    relaxed and
    disconnected
    @mseckington

    View Slide

  108. Example:
    Overcoming my
    fears
    @mseckington

    View Slide

  109. Cue Routine
    Reward
    1 2
    3
    The Habit Loop
    Getting asked
    to do something
    I am scared of
    Say “Yes”
    Feeling proud
    for doing something
    you were scared of!
    @mseckington

    View Slide

  110. What are the
    things that you
    do regularly?
    @mseckington

    View Slide

  111. Find new cues and
    new rewards
    @mseckington

    View Slide

  112. Example:
    Exercising more
    @mseckington

    View Slide

  113. Cue Routine
    Reward
    1 2
    3
    The Habit Loop
    Wake up early
    and see my
    running gear
    Go running
    Feel more energetic
    @mseckington

    View Slide

  114. Cue Routine
    Reward
    1 2
    3
    The Habit Loop
    Excitement and
    curiosity about
    next episode
    Go running and
    listen to ZombiesRun
    Experience the story
    @mseckington

    View Slide

  115. Example:
    Keeping track of
    my goals
    @mseckington

    View Slide

  116. Cue Routine
    Reward
    1 2
    3
    The Habit Loop
    Wanting to level
    my character
    Complete one of
    my goals
    Level up!
    @mseckington

    View Slide

  117. Warrior:
    +5 for every 5k run
    +10 for every 10k run
    +10 for every spin class
    +10 for walking 10k steps
    Bard:
    +3 for attending a meetup
    +6 for attending a conference
    +10 for speaking at a meetup
    +20 for speaking at a conference
    Next level: 45 XP Next level: 20 XP
    Level 4 Level 5
    @mseckington

    View Slide

  118. When creating new
    habit loops, think
    about all 3 aspects
    @mseckington

    View Slide

  119. Adapt existing loops
    Create a new loop
    with an existing cue
    Find new cues and
    new rewards
    @mseckington

    View Slide

  120. Refactor
    @mseckington

    View Slide

  121. Reflect
    Refactor
    @mseckington

    View Slide

  122. What do you
    want to be when
    you grow up?
    @mseckington

    View Slide

  123. What next?
    @mseckington

    View Slide

  124. @mseckington
    You have brains in your head.
    You have feet in your shoes.
    You can steer yourself
    Any direction you choose.
    You’re on your own. And
    you know what you know.
    And YOU are the one who’ll
    decide where to go.


    ~ Dr Seuss

    View Slide

  125. Thanks for listening…
    Melinda Seckington
    FutureLearn
    @mseckington
    @mseckington

    View Slide