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

Other Decks in Technology

Transcript

  1. Getting excited about maintaining legacy systems Blanca Garcia Gil Principal

    Systems Engineer, BBC @blanquish
  2. Different flavours of legacy

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

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

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

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

  7. A recent personal story…

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

    a high churn
  9. Big data pipeline

  10. Old version of Apache Spark, running on an old version

    of AWS EMR. Code hard to understand, nearly no tests.
  11. Made a few changes to it, but feared we were

    introducing further problems System was in “limp home mode” until its replacement came.
  12. How we approached this

  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
  14. Changing our mindset as a starting point

  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/
  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
  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/
  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
  19. How this story ends - Deprecated system in February 2019

    - Onboarded more people to the team working on the new system, applied lessons learnt
  20. What you can do to prevent future pains? - Document

    decisions - Document limitations of the system - Tests as living documentation
  21. Thank you! @blanquish