Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Do Repeat Yourself

Do Repeat Yourself

How do you communicate with the rest of the team when you're engaged in a long-running technical project like a rewrite or migration? Communication can often become stale and irrelevant to everyone else. This talk will provide tactics for keeping your team in the loop.

Sabrina Leandro

April 19, 2018
Tweet

More Decks by Sabrina Leandro

Other Decks in Technology

Transcript

  1. DO REPEAT YOURSELF
    CUKENFEST 2018
    SABRINA LEANDRO @saleandro

    View Slide

  2. CUKENFEST 2018 @saleandro
    EXAMPLES OF TECHNICAL PROJECTS
    ▸ Automation improvements, e.g. migrating to continuous
    deployment
    ▸ Upgrades of languages or frameworks, e.g. migrating an
    older Rails version to the newest
    ▸ Infrastructure changes, e.g. move to the cloud
    ▸ Decommissioning features or products
    ▸ Rewriting application to pay off tech debt


    View Slide

  3. THIS IS NOT AN EXERCISE IN
    TECHNOLOGY

    View Slide

  4. CUKENFEST 2018 @saleandro
    As a developer running a long-term technical
    project
    In order get my project prioritised and running
    I want to tie my project to business goals and
    opportunities

    View Slide

  5. CUKENFEST 2018 @saleandro
    As a developer running a long-term technical
    project
    In order to make sure the project gets finished
    I want to communicate progress to the wider
    company

    View Slide

  6. CUKENFEST 2018 @saleandro
    As a developer running a long-term technical
    project
    In order to keep my team happy and motivated
    I want to celebrate success as we progress

    View Slide

  7. CUKENFEST 2018 @saleandro
    BEFORE YOU START, YOU NEED:

    View Slide

  8. CUKENFEST 2018 @saleandro
    BEFORE YOU START, YOU NEED:
    ▸ Clear business goal

    View Slide

  9. CUKENFEST 2018 @saleandro
    BEFORE YOU START, YOU NEED:
    ▸ Clear business goal
    ▸ Incremental steps

    View Slide

  10. CUKENFEST 2018 @saleandro
    BEFORE YOU START, YOU NEED:
    ▸ Clear business goal
    ▸ Incremental steps
    ▸ Milestones for each step

    View Slide

  11. CUKENFEST 2018 @saleandro
    BEFORE YOU START, YOU NEED:
    ▸ Clear business goal
    ▸ Incremental steps
    ▸ Milestones for each step
    ▸ A cool project name #branding ;)

    View Slide

  12. DO REPEAT YOURSELF

    View Slide

  13. EXAMPLES

    View Slide

  14. CUKENFEST 2018 @saleandro
    BEFORE THE PROJECT STARTS

    View Slide

  15. CUKENFEST 2018 @saleandro
    BEFORE THE PROJECT STARTS
    Metaphors
    Hoarders house, gardening, urban planning,
    personal hygiene…

    View Slide

  16. @saleandro
    CUKENFEST 2018
    BEFORE THE PROJECT STARTS
    Red and Green Diagram

    View Slide

  17. @saleandro
    CUKENFEST 2018
    BEFORE THE PROJECT STARTS
    Magic Wand Diagram

    View Slide

  18. CUKENFEST 2018 @saleandro
    BEFORE THE PROJECT STARTS
    Application inventory
    ▸ List of all applications
    ▸ For each application, define its level of
    maintenance

    View Slide

  19. CUKENFEST 2018 @saleandro
    BEFORE THE PROJECT STARTS
    Bones Muscle Fat (BMF)
    ▸ Framework to evaluate features using the
    product’s main proposition

    View Slide

  20. If we were starting over,
    what would we build today,
    knowing what we know now?

    View Slide

  21. CUKENFEST 2018 @saleandro
    DURING THE PROJECT

    View Slide

  22. CUKENFEST 2018 @saleandro
    DURING THE PROJECT
    Audiences
    ▸ Wider company
    ▸ Your tech team

    View Slide

  23. @saleandro
    CUKENFEST 2018
    It always takes longer than you
    expect, even when you take into
    account Hofstadter's Law
    Hofstadter's Law

    View Slide

  24. CUKENFEST 2018 @saleandro
    DURING THE PROJECT
    ▸ Update Red and Green Diagram

    View Slide

  25. CUKENFEST 2018 @saleandro
    DURING THE PROJECT
    ▸ Update Red and Green Diagram
    ▸ Track progress removing code

    View Slide

  26. CUKENFEST 2018 @saleandro
    DURING THE PROJECT
    ▸ Update Red and Green Diagram
    ▸ Track progress removing code
    ▸ Gamify goals and metrics

    View Slide

  27. View Slide

  28. View Slide

  29. View Slide

  30. CUKENFEST 2018 @saleandro
    WHEN IT’S FINISHED
    Celebrate completely decommissioning
    applications

    View Slide

  31. CUKENFEST 2018 @saleandro
    WHEN IT’S FINISHED

    View Slide

  32. @saleandro
    CUKENFEST 2018
    A refactor a day keeps
    the rewrite away!
    Sabrina Leandro

    View Slide

  33. DO REPEAT YOURSELF
    AGAIN

    View Slide

  34. CUKENFEST 2018 @saleandro
    SUMMARY
    ▸ Have a clear business goal, incremental steps with
    milestones, and a cool project name

    View Slide

  35. CUKENFEST 2018 @saleandro
    SUMMARY
    ▸ Have a clear business goal, incremental steps with
    milestones, and a cool project name
    ▸ Before: red and green diagrams + magic wand, application
    inventory, Bones Muscle Fat framework

    View Slide

  36. CUKENFEST 2018 @saleandro
    SUMMARY
    ▸ Have a clear business goal, incremental steps with
    milestones, and a cool project name
    ▸ Before: red and green diagrams + magic wand, application
    inventory, Bones Muscle Fat framework
    ▸ During: celebrate all wins, big and small, gamify your
    progress

    View Slide

  37. CUKENFEST 2018 @saleandro
    SUMMARY
    ▸ Have a clear business goal, incremental steps with
    milestones, and a cool project name
    ▸ Before: red and green diagrams + magic wand, application
    inventory, Bones Muscle Fat framework
    ▸ During: celebrate all wins, big and small, gamify your
    progress
    ▸ After: instil a culture of continuous improvement!

    View Slide

  38. THANKS!
    @saleandro
    SABRINA LEANDRO

    View Slide

  39. CUKENFEST 2018 @saleandro
    REFERENCES
    Frontend and services architecture:
    ▸ https://devblog.songkick.com/our-object-based-rails-frontend-3e2ddc048d12
    ▸ https://devblog.songkick.com/the-path-to-soa-d986a18d4a8b
    Rewriting Code And Culture: https://www.youtube.com/watch?v=-VEf8j6aGMk
    Strangler pattern: https://www.martinfowler.com/bliki/StranglerApplication.html
    Gamify your progress: https://medium.com/@Songkick/gamify-your-product-team-to-power-
    level-9000-261e9fceaa22
    Hoarders metaphor: https://brightonruby.com/2017/livable-code-sarah-mei/
    Hofstadter’s Law: https://en.wikipedia.org/wiki/Hofstadter%27s_law
    A little bit and often:
    ▸ https://martinfowler.com/bliki/OpportunisticRefactoring.html
    ▸ http://ronjeffries.com/xprog/articles/refactoring-not-on-the-backlog/

    View Slide