On Friday afternoon I had wrapped up my development tasks for the week. It was looking to be a good weekend. Then I got that dreaded call. Another developer was stuck on a customer problem. The customer said a new report implementation was not working. The customer had said the report did not match the application. Our developer needed help. I had no choice but to assist.
I told the developer it would take around 20 minutes to compare what the application and report were doing. She told me they needed to ship the software in an hour. I dove in, and found some discrepancies. So I called the developer back. She asked me to conference in a lot of people with that call. So I did. Then I explained what I found, and gave some recommendations.
The manager on the call said he thought the new report was not correct. Then he asked if the old and new reports were equivalent. The developer answered yes. He wanted a second opinion. All the other developers took a step back, leaving me holding the bag again. So I quickly printed out pages and pages of the old and new report queries. Wouldn't you know it? I found a subtle but important difference in the SQL.
We held another conference call. By the we were right at the point where we needed to ship the software. I provided my findings and helped everyone understand the implications. Our manager had more questions. I told him he should assign someone to go research the answers to those questions, and I told him it needed to be somebody other than me. He said he needed me to do it. Then I told him no. We later had a private conversation where I reiterated my position. He then got a VIP from our company to call us up. I told him no as well.
I don't mind working on customer problems. In fact, I enjoy them. However I don't like coming in at the last minute and cleaning up other peoples messes. If I keep doing that, I set a bad precedent. This just encourages sloppy work, bypassing processes, and making me stay late due to other people's incompetence. I figured it was time to take a stand. Perhaps some nice article I read about saying no helped me grow the courage to do so. Let us see how this turns out. So far I have not been fired. But it is still early in the weekend.
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...