Development Diligence

The customer informed us that there were some special situations where they wanted their data formatted in non-standard ways. I was tasked with making that happen. Had to change some column data types to enable this. My grand plan was to have one function do the formatting, and all the places that needed to do the custom formatting would just call this one helper function.

I had a lot of work to implement these requirements. Making the changes to load future data was not that hard. But I also had to go in and correct data previously loaded. That was a massive data correction script. I rushed through to get all the work done on time. I thought I did a pretty good job. Then I got to our internal test phase.

The tester assigned to verify my work had a lot of questions. I had to walk her through all the different scenarios, showing her where the source and target data was located. She did ask a lot of good questions. One of the last questions she asked was how to correlate the target to source data records. When I looked closer to answer the question, I found some problems.

What I had done was look how the old data was originally loaded into the system. I copied the technique, inserting my custom formatting function in the mix. The problem was that the original load code had a bug in it. It had since been fixed in recent code. But I was working from some bad code. The bug crept into my data correction script. Luckily the tester caught it by asking a lot of questions to understand exactly what was going on.

Now I have some work to do to implement the fix.