Five minutes research shows that there is a documented bug in Access 2003 (my client’s version) that does not exist in Access 2000 (my development version here in the office).
Who Knew? (Everyone except me, it seems).
The correct support procedure now is quite straightforward:
(1) Install Office 2003 on a machine here (0.5)
(2) Run the database here to prove that the bug is reproducible (0.25)
(3) Implement the fixes to our database recommended by Microsoft (As far as I can see they won’t fix Access 2003, but we all get to implement work-arounds!) (0.5)
(4) Re-test the functions of the database (2)
(5) Re-issue the database to the client by email (0.5)
My estimate (in hours) is parenthesized after each step; I’m looking at a half-day spent on this, at least.
Coupled to this - my client won’t be able to start testing until the bug is covered, and that means a delay in issuing the final cheque.
That is, I have to get cracking on this right away and fix Microsoft’s problems if I want to get a cheque from my client in time for Christmas.
I didn’t budget for an extra 4 hours solving Microsoft’s problems in my proposal.
Who will pay me for my 4 hours time?
Not Microsoft, that’s for sure.
Not my client - they don’t know it but I’ve just taken a load off the shoulders of their IT staff, and reduced the need for them to pay for part of the full-time cost of a resident Office Expert, as well as reducing their need for training to bring their staff up to standard.
What’s the forward-looking solution?
To keep track of all this free-time that is committed to solving unforeseen problems in programming projects, add it up at the end of the year (say 53 hours total), and divide it by the total hours billed on programming projects (say 1,000 hours), so 5.3%, and increase every programming proposal by 5.3% next year to tax every client against unforeseen 3rd-party costs.