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

Getting excited about maintaining legacy systems

Getting excited about maintaining legacy systems

In any big organisation there are a number of applications that have been running in production for many years but still need maintaining. Sometimes those systems are in limp home mode and we can only make small changes to help them across the finish line. This is not a very appealing scenario to an engineer with a can-fix attitude, but there are still many benefits to getting involved in troubleshooting live issues.

I used to think that greenfield projects and new features are the most important areas that would give me opportunities for learning, but I have realised looking back at my experience that digging into code that I had not written or from a project I was not part of has given me many benefits: confidence in stepping into the unknown, a better understanding of systems that seemed to be a black box and also the ability to predict possible pitfalls when implementing new systems and prevent failures!

In this talk I would like to share the steps I went through when I could no longer avoid diving into the unknown, some anecdotes of things I’ve learnt and how I have been trying to get my team excited about sharing the brunt of helping production systems continue running.

Blanca Garcia Gil

October 01, 2019
Tweet

More Decks by Blanca Garcia Gil

Other Decks in Technology

Transcript

  1. Getting excited about maintaining
    legacy systems
    Blanca Garcia Gil
    Principal Systems Engineer, BBC
    @blanquish

    View full-size slide

  2. Different flavours of legacy

    View full-size slide

  3. Turns out I’m not the only one excited
    https://twitter.com/monicalent/status/1068812692931178496

    View full-size slide

  4. Legacy provides an opportunity for learning
    https://twitter.com/monicalent/status/1068812694084562944

    View full-size slide

  5. The legacy landscape
    https://twitter.com/monicalent/status/1068812695502245889

    View full-size slide

  6. Legacy code has been part
    of every job I’ve had

    View full-size slide

  7. A recent personal story…

    View full-size slide

  8. Joined a team at the BBC where there
    had been a high churn

    View full-size slide

  9. Big data
    pipeline

    View full-size slide

  10. Old version of Apache Spark, running
    on an old version of AWS EMR.
    Code hard to understand, nearly no
    tests.

    View full-size slide

  11. Made a few changes to it, but feared
    we were introducing further problems
    System was in “limp home mode”
    until its replacement came.

    View full-size slide

  12. How we approached this

    View full-size slide

  13. Facing the unknown
    -Positive attitude, use appropriate words to describe without taking it
    down every time.
    - See it as valuable work
    - Don’t criticize people!
    - Engage your curiosity: think of it as a learning opportunity
    - Maintaining systems helps us learn if the assumptions made became
    true or not, so it is a way to close the feedback loop

    View full-size slide

  14. Changing our mindset
    as a starting point

    View full-size slide

  15. “Operating under
    constraints, is the key to
    creativity and fun.”
    - Ian Bogost
    https://ideas-ted-com.cdn.ampproject.org/c/s/ideas.ted.com/want-to-be-
    less-distracted-try-this-find-the-fun-in-tedious-tasks/amp/

    View full-size slide

  16. Learning mindset
    - Use it as a time to understand assumptions and constraints previous
    developers worked under, also their biases
    - Reading other people’s code is a skill to develop too!
    - Share learnings: take others on the journey with you. Take the time to
    explain why certain solution was ok or not.
    - Observing vs reacting

    View full-size slide

  17. “Fun is the aftermath of
    deliberately manipulating a
    familiar situation in a new
    way.”
    - Ian Bogost.
    https://ideas-ted-com.cdn.ampproject.org/c/s/ideas.ted.com/want-to-be-
    less-distracted-try-this-find-the-fun-in-tedious-tasks/amp/

    View full-size slide

  18. Psychological safety
    - Get support and support those working on it with you, it is a team
    exercise
    - Check in with each other!
    - Create an atmosphere where there are no stupid questions
    - If things are not working for you, discuss and try to find a balance

    View full-size slide

  19. How this story ends
    - Deprecated system in February 2019
    - Onboarded more people to the team working on the new system,
    applied lessons learnt

    View full-size slide

  20. What you can do to prevent future
    pains?
    - Document decisions
    - Document limitations of the system
    - Tests as living documentation

    View full-size slide

  21. Thank you!
    @blanquish

    View full-size slide