HMS recovery from the Montreal Ice Storm of 2023

On Wednesday, April 5th, Montreal where HMS Software’s headquarters are located experienced an ice storm that was protracted and cumulative.  The results caused widespread destruction.  Over 1.1 million customers lost electricity in the province of Quebec, about half of them in Montreal.  HMS Software’s offices did not lose power but virtually all our staff did.  Power for some was not restored until Sunday afternoon.  During this period, HMS Software’s Internet connection was lost and in the Montreal area, Internet and even cell phone service was interrupted.

We’re happy to report that none of our staff or their families were injured and, while there is plenty of damage in the Montreal area, none of our staff experienced extensive damage to their homes. During the outage, HMS Software services such as TimeControl Online were unaffected.

As of this morning (Monday, April 10), we are all back at our posts and operations have returned to normal.  For those who checked in with us to ensure we were alright, we thank you.  For those who have found that we’ve been a little slower than normal in returning your calls, we thank you for your patience.

TimeControl is in the news again!

We were delighted this week to find TimeControl getting some great press over on the Serchen website.  The article on their blog describes some of the challenges in selecting a timesheet but goes on to say that TimeControl is a great example of a multi-purpose timesheet that can meet multiple needs at the same time.

You can find the article in its entirety at: blog.serchen.com/choosing-a-timesheet-can-be-a-challenge.

Chris Vandersluis will be speaking at ProjectSummit * Business Analyst World on April 3rd

HMS Software’s president, Chris Vandersluis will be speaking at the ProjectSummit * Business Analyst World conference in Orlando, Florida on Monday, April 3rd.  He speaks often at industry events.  His topic for this conference is “The Perils and Benefits of Managing Remote Workers in an All New World”.

The conference is well respected.  It runs from April 3rd to April 5th.  For those in the Southeast USA, you can find out more about the conference at www.pmbaconferences.com/orlando/.

For more information on Mr. Vandersluis’ speaking schedule or to contact him to be a speaker at your event, go to www.epmguidance.com.

Dashing Dashboards

We’re about to release a major update to TimeControl Dashboards in a couple of weeks as part of TimeControl, TimeControl Online, TimeControl Industrial and TimeControl Industrial Online version 8.4.  Before you get concerned, all your existing dashboard definitions are fine.  While you don’t have to make any new changes, a whole range of new dashboard functionality will become available to you including adding new dashboard types to the page and adding more dashboard items to the page than is currently allowed.

All of that being said, we thought it would be an opportune moment to talk about the pitfalls of dashboards.  The dashboard concept is hardly new.  Back when we got started in project software systems in the 1980s we were asked continuously for 1-page summary reports that would presumably show “everything” to management.

Everything is, of course, a tall order and it remains so with dashboards.  We’ve had very senior staff ask us “Can we see all current project and TimeControl timesheet data in real time?”  You can, of course.  But… do you want to?

When we are designing dashboards for clients we ask a few questions:

First, how often are the management personnel who look at these dashboards expecting to make decisions?  If the answer is every five to ten minutes, then real time dashboards might make sense but we’ve yet to meet that manager.

Second, when someone looks at data in a chart or a list on a dashboard view, do they have certain assumptions about the data?  We’ve never met someone who didn’t.  Managers think that when they’re looking at data synthesized on the screen that a) It is accurate and that the manager, project manager or supervisor is prepared to stand by that data.  If this data has gone through no approval at all, that’s unlikely to be the case.  So, our standard recommendation is to show dashboards on posted data.  Data is posted in TimeControl nightly or weekly or even bi-weekly.  If that’s the case, that’s the decision window.  To what should be no one’s surprise, weekly decisions seems to be the most frequently that managers want to make decisions about such data.  Monthly is the second most popular.

Third, is all the data there?  Before I look at a chart of, say, actual-vs-budget, am I looking at 100% of the actuals?  Have all timesheets been collected?  Making a decision on a dashboard view only to find out that only half the supervisors have posted their data would be a problem.

Fourth, is the data timely?  Am I looking at data that all belongs together?  We’ve seen dashboards of project performance showing actuals where half the projects were updated this week and the other have only had updates until last week.

