Well, it wasn't really the "Bring your kid(s) to work day" that companies organize…
Instead, my wife came down with some sort of stomach bug on the morning my team was to deploy a 2+ month long project to production.
I was hoping that she would be feeling better by the time my oldest got out of school, because things at work weren't really going to get interesting until after 3:00 PM anyway. But, after a phone call from the car to my wife (who did not sound too good) and a heated struggle to calm my two children in the car, I decided that they would easily overtake their mom within one hour of me dropping them off… so, I called my director to inform him that I would have a couple of tag-alongs with me for this deployment.
So here was my plan:
- Find help from all them people who made "oooohhh how sweet…" comments about my childrens' pictures all over my desk to read stories and occupy my offspring.
- Get a handle on where the project was at and free-up the developer who was covering for me all morning.
- Prepare the build solution for the scheduled 5:00 PM deployment.
- Turn on the "Site Down" page for the entire domain at 5:00 PM.
- Deploy to the staging directory and alert QA it is ready for final test run.
- Attend short Go/No Go meeting.
- All is Go, deploy to LIVE root and simultaneously turn off the "Site Down" page.
Well… at least steps 2 & 6 went as planned…
I was only able to hook up a baby sitter for short periods of time that left me balancing my build with telling the 3 year old: "please put down the push pins sweety…"
Since I was behind on the build, I did get the "Site Down" feature in place first by 5:15ish. This by the way was a little more difficult than my practice run on the DEV box. Apparently, IIS does not forget Web.config settings from the root just because it is now inside a Virtual App Directory…
OK, during the build, the kids had to pee! And, while the 5 year old was on the throne, the 3 year old could no longer wait. So, after cleaning her up and a cell phone call to my director to bring in the change of clothes, we were back to the build machine in just under 15 minutes. I quickly hand of the little tykes to my boss for story time and get back to the build. 5 minutes later my boss is back asking if I have another change of clothes… Apparently the 3 year old, whilst enjoying the stories, looked up to declare: "I peed!"
It is now 5 minutes to 6:00 and the site is still not deployed to staging. This is where VS.NET began complaining that the site I was publishing to was not ASP.NET 1.1… No, it was (yes we are not yet to 2.0, another post, another time). This is all because of my ingenious way of ensuring all web requests get the "Site Down" "htm" page. Apparently if you set the Custom Error for 404 to direct to a static HTM/HTML page, when VS.NET requests it's funky get_asp_version.aspx (or whatever it is) the response has no .NET version in the headers, so…
OK, 404 reset back to normal, staging is published, QA is happy, we get a "GO" from the meeting, all is deployed to LIVE/PRODUCTION by 7:15 PM.
Thank goodness we had a message up on the site all day stating it would be down from 5:00 PM until 9:00 PM…