Good-fast-cheap. Pick two.

I got invited to a meeting with the customer today. There was a problem in production. And the customer wanted answers. When it came time, I explained what was going on. Our new system used the same data source as the old one. But we were not doing the exact same transform of data. Therefore they saw different values in the reporting system.

I said we could fix this by updating the function that loads the data. We could apply this transform there. We could also write a script to correct all the wrong data loaded so far. Should close the case. The customer understood that. But then they asked if we could be proactive and prevent this type of problems.

Immediately I saw through the request. I said we could take the action to find out other times when the old system does a transform, and make sure we have those transforms present. However no, I could not do anything to make sure everything was being done 100% correctly. This is a huge system with non-trivial software involved. There are bugs in there.

Essentially I responded that no I could not do anything to make the reporting results 100% correct. It is just not feasible. This is an application of the good/fast/cheap management trifecta. They only get to pick 2 of those. The third one will suffer. In our scenario, the schedule is fixed, and the cost is fixed. Therefore you get the quality that you get. No way to increase that without more money or longer schedules.