None of this says that dashboards are bad.  We love dashboards and we think you’re going to love the new dashboard views in TimeControl 8.4.  But, as you create your own dashboard views, take a moment to make sure that what others will see on the screen is both complete and useful.

Workflow is a whole different level of automation in TimeControl

Let’s talk about workflow for a moment.  There are several concepts of automated workflow in TimeControl and several places where you would focus, feature-wise, as you were talking about it.  Let’s look at each of those and then talk about the TimeControl Workflow functionality.

Approvals

Specifically, TimeControl’s Matrix Approval Process for Labor Actuals™.  This is a flow of data for the approval process itself. TimeControl includes approval functionality both for Finance oriented people to approve the total hours and Project oriented people to approve the timesheet data line-by-line.  This is all part of a process that locks down the totals and then allows changes by different people of each line.  It’s a powerful concept that we thought up in the early 1980s and its strength continues to prove strong today.  You can find out more about that at timecontrol.com/use-cases/matrix-approvals.  For line item approvals, we have not only the Project Manager Approval but also Line Item Approvals that are associated to export definitions.  This provides a multi-dimension matrix of approving and, if needed, adjusting data.  So, a project manager can approve a line and, completely separately, a billing manager can reject a line and, completely separately, a client can approve a line on-site and so on.  Because these lines all serve different processes, the adjustment or acceptance of data is all kept distinct.

Accruals

TimeControl also performs automated actions depending on what Accrual Rules you might have set up.  When a timesheet is release, or posted or on a scheduled basis, Accrual Rules can activate to make calculations and insert values into banks of hours for vacation, sick leave, personal time off or other distinct types of tracking such as overtime, banked overtime and more.  This allows a flow of data, calculations and changes that will impact mostly employee banks.  Accruals are highly dynamic and are a powerful aspect of TimeControl automating calculations that you would otherwise have to do manually with great effort.

Pre and Post-Posting Procedures

As timesheets are posted, TimeControl allows additional calculations of the timesheet data and other elements of data and this allows a flow of automated calculations to impact the overall TimeControl data in a myriad number of ways.

Workflow

Ok, let’s turn to the subject we started on and that’s the TimeControl Workflow function.  TimeControl Workflow is activated at the moment a timesheet is released and changes ownership.  At that moment, the workflow looks to see if it should be triggered based on values or conditions in the timesheet data.  If so, it then makes a series of logical decisions about what to do.  “If that, then this”.  In this case, it might change the ownership from the current target to move on one target.  This might be used to say send the supervisor only the exceptions. If this timesheet is exactly 40 hours and has no overtime, no vacation or time off, then bypass this supervisor and send the timesheet to Posting or to the next level.  The Workflow could also automatically approve all lines in the timesheet in Project Management Approvals.  You could also send an automatic email to… well, anyone.  A project manager, for example, might get an email if this timesheet would put a project within 10% of its overall budget.

The level of automation here is extensive and is a common go-to configuration element of TimeControl deployments.

For more information about TimeControl Workflow and to see a webcast of it being defined, go to timecontrol.com/features/workflow.

API Dynamic Documentation

Writing documentation for any software product is a significant challenge.  There’s the obvious of course, how each function works targeted at end-users.  For TimeControl that’s quite straightforward.  Our User Guide is about 100 pages (a little longer for TimeControl Industrial as it has to cover the use of Crew Timesheets and Materials).  It’s under the covers that Documentation takes on more significance.

With a product like TimeControl, the level of flexibility and configuration that is possible with the product makes those elements of documentation much longer.  No client needs to know everything about how to configure every element of TimeControl as clients only need to focus on that functionality and those processes that are specific to their needs.  But there’s still a lot of it.  The TimeControl Industrial Reference Guide is over 600 pages long.  There’s also the TimeControl Report Designer Guide that is a little over 200 pages, the soon to be defunct legacy guide at 48 pages, the Installation Guide for on-premise clients at 90 pages and the TimeControl Project Guide at 44 pages so far.  It’s a lot.  There are variations on those guides to accommodate TimeControl on-premise vs. TimeControl Online and TimeControl vs. TimeControl Industrial.

