As developers, it’s been drilled into our heads that we must provide documentation for our programs … both inside the code, as comments, and for end user’s use. One thing I’ve noticed that we tend to neglect, however, is to document the DECISIONS we make. Why did we select one implementation over another.
We’ve all experienced this: you’re working on some code … probably code that was written a long time ago … and you realize that, with all the experience you’ve accumulated since the code was originally written, you could re-write (or refactor) the code so it would be much better. The question is … how do [...]