After my years working for little contracting companies, I started working for big companies. At one such company I found myself hired by Tim Korpal. Tim's actually title had vice president in it. However I think he was a junior vice president based on his duties. The company was a privately owned one. The owners seemed to rely on the advice of consultants over that of guys like Tim.
One problem with Tim was that he knew there were problems on our project, but he did not know the details of them. Tim seemed to be caught in a middle management nightmare. The owners of the company wanted him to fix the problems. But Tim seemed clueless. It was not that he was not ready to do what needed to be done. I saw him come down and fire people when necessary. But he still could not get his hand on the trouble that was preventing success.
Even though Tim was out of touch with the project mechanics, he seemed able to determine that I quickly became a key member of the project. He gave me a 10% raise on my first review. For all the value I was adding, I thought this raise was mediocre at best. So I called up Tim and told him so. I told him I liked working on our troubled project, but I needed a whole lot more money. To Tim's credit, he went to bat for me and got me another 33% pay increase. Maybe I was already a bit underpaid so this was no big deal. But when you are in charge of a problem project, and you have to tell the owners that a key guy needs money, I bet it takes a lot of leadership ability to not fold.
In the end I moved on to another project. But it was not due to problems with manager Tim. The project was basically doomed. The only guys that stayed were subcontractors that were billing the company at a very high rate. Tim may have fared better if he was able to figure out and resolve the problems on our project. But software management is hard. And I consider Tim one of the better mangers I have served under.
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...