There’s more of course.  The website has numerous white papers and other collateral like videos and webcasts to talk more about specific solutions and processes.  And, there is this blog where we try to add detail to things that need to be showcased or clarified for specific circumstance.

While all of that may seem like a lot, there is another category of documentation we haven’t talked about and that is the API Guide.   The TimeControl API is the Application Programming Interface that lets you write programming code directly to the TimeControl  Server service to allow it to integrate with actions from other applications.

The API Guide is not an indexed PDF like the other guides.  It is dynamic.  The API Guide includes static elements which HMS has created to show how to authenticate, how to initiate code to access the API and more.  Topics include Authentication, Security, Errors, how to scale, versioning, rate limiting, OData support along with Examples and a complete list of Endpoints.  For each EndPoint you can see all possible operations and for each operation, there is example code.  Any changes to the API cause automatic updates to the API Guide so it is impossible for it to be out of date.

Taking advantage of the API requires expertise in both programming and TimeControl operations and the API Guide itself has the potential to execute code directly on TimeControl.  This can and should be prevented for most users by not giving API security authentication to most User Profiles.

Creating API code and executing it should be done in a sandbox first to make sure it will deliver the functionality you expect.  It’s a powerful tool for integration with other systems to extend functionality but should be used with care and caution.

This is the most flexible type of documentation we’ve ever included in TimeControl and it’s worth a look.

What is Referential Integrity in TimeControl?

We often talk about the auditability of TimeControl’s data but how is that accomplished behind the scenes.

Imagine this scenario.  We have an employee fill out a timesheet.  We save that timesheet.  It will be no surprise that the timesheet line and header tables have relationships with the employee table, and the charge table.  But then next week, the employee changes departments.  He is no longer in the technical department.  Now he is in the sales department where timesheet rules are different.  Plus he changed salary in the move.  He’s no longer paid the same as he was.  Plus, the charge codes he used have had changes too. They have different start and finish dates.

If I go to look at this person’s timesheet for last week, will it show the updated employee and charge code information?  It won’t.  The TimeControl design was created so that a timesheet can always be recreated as it was originally entered.  That means we have to freeze the employee and charge code data and save anything else relevant to the timesheet at the time.  In TimeControl, we do this at the time of posting.  That allows us to comply with stringent auditing requirements such as the Defense Contract Audit Agency but it also allows us to follow some common sense accounting.

If we did a costing report on the employee I just talked about, we’d reasonably expect that his cost to the company per week would be one value until the department and salary change and then a different value after that.  Also, costs to the tasks that person worked on would be at the original salary value until the department and salary change.  That would just make sense.  That, however, is not how many project-based timesheets work.

So, how do we do it?

Using referential Integrity.

It’s no surprise that TimeControl is based on a relational database.  Products like MySQL, Oracle and Microsoft SQL Server are all relational in nature.  But that’s not enough.  From the earliest versions of TimeControl we’ve embraced the concept of relating different records into specific records in different tables.  Here is how that works.

When a record is changed in a key table in TimeControl like the Employee Table or the Charge table, TimeControl saves the original record as a historical record and makes the newly changed record the current record.  All ties from, say, a timesheet line to a charge code line stays with the original record.

That’s huge.

So, the newly updated record is what you would see in the Charge Table or the Employee Table but you can look also at the historic records that are related to that entry from all the times the record has changed in the past.

The TimeControl Employee Table is called “Employee”.  The TimeControl Employee History Table is called EMP_HIS.  The TimeControl Charge Table is called CHARGE.  The TimeControl Charge History Table is called “CHR_HIS.

When creating reports or exports, it’s important to keep in mind that these tables are distinct and display distinct values.  Choosing the Employee Table will show only the information for that employee record that is from the current entry.  Choosing the Employee History Table will show all the associated entries for that Employee over time.

We never delete historic records.

If you look at a timesheet from a year ago, the employee for that timesheet might not even be in the company anymore.  But the employee record associated to each timesheet will be.

