I was working on a project three months back, and then suddenly another urgent project appeared and I was asked to shift my attention.Starting tomorrow, I'll be heading back to the old project. I realize that I do not remember what exactly I was doing. I don't know where to begin.How can I document a project such that anytime I look back it shouldn't take me more than a few minutes to get going from wherever I left. Are there best practices?
How should I remember what I was doing and why on a project three months back?
project management;documentation
I just wanted to contribute some advice which is not going to be useful in your current situation, but you can start implementing it now to help in the future.Of course there are the obvious candidates such as todo lists and issue logs; looking at the recently added issues should give you a clue as to what you were doing when you were pulled off the project.On previous projects I have worked on, people were expected to keep a project log as part of the quality management process. The contents were not very clearly specified, but the idea was to keep a daily log of things related to the project that may be useful for continued work in the future or for review activities on completion; for example:Observations about the quality of the project this code can use some refactoringdid a quick implementation to get this to work but ABC would be better.Todo items / issues that you would not want to formally record in an issue tracker should make this method work for x < 0 but that's currently out of scope.Design decisions - especially non-trivial ones. Our standard sort function performs a quick sort, but that does not preserve the order of items equal under the sorting condition, which we need here.The obvious algorithm would be ABC but that fails here because x could be negative so we need the generalized form (Wikipedia link).Problems encountered and how you solved them. A very important one, in my personal opinion: whenever you run into a problem note it in the log. Checked out the code but it gave error XYZ0123, turns out I first had to upgrade component C to version 1.2 or higher.The latter two points are very important. I've often encountered a similar situation or problem - sometimes in a completely different project - and thought hmm, I remember spending a day on this, but what was the solution again?When you come back to a project after a while, reading back the project log (whether it's your own or the latest developer's) should put you back into the flow that you had when you left, and warn you of some of the traps that you may otherwise fall into again.