Change Request drives maintenance mode

The Case:

Sunday night, 1:30 AM. the NOC team is ringing your phone, desperately trying wake you up. one of the critical business apps is down, and they have been trying to reach the team who owns it for close to an hour, but every call goes to voice mail.

you fall out of bed, rush through a shower, speed a little bit on the freeway towards the data center, and check in with security. It’s Sunday, but based on what the NOC sees from Ops Manager, everything is down, and you don’t know if you can get it back online, unsupported, before business starts in 5 hours or so.

you turn the corner towards your company’s rack, only to see the entire critical app team sitting around a card table; playing poker, eating pizza, and watching the software maintenance package on the critical server run though it’s offline upgrade. Their mobile phones are all stacked in the center of the table, because there is no signal in the data center, and they’re halfway through “CR99281: Routine maintenance update to critical business app”, scheduled for Sunday, 12:30 AM to 4:30 AM.



Owners of Configuration Item should review

Anyone who’s dug around in the underpinnings of Service Manager (especially while customizing activities) has probably seen the default bool property called “OwnersOfConfigItemShouldReview” that’s part of the Review activity class, but not exposed on the form. You might also have seen the default relationship System.ConfigItemOwnedByUser that’s on the Configuration Item base class (for Windows computer CIs, this is exposed in the form as the Custodian relation).

Maybe you, like me, have wondered why MS didn’t implement this? it seems a very useful feature. ever heard someone say “if they want to change MY server, they are going to have to ask me FIRST”.

One of my clients requested this functionality as part of their change management process, but we ended up using it in several service offerings, including financial approvals for purchases based on Provance’s Cost Center CIs. I’ve thought about this a couple of times, and I liked the way it worked for my client so much that I spent a weekend writing a clean implementation to share here.