Making myself redundant
One of my main goals is to make myself redundant.
This does not mean I want to leave my work; it simply means I know that someone can continue the work I have started.
Saving my work
If someone is unable to understand something I have written, then they are more likely to rewrite it.
This means my previous work was wasted and their time is wasted replacing it.
A worse case is that they replace it with a way that I have already found not to work, but failed to communicate it.
Documentation needs a clear entry point for someone to start learning a system. They should then be directed to the solution as quickly as possible. I lose focus if I have to read through a bunch of unrelated information when I have a specific question to be answered.
One way to do this is to have a README in each folder that gives a summary of what the files contain and how they work together.
It is more important to know why something was done, rather than what it is doing.
The other side is why something was not done, to prevent others failing with it again.
If someone can follow what I have done, without me instructing them, then there is a better chance it is understandable.
They may even suggest another approach that I had not considered.
Leave without worries
When the time comes for me to move on, I would like to know that my replacement is not going to be cursing me for the confusing mess I have left them.
To my predecessors
This page is not targeted at anyone I have replaced, even if I have replaced your work. This was driven by my own goals for anyone that replaces me.