In the last few weeks I’ve come worked on quite a few technical projects with no or poor documentation. First, at my job I’ve had to install analytics into our recently launched application and the internal documentation for how to do that left more questions than answers. On another project I started working on, the previous developer left only two lines of documentation for the entire repository, which proved to be utterly useless. Finally as I am deploying my first application to Apple’s App Store I’ve struggled big time to decipher their overwhelming but very unclear documentation. In each instance what could have taken me a few minutes quickly ballooned into hours, and in some cases entire days of extra work.
As a software developer, my time is very expensive, and wasting time onboarding is quite costly. It’s also very frustrating and demoralizing to spend so much time banging your head against the wall trying to figure mysterious things out, especially since I know that at one point all the knowledge that was needed was in someone else's head - they just failed to communicate it properly to me via documentation. Furthermore, even after I’ve been able to bootstrap myself up to the bare minimum level of knowledge needed to complete a task on these new projects, not good documentation has left me lacking a more holistic understanding needed to really be productive and add value going forward.
The case for writing and maintaining good documentation is a slam dunk. It saves money, prevents developer frustration, allows new developers to join a project with ease, and creates the necessary shared understanding on a team to ensure everyone is very productive. As a rule I make sure to write extensive and clear documentation, explaining things like my intended audience is the equivilant of a five year old in developer terms. I would ask all my fellow software developers to always be documenting - it would make the world a better place.