Referential Integrity is part of what keeps TimeControl simple on the outside but robust and flexible on the inside.

It’s time to sunset some of TimeControl’s Legacy functionality

In 1999, HMS released one of the first browser-based products of any kind.  As part of the release of TimeControl 4 at that time, we had to find a way to perform several functions including reporting and linking to certain project management tools like Microsoft Project using OLE (Object Linking and Embedding).  We accomplished this with a technique called ActiveX controls.  These were downloaded objects that lived inside Internet Explorer and allows us to deliver all kinds of functionality in a way that looked and felt very much like the Windows executable version of TimeControl 3.

In all these years since 1999, we have maintained support for some 32bit ActiveX controls even as much of the functionality they performed has been superseded by other functions.  The only remaining ActiveX’s in TimeControl now are the old 32bit excel-like reporting engine and the OLE links.

With TimeControl version 7, we started referring to these functions as Legacy Functions and moved all the documentation for them into its own section of the Reference Guide.  If you’re a TimeControl user or administrator and are wondering what on earth we’re talking about, there’s no need to worry.  Most TimeControl clients of today have never seen or accessed the TimeControl Legacy Functionality.

In TimeControl version 8.4 we will, at last, be sun-setting the Legacy functionality.  It has simply become impossible to support.  The ActiveX’s work only with Internet Explorer which is no longer supported by Microsoft.  The controls are 32-bit even though virtually all Windows environments are 64-bit.  And, perhaps most importantly, all the functionality that is currently in the Legacy functions have been superseded by more modern functionality in TimeControl.

For those using TimeControl Online or TimeControl Industrial Online, the only change will be the absence of the Legacy tab in the menu security.  All TimeControl Online clients have had the legacy functionality turned off by default.  For those using TimeControl or TimeControl Industrial on-premise, any upgrades of 8.4 and later will have the Legacy functionality removed.

There may be some who want to preserve the reporting views that were created ages ago in the TimeControl Legacy report writer.  This is already accommodated in TimeControl as any legacy report views are automatically converted into Drill-Down Analyzer views.

For any on-premise TimeControl clients who may still have some use of the Legacy functionality and want to know how to transition out of it, please contact the Tech Support department at support@hms.ca.

It was a good run with some incredibly stable code and functionality.  But it’s time, at last, to move on.

Designing an effective timesheet approval process for both Project Management and Finance

There’s a reason the Matrix Approval Process is at the top of our Use-Case Scenarios Solutions page on timecontrol.com.

When HMS was created in 1984, our first-ever project included a requirement to write a timesheet that would be used both by Payroll and Project Management.  “Easy,” we thought.  The payroll people needed an auditable count-on-able record of time and attendance.  The project people needed updates to pre-planned tasks in the project management system we helped select and implement.

Easy isn’t how it went.  The needs of the Finance department and the needs of the Project Office seemed severely opposed.  As we delved deeper into the design, it became apparent that the real disagreements all centered around how approvals of the data would be accomplished.  Our first pass had the project people doing all the approvals first then sending the data to Finance.  That was not successful.  Our next try had project people and Finance people all doing approvals at the same time.  Also, not successful.  Finally we spent numerous days barricaded in a conference room working the flow and the priorities of the flow of data for the approvals and the result was the Matrix Approval Process for Labor Actuals™.

Ten years later when TimeControl was released as a commercial off the shelf timesheet product, the lessons we learned from that first attempt along with the 7 or 8 timesheet systems we’d written for clients in the intervening time came along.  The purpose of TimeControl was to deliver a timesheet that would have auditable Finance quality data that could be used for purposes like Payroll, Billing, R&D tax credits, DCAA compliance and more and yet, at its heart, be a project-oriented task-based timesheet system.  The core of that design is the Matrix Approval Process.

There’s lots of data woven into different elements of our collateral and materials.  We’ve tried to put as much of it as we can into the website itself where there are white papers, webcasts, slide shows and factsheets on how to create a timesheet approval process with both Finance and Project Management in mind.  You’ll find it at https://www.timecontrol.com/use-cases/matrix-approvals.

The official blogsite of TimeControl