A Narrower Gap

Why did we call it Humanis Summer 2007?

June 16th, 2007

It’s been a long time since my last update, but that’s because we’ve been positively swamped getting everything ready for the next release of Humanis. (We’ll be rolling it out slowly to a few clients over the next two or three weeks, and hope to do a wide release by the middle of July). Several people have asked me why we changed things from “Humanis 8.1″ to “Humanis Summer 2007″.
Before I get into the name change, I should say that some of the best features of Humanis Summer 2007 are things you can’t see. We spent months making behind the scenes changes that improve the speed and security of the system in direct response to requests from our users. A pleasant side effect of these changes is that it becomes very, very easy for us to roll out version upgrades to all our clients in a timely way.

So we’re going to do that, a lot more often. Instead of the 1-major-version every 18 months with lots of on-demand updates, we’re aiming toward two to three significant releases per year, named after the month and year they’re released. So this release is Summer 2007, the next one will probably be Winter 2007 or Spring 2008 and so on. In addition, we’ll also be releasing monthly updates for each version, adding small new features and bug fixes.
Over the next few weeks, I’ll be blogging about some of the changes we’ve made for Humanis Summer 2007. Stay tuned!

We’re both speaking English, but it’s not the same language.

November 16th, 2006

Sorry it’s been so long since I last wrote — it’s been a busy time here at Questek. We’re moving next week into our fancy new office space, so between arranging movers, picking paint colours, selecting new chairs, buying new desks, and ensuring that the layout is going to work… well, you can expect I’ve not had much time to write!

One of the things that I’ve been working on is finding places in the software that show error messages when they should instead show information messages. A great example is the “record is locked” error, which currently shows up as a pretty non-informative error dialog that looks kind of like this:

Old Lock Error Dialog
This is our standard “something didn’t go according to plan” dialog — it allows you to send us the error report so we can track down why the problem is occuring and fix it. But there is a problem here: this isn’t an error.

This is, in fact, a standard issue with most database products. Someone is making changes to an applicant or a client, and you try to edit it so that you can make changes and the system says “hey, you can’t do that, because TJ is already doing that!” Well, that’s what it should say, but instead it’s saying “dbApplicants: Error 5035: The requested lock could not be granted. The file or record may be locked by another user.” No wonder people don’t know what that means — it’s too cryptic for most people.

What’s the solution? Well, we’re introducing a new message that isn’t an error, but should get across things much more clearly:

New Lock Dialog

This gives you a lot of information about what is going on. It tells you that the applicant has been locked, who has locked it, the machine they locked it on, and a friendly message explaining that you’ll need to wait until they’ve finished editing the applicant before you can do so.

Of course, this may not answer the “why does this happen?” question, so there is a small “more information” button. When you press it, the dialog explains a little more:

New Lock Dialog Expanded

We’re going to be making use of these types of dialog throughout the 8.1 release of Humanis, trying to make things a little friendlier and a little more easy to understand.

Modality and the User Experience

July 21st, 2006

Overview: We’ve changed the way we handle qualifications, making it easier to learn and easier to use, and it all has to do with something called modality.

Let me tell you something you’ve had to do a hundred times today that bugged you and and you didn’t know why: the software you use interrupted your flow in order to ask you a question. Maybe it was asking you if you’re sure you want to delete something, or maybe it was asking you for a file to open, or maybe it was just giving you a warning.

Any window which doesn’t let you do anything else until you close the window is called “modal”. A window which lets you continue to interact with the rest of the application is called “modeless”.
Now, far be it for me to tell you that modal windows are bad. Quite to the contrary, there are many times when a program really doesn’t have a choice: asking for a filename to open, for instance. However, reducing modal windows and instead using modeless methods can make for a less jarring, more pleasing experience for the user.

I recently came across this blog entry which talks about an entirely modeless application, with some very clever ways of getting around things which are typically modal: using menus for “are you sure” type questions and information bars for warnings are great ideas.

This kind of got my creative juices flowing. Surely there were places in Humanis which could benefit from being less intrusive and not require pop up dialog boxes! And, indeed, there are. I didn’t go looking for them, really, and the one that I want to talk about today just sort of came out of a brainstorming session that I had with James.

The upshot of this is that we’ve changed qualifications.

Existing users, please don’t panic, you’re going to love it.

