Today I got assigned two trouble tickets to work. By the time I got into work, one of them got reassigned to another developer. Early bird gets the work. Slacker gets out of some work. Before lunch I decided I had better get hot on the problem that was still assigned to me.
I immediately called the customer that had reported the problem. She gave me the additional details I needed to investigate further. When it looked like this was a real problem, I called the customer again to clarify the expected scope of the solution. Then I looked at the code and the requirements.
It became clear to me that the code was working fine per the documented requirements. It just seemed like there was a problem because there were certain situations where the code was supposed to do weird things. Once again I called the customer back and explained all this. I followed up with an e-mail showing the requirements that were being followed.
The best moral of this story is that you need to be proactive and unafraid to pick up the phone and call a customer. There have been too many times where I have seen other developers missing some crucial information from a problem that a customer was having. And these developers would, for one reason or another, e-mail somebody else on the team and say they did not have the information they needed. Don't e-mail anybody. Pick up the phone and give the customer a call.
A Little Bit of Crypto - I have been trying to figure out to "collision resistant" some of these standard hash functions are. It is a tough concept to get my head around. I figure...