Improve the outcome with no increase in skill

There are various ways it could be done:

1. TODO lists & written down procedures

Create a predefined list of things you need to do when something happens. In a perfect world, you’d have a list of things that needs to be done for all occasions, like:

  • When I’m creating a PR, I need to:
    • Review all the code by myself, thinking if there are any hacks or leftovers which will not get past the review process
    • Run the set of slow automated tests (because it takes 2 hours to run them)
    • Run the pipeline to make sure build & unit tests are working
    • Check and update the documentation
  • When I’m creating a new project I have to:
    • Add a pipeline
    • Implement secrets provider
    • Keep the test coverage high from the first day
    • Deploy a working minimal vertical slice as soon as possible
  • etc.

This way you are making sure you will not forget about anything, and also you’re minimizing the chance of things like getting your PR declined multiple times because you forgot to do something.

2. Creating documentation for yourself and others

Do you have a console application with a lot of parameters? Or maybe you’re using XML configuration files with 50 different parameters? Instead of going every time into code and checking what each parameter does and what are possible parameters, write it down in a form of a description which is actually useful. Think of whether the document you’re creating would be enough to help you create a XML config from scratch, given the fact that you have no access to the source code.

Also, try to identify moments when other perople are coming to you and asking for help with configuring something or looking for some information. Maybe spending 30 minutes to write down an instruction and then sending them this instruction instead of checking stuff by yourself would save you some time?