A couple days ago, I ran into a problem with some code I was writing. It was almost finished expect for one problem – just one last thing to tackle.
As I started planning how to fix the final problem, something occurred to me – it wasn’t really a problem for anyone but me. No-one else would see it. I was planning to spend a lot of time and programming, costing the customer more money, to fix something that didn’t affect anyone but just personally offended me and my sense of professionalism.
What to do?
As often happens to me, the answer usually comes when I’m far away from my desk and not focusing on the problem. The answer that came to me is that I shouldn’t spend money to fix something that isn’t adding value for the customer, that isn’t affecting them, and that won’t make any difference to their work or to the system’s maintainability. I shouldn’t fix things just because I find them offensive.
Sometimes, we get in the middle of these tasks and we make our lists of all the things wrong with the programs we’re working on or even other tasks and it’s hard to pick out the list items that shouldn’t be there. In this case, I also passed this by the customer who also didn’t feel I should necessarily be spending their money on this item and I believe I’ve made the right choice. Okay, well, but I still feel offended by the bit I left behind but willing to live with it. 😉
The bottom line is this: Sometimes, we have to step back from our own opinions and think hard how the customer wants their money to be spent. If I spent their money on something they don’t want, they have less money left over for something they DO want. We insist it’s for the customers’ own good. Sometimes, that’s actually true. Other times, it’s our way of justifying doing something we just really, really want to do. We all need to be careful of these times.