Chapter 1 of my adventure with the Remedy team is already proving fun…
My first task is to provide a report to Jim Sabol on CSC turnaround times, in terms of business hours, on Remedy cases that often span days… and the need to exclude after-hours, weekends, holidays and other office-closed days in the tally of hours. Bryan had tackled this problem at one point in VB, but a reusable Perl solution was desirable for both Remedy reporting and other applications that need to be business-day-aware (such as our SLA ‘Contracts’ app).
As usual I didn’t regret asking Paul Sand if he had ever needed a similar solution and he pointed me to the awesome Date::Manip module on CPAN. This module can be given a config file wherein you define the hours of your organization’s work day, holidays and other office-closed days, etc., after which much of the heavy lifting of getting deltas (time differences between two given dates) is done for you.
As a means of including an always-fresh UNH specific config file in a distribution, I created the config file and a UNH::Cal package and committed them to Subversion. The UNH::Cal package itself is somewhat superfluous, as Date::Manip could be called directly, but by wrapping it in UNH::Cal I can make calls that are (perhaps more verbose than bare Date::Manip function calls, but) to me, self-documenting:
$date = UNH::Cal::Date_NextWorkDay($date,$off [,$time]);
I included some POD documentation for this little wrapper module called UNH::Cal.
Feedback welcome!
One of the toughest things I find trying to manage IT Projects is an enforcement of good habits. I am person that needs technology if I am going to manage projects using it. Paper does not cut it for me. It’s historical record, difficult to index and retrieve. Many people will try to use Excel, Word, Project, file-system sharing and even homegrown systems. IMHO these are just stovepipe applications and are incomplete. Have you ever tried to find lost or shared documents or even an email? Duplicate tracking data in a spreadsheet or another database? User flexibility and standard operating practices do not necessarily align well, but there are systems out there that can approach this.
I need real time, cradle-to-grave access to data, work queues and task status. Not only to manage single projects, but portfolios of projects. These lifecycle systems can glue all the disparate documents together, alert project/protfolio managers when someone is late on a deliverable or if the project is slipping. They are single source repositories of documents tied to project titles, each obeying the processes defined in proper project management flow. They offer workflow and queuing of tasks to core members of the project, digital certificate signoffs and even integration to enterprise level MS Project servers — in otherwords they enforce behavior and accountability.
I am really looking forward to seeing this MS Share Point system come online with the CIS-TCS services. We presently use portions of this tool in our department to provide wiki, thread, calendaring and document management. It is a framework upon which to build fairly decent enterprise class “Intranet” applications. My hope is that a project management life cycle overlay “plug-in”, for Share Point will some day be offered as a project life cycle management system here at the University. We just need that flag waver!