Friday, March 05, 2010

Nearing the end - Part 1

Each person at our company works on a number of projects at any one time. We work on some small projects and usually one large project at the same time. The large project I'm working on has been going since February - 2009! It was originally supposed to be done by the end of the the summer of 2009. Then it was extended to just before Thanksgiving 2009. Now, we're looking at finally finishing it up in a week or so. Thank you Lord! I (and my family) need some time off.

But before we can get to the point of releasing the product, we need to do final testing and the product needs to run for a week with no major problems. My part of the project seemed to be going along quite well until someone tried something that you normally wouldn't do but should be allowed to do. Sorting the list of entries in a table while the table was being updated caused a terrible flickering in the table. You couldn't use it while the updating/flickering was going on and this could go on for minutes in some circumstances. So, it was deemed a problem of high importance and needed to be fixed before we could release.

Now, I'm used to fixing problems in code I've written. Some people estimate that you spend 2 - 3 times the hours fixing problems as you do writing the original code. I think that overstates it but you do end up spending a lot of your time fixing problems instead of adding new code. But I don't like fixing problems under pressure. Yes, it happens fairly often but I don't like it. Especially when everyone is waiting for me and depending on me so they can finish this thing! I worked over the week-end on it and couldn't solve it. Finally, after two days of trying, I had to admit defeat. There were ways to solve it but there wasn't enough time to do them and check for problems. So, we just disabled sorting for now. Yuck.

Then, when I had some time to work under less pressure, I found that the problem wasn't in my code but in the code by the company who wrote the code for the table itself. And, if we updated to the latest version of their table code, it solved the problem! Unfortunately, there wasn't enough time to do that update and check for the inevitable problems that would cause us. So, we were left with not being able to sort the tables for this version and then we would update the table code for the next minor release of the software. So, we were back to our waiting out the week to release the product. Onther small problems were found and fixed but they weren't serious enough to restart the "must run for a week" clock. We were getting close. And then another problem with my code was found! That story next time.

No comments: