30+ years of experience here, having worked on all kinds of very large scale VALUABLE legacy systems used to run airlines, airports etc. around the world:
1. Always prioritise work based on customer priorities. Not your personal subjective preferences. So keep a list of To Do’s in customer selected priority order.
2. Always and only work on the #1 customer priority. If the code to solve #1 priority needs refactoring then FIRST write system level tests that specify exactly what the code should do. And then refactor, followed by adding the new feature.
Comments
30+ years of experience here, having worked on all kinds of very large scale VALUABLE legacy systems used to run airlines, airports etc. around the world:
1. Always prioritise work based on customer priorities. Not your personal subjective preferences. So keep a list of To Do’s in customer selected priority order.
2. Always and only work on the #1 customer priority. If the code to solve #1 priority needs refactoring then FIRST write system level tests that specify exactly what the code should do. And then refactor, followed by adding the new feature.
3. Goto 1.
It’s simple. It works.