My team lead told me we needed to start designing some big changes to our application. He said we needed a design document by the end of the month. Since I had been surprised before on such changes, I decided to consult our project schedule. That is where I found out we were one week late on this design work. And the design doc was not due at the end of the month. It was due in a week.
The requested changes affected a number of parts in our system. Many of these parts are the responsibility of other developers. Like any senior developer would do, I reached out to these developers and warned them of our upcoming deadline. Then I also took the lead and said I would come up with the first cut of an interface between our subsystems. I picked out those requirements which caused the application I manage and the other parts to need to communicate. Then I started making design decisions,.
Here is what I found. The design work is actually fun. We are in a maintenance mode. So we sometimes spend a lot of time fixing bugs. This was a nice break to actually work on something new. Sure it needs to work with the rest of the system. But it was still very fun work. The really good news is that I have established the design of the interfaces between the subsystems. Now I can concentrate on the parts that are specific to my application.
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...