Jamie's Blog

Wednesday, January 10, 2007

Coding Memory (I hate mine)

Yesterday I started working on an old project that was put on hold about four months ago. At the time I worked on it, it was a big rush that had to be done "yesterday" So I pumped out a lot of code and worked a lot of overtime hours getting that code written. This went on for about two weeks. Then suddenly, the project that was such a rush got put on hold. I haven't touched it since then, and neither has anyone else.
So Monday, another programmer and I were assigned to finish it off and deliver it to a pilot location. Again, it's a huge rush. My problem is that I can't remember much about what I did and didn't do back when I originally worked on it. The other programmer and my manager keep coming up to me asking questions about certain modules that I wrote, and I have no idea what the answer is. It's not that I didn't document, because I did. I just never finalized the documentation or cleaned up the code. The original two weeks of coding sessions were so rushed, and the decision to put it on hold at the end of those weeks, never gave me a chance to do the finalization I should have.

So far, I've been surprised to discover that some of the modules I wrote have features and capabilities that I don't remember writing. Furthermore, those features don't seem to be in the original design documents. Other modules work differently or have more parameters than the design document specifies. So all I can surmise is that those features and changes were requirements added onto the project after the design document was written, and that the document was never updated to reflect them. I don't remember adding them or why they were needed. Neither does anyone else who was attached to the project at that time.
I think the basic lesson here, is that I really should try to document more during the project development rather than leaving the bulk of the documenting for the finalization phase. I should also be more careful to update existing documentation as soon as the requirements or the code changes. Right now I've got a lot of documentation and code comments that are inaccurate or incomplete and do not reflect what the code actually does. LOL


Post a Comment

Links to this post:

Create a Link

<< Home