Monday, June 2, 2014

`

One of my current projects if being doing in short cycles, about a week or two between deliverables.  It can be quite a challenge getting the new code ready, which is sometimes a re-write and sometimes an add-on, but usually some of each, then pushing through a testing cycle.  I try to scribble down the tests for the new stuff and run regression on what we've done before.

So, when it gets to delivery time we often run through some pretty quick fixes and re-tests without the full regression.

Yesterday we had a refresh of a table.  No re-test.

Of course the code blew up.  When I looked at the table I found several contributors to the problem:

  • There was a "naked" vlookup in it.  Naked means there was no error handling.  
  • There was an assumption in the code that the value in the cell would be valid, e.g. a Currency field.
So when the code tried to put #N/A in a currency field it blew up instead of executing the DWIT command (DWIT = Do What I'm Thinking, from Neat/4 Reference)

  • To add to the set-up to this avalanche of fun, when I looked at the worksheet with the table, I remembered that column is no longer used.  For those who understand data normalization and relational databases, we had found out earlier there is more than one method to determination that value so we needed a different table.
  • The code still had the vlookup column referenced when loading an array although the part of the code that applied the newer method, using the new table, was in place everywhere.