Tracking skills in any software application isn’t easy. You simply need to look at ten staffing software products and you’ll see ten different ways to do it, all of them with their strengths and weaknesses. With Humanis, we came up with what we think is the most flexible way of handling skills, and we’ve done it the same way since the first Windows version, eight years ago.

Humanis uses a completely user-definable hierarchy of categories and skills which can then be applied to applicants (and clients, contact and job orders). For as long as we’ve been in Windows, we’ve used a pretty standard two-tree-view dialog to perform this:


To use it, you select the qualification on the left hand side, and then press the -> button to add it to the applicant. Lather, rinse, repeat. Now, you can use the quick search at the bottom to find a particular skill, and when you click the -> button it automatically goes to the next skill in the list, and those things make it easier to maneuver through the dialog and add skills quickly. However, it’s still a little bit, well, cumbersome.

We display the qualifications in a stretched out manner, to maximize the information available on the screen. It looks like this:

As you can see, we get a *lot* of information in a very small space, which is great. However, this means there are two views of the qualifications: the tree in the modal dialog, and the view above. Trying to explain this relation is kind of tough to both prospects and new clients during training.

So, we have a situation where the software interrupts the user when they want to edit skills, and we have two related views of information without any obvious connection between them. I wanted to come up with a method that more directly showed the relationship between the hierarchy and the display, as well as stayed out of the way of the user as much as possible.

The first thing I did was make a sliding edit area at the side of the qualifications display, with the qualifications tree in it. To the tree I’ve added check boxes and radio buttons, so that instead of having to move the skills from one box to another, you merely check off the ones that you want. Finally, there is an instant result: the display beside the tree updates as soon as you check off the skill, so you get an immediate sense of how you’ve affected this person’s skills.

This isn’t just a one way thing, either! The display component is interactive - you can click on an item in the display and it will select that skill on the tree view. You can also right-click on the item to either delete it (effectively unchecking it) or add a note to it.

Let me tell you - screenshots don’t do it justice! You need to see this in action to really see how dramatic a change it is, so:

Click Here to see a quick movie, showing it off.

(Edit: We’ve updated the movie to show a much more recent build, and you’ll notice that it’s come a long way! This is very close to how it will look in the 8.1 release).

We were all quite surprised at how effective this change was, so it was a no-brainer for us to add it into the 8.1 release of Humanis. New users will pick up the concepts more quickly, and experienced users should have no problems understanding the change because the system, fundamentally, is the same as it always was - just modeless.

Why we don’t announce release dates

July 2nd, 2006

One of the most common questions that I’m asked when I’ve told someone about an upcoming new version is “when will it be available?” and unfortunately, I can rarely answer. “But why,” people ask, “I just want to have an idea!”

It is hard to resist answering, and it isn’t like we don’t have an idea of when we’ll release — we do keep a schedule, and we do try to stick to it, but invariably when we tell people a date, things go wrong.

There are three things that we, as software developers, have control over:

  1. The features list. What new things will be in the software, what improvements, and what bug fixes.
  2. The quality. How much testing do we do, how closely we monitor the changes, and so on.
  3. The release date. When we ship the new version.

By revealing any one of these, we lose control over at least one other one. For example, if I were to reveal the release date of something, and something goes wrong (such as a late design change, or a nasty, hard to find bug), then either we have to remove features or sacrifice the quality of the features (or, in some cases, both) to make the release date.

There is one other option: we delay things, saying we need more time. Now, as soon as we announce a delay it appears that we’ve been dishonest, or that we can’t keep our schedule, and can’t be trusted when we say things.

This is also why we’re not announcing the upcoming features until they’re already in Humanis and tested to the point that we’re sure they’re going to stay in. If we tell people about this amazing new feature, and it doesn’t make it in because of time or technical reasons, we look bad for not delivering on our promises.
So please don’t get too excited and demand we tell you when v8.1 is coming out. We have an idea, but we just can’t tell you or everything falls apart.

New Feature Focus: Workflow

July 1st, 2006

With software, and especially sales-style software, there is a cause-and-effect that goes on. You make a phone call and create an activity, and there is another, followup activity that needs to be created to remind you to call again in two weeks. Or when you place someone on an order for the first time, you need to email them with information. Or perhaps when you change an applicant to “inactive” you want to remove them from your Favorites list.

With the new workflow system in Humanis 8.1, these things can all be done automatically, without needing to manually create them! We provide adminsitrators with the ability to customize the actions that take place when an event happens. Examples of events are creating a new applicant, adding a job order, making a placement, or filling an order. There are about two dozen events you can respond to!

You respond to these events with actions, and Humanis provides four standard actions:

  1. Create an activity. This is the most common action, allowing you to add new activities as a response to an event. For example, you may need to create several activities to follow up on job orders, or you might want to create a sales activity after adding a new prospect.
  2. Send an email. There are lots of ways that emailing people can help you: notifying internal staff members of changes to orders (such as notifying managers when an order is filled, or letting consultants know when a new order is placed), or contacting applicants with a welcome message, or job order details, or thanking a client for their first order… the list goes on.
  3. Generate a report. Sometimes you want to produce printed output as a result of an event: printing an order once it’s closed, or printing out an applicant summary when they’re entered. Or, maybe you want to email a PDF of the report to a manager or a client. All of this is possible with this action.
  4. Run an SQL Script. For advanced, uncommon actions, an SQL script can run as the result of an event. This can add, remove or modify information in other areas of Humanis.

One of the best parts about this is how easy it is to create new workflow actions. A simple dialog box allows you to select the event you want to handle, and add as many actions as you’d like to it. Each action has a lot of options you can set, but it’s all point-and-click, so you don’t need to know anything in order to set them all properly.

Some examples of things you can do:

  • When a client places an order for the first time, send an email to the president notifying them of this. Also, send another email to the client, letting them know that the order is placed and what to expect. Additionally, an activity is created to call the client on the day before the order starts to remind them about the placement, and finally another activity is created to follow up with the client the day after the order is completed, to make sure everything went well.
  • When a “Phone Call” type activity is marked as completed, prompt to create a new activity to follow it up.
  • When an applicant is placed on an order, email them with information about the order, based on an email template. Also, create an activity to phone them the day before the order starts, to remind them about it

Literally, the options are endless. You can prompt to verify the workflow action should happen, or you can just do it in the background without any interference from the user, or you can mix and match, so some things just happen and others require prompting.

I should stress that this isn’t something we hope to get into v8.1 — it’s something that’s already in 8.1, so you’ll see this when it’s released. (To stave any questions: we will not announce a release date for 8.1 in order to control quality. I’ll write a post about this very soon, to explain why).

Depending on where you are, have a great Fourth of July weekend, or a great Canada Day weekend!

Opening the door, just a crack

June 27th, 2006

Last year was a big one for us at Questek. We released a major new version of Humanis and launched a major new product add-on called the Humanis Web Portal. Both of these have been hugely successful, but we’ve been working very hard to make this year just as exciting.

For example, we’ve been quietly developing the next release of Humanis which has several huge new features and a lot of improvements to existing features. I’ll be writing in depth about some of these things in the coming weeks and months, but I figured that I’d let you in on a couple of goals for the next version as opposed to writing about the specifics.

With any new version of software, there are three broad goals that we try to achieve:

  1. Add new things that will appeal to the broadest number of our clients and prospects
  2. Improve existing things to make them easier to use, easier to learn or more accessible to more people
  3. Make everything look better, work faster, be more customizable and feel smoother

Version 8.1 is no different. We’re adding some huge new features that will appeal to managers (workflow) and salespeople (marketing campaigns), improving a lot of the existing features that will appeal to everyone (Humanis Today) and recruiters especially (changes to qualifications), and polishing the whole thing to look better and feel better (improved customization of the header and a new summary page).

But this just scratches the surface. We have 19 *major* new and improved features, and that doesn’t include the myriad other minor enhancements under the covers.
Later this week, I’ll start with our first Feature Focus: Workflow - what it means, what it does, and why you’re going to love it.

A narrower gap

June 17th, 2006

Hi there!

One of the things I’ve been thinking about is how far apart the people using software are from the people who develop it. Users often wonder what developers are thinking when they make changes, and developers wonder why users think that every change is easy.

Let me introduce myself: my name is TJ Sullivan, and I’m the Chief Technical Officer of Questek Systems. My job, essentially, is to guide the technical direction of the company in all aspects. This includes everything from deciding what telephone system and internet provider to use, all the way through to the features we add (or don’t add) to Humanis.

By writing here, I hope to expose our users (and others) to some of the thought processes that go into the development of software, in general and of Humanis in specific, and try to narrow the gap between us. So stay tuned, I have a lot of exciting things to share!