My "mantra" is that the job's done when the paperwork is complete and the mess has all been tidied up!
In my business I see too many 'starters' and not a lot of 'finishers'. I like to finish job's off properly.
Dave
I agree with this entirely.
It is one thing to do a job, or a repair, for oneself and make it work to your own satisfaction. It is a completely different thing to document it well enough so that it has any chance of helping others. In other words as Dave says, finish the job properly.
I have seen a lot of "solutions" for either repairs, diagnostics, or projects published on the net, be it on Github, or You-tube & elsewhere, but often the associated documentation is so poor that you would need a crystal ball to make any use of it.
It may well be that the designer, or programmer, did actually know what they were doing, but if they did, that is no help in conveying the information to another party without the extra effort.
This is why I like Daver2's Pettester, because it has a proper manual, that is detailed enough to make sense of it.
I have seen other good examples of this before. One would be Martin Eberhard's ME5204 vintage ROM programmer. Not only is the hardware and the firmware properly documented, but the support manual is extensive & accurate.
These sorts of solutions such as Daver2 and Martin provide exhibit the qualities of true leaders in the field. A professional approach, being able to convey ideas to others and explain them in a way that can be understood, even by a beginner.
One thing that it pays to remember is, if you read some technical description and it doesn't seem to make any sense, it is likely that the person who wrote it didn't fully understand the problem.
Also you can have some description with information that is plausible and makes sense, but if there is missing information, you only get a part of the story.
A good example of this is the Wikipedia page on the supposed solutions to the Tic Tac Toe game. What is there is basically ok, but the problem is, the information that is "not there". They do not differentiate between the player who starts first and the one who starts second, which completely changes the required solution algorithm if a machine was set up to play a human and the game alternately started with the human or machine starting first, as it must do, to be fair, because the starting player has a significant advantage. They refer just to the "player" in the suggested game rules. So it all looks simple, until you delve in a little deeper and find out it is more complicated.