One of the things I have noticed at recent Oracle and SAP events is that there seems to be a view that if I "web 2.0-ify" applications or integrate the apps into desktop tools, that I have achieved user-centricity. Those are tools and technology that can be applied to build a compelling user experience, but the user experiences being built are still too generic. I have discussed user-centricity in a broader sense here and here. However, I thought I should focus on it a little bit more directly. Here are some guiding principles to user-centricity:
- Not a generic role like employee or manager -- specific roles based on jobs or job families. What a finance manager needs is very different from a retail store manager. in addition, the application should take into account what is going to make the user most effective.
- Accounts for users playing multiple roles -- people have multiple roles and participate in mulitple processes. A user-centric solution will provide the right experience for each role and across roles. How many of your manager self-service applications look like this (thanks to Sonar6 for this screen capture).
- Look and feel -- One size does not fit all even within a role. Users should be able personalize their virtual workspace to make them the most comfortable and productive
- Methods of performing tasks and access (e.g., search) -- Allow different methods to perform tasks and access information. Some people will want to do everything out of e-mail. Some people want to do everything using Microsoft Office. Some want to use only web-based office applications. Some want to do work in specific purpose applications. I think you get the point. Ideally, if I want to write a performance review in Outlook, that should be fine. If I want to write it in Zoho Office, that should fine. If I want to write a performance review on my blackberry, that is more complicated (limitations of the device may not make it practical). SOA ultimately should be able to allow much of this to happen (a variety of different applications should be able to consume my performance review service(s)).
- Supports individual work styles -- Users should be able to "mash" together different applications (more granularly, services) to support their work style. So, not only should I be able to do my performance reviews where I want to, but I should be able to "mash" together other applications that may help me do a better job of writing that performance review. Maybe it is internal best practices repository on providing coaching and feedback. Maybe it is bookmarks to external web sites that has best practices on giving verbal feedback to employees. There are a lot of possibilities to bring different things together in a virtual workspace to support my individual work style.
- An ability to blend work and personal activities -- The lines are blurring between personal computing and work computing. Over time, you probably will not have separate work and home computers. So, one will need to increasingly blend work and home computing where appropriate and separate it where appropriate.
- Context-specific content/analytics
- Most business applications are about about CRUD (Create, Read, Update, Delete). There is a reason that they were originally database applications. The goal was to enter accurate data about the business function into the system. That is still important, but the bar is higher today. It is not enough to enter accurate data. The quality of data is important. I can have the best performance management solution, but if I enter poorly structured goals or if I have a competency model that is does not appropriate for a specific job, then it does not matter it conforms to edit rules. I will not effectively utilize the application. Garbage In = Garbage Out. However, if I provide content that can help someone write good goals and I create good competency models that truly reflect job requirements, then I have a better chance of effectively utilizing a performance management application.
- There is data that has been previously captured that may also influence the information that is entered in the system. For example, market data about compensation may impact what the proposed salary should be in a job requisition. In addition, separation reason data may also impact that proposed salary as well. This type of analytic data should also be provided to users in the context of the task that they are performing. SAP and Microsoft has done a decent job of this in Duet, but the Duet pane size limits how much can done here (compared to a portal).
- Supports routine and non-routine work
- Not all work can be tied to specific well-defined business processes. For example, does your organization have a defined process for what you do if you find that a high performance/high potential worker is at risk of leaving (maybe has a job offer from a competitor)? I would imagine that most, if not all, organizations do not have a defined process for this business event. This is an example of non-routine work. What you need to be able to do is build an ad-hoc process to meet the specific business need. In this case, the manager and HR need to work together with the employee to understand why he/she is leaving, discuss response scenarios, track progress of the responses, and document the resolution. Some of these things involve the HR system (documenting the resolution -- separation or changes to compensation, job, etc.), but discussing response scenarios (e-mail or a discussion database), tracking progress (task/project management tools) may require a dfferent set of tools that can integrate with the HR system.
I know this is not a comprehensive list of guiding principles. It is really my stream of consciousness of what is important. Thoughts?