As I have previously posted, I spend a lot of time on projects that are in trouble. Maybe problem projects are the norm in software development. Or maybe these are the only firms desperate enough to pay a high salary. Whatever the case, I found myself working for Pete Fedrali on one such project.
On the surface the project was cool. We had to replace an old hardware system by implementing a lot of it in software. That meant writing a lot of code from scratch. The company I was working for had little to no experience in software development. Pete seemed to be an experienced software development manager.
The project itself was doable. But there was no way we could design, code, test, and release such a complex project in a couple months. We had actually collected and documented requirements for the project. So I wrote down each requirement number on a big white board. Then I marked off each requirement as I thought I had coded the implementation for it. Just looking at my white board, you could tell we were never going to come close to the completion schedule. Pete mainly did not want to look at my white board.
As the delivery date came and passed, Pete acted surprised that we were behind schedule. Maybe Pete was not such a good software development manager after all. Once the customer realized we were doomed, the party was over. All developers were instructed to stop coding. Another firm was hired to analyze the situation and figure out it the project could be salvaged. One by one the developers left for other jobs. I was the last developer from my company on the project. By then Pete had left too. I told the new manager that I would turn the lights out as I too left for a new job.
There must be a right way to manager projects that fall behind schedule. One wrong way is to ignore the obvious until it is too late to do anything about it. A highlight from this debacle was when the owners of this huge company invited me to come to their executive offices and explain what the problems were and whether we could recover. I told them we could definitely implement this system successfully. But realistically it would take a whole lot longer. Owners were not too happy that day.
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...