Monday, 28 April 2014

Go with the flow

Besides being an awesome song by Queens of the stone age, it also describes a common requirement from our clients here at two red kites.

Workflow can mean many things, depending on the context, and for this post, we are talking about the process of an online form / information as it goes through the various stages of it’s life. For instance, a draft expense form, through to the approval and payment of the expenses.

An example workflow

Our experience with system development, and specifically workflow systems, is that "with visibility comes accountability”. What the heck does that mean?

Well, we have found that by the mere fact of making a form / spreadsheet / information accessible to those that need to see it, motivates those who currently are assigned a task to move it to the next stage in a more timely manner. If people know that others may be able to see how long a task is sitting with a particular person, it tends to move along at the appropriate pace.

Let’s look at a typical discussion that we have, when asked to come and have a look at a workflow requirement.

This is a standard question that we are asked. So we have this spreadsheet with 10 fields that we email around, can you just put it online?

This is a simple enough request, but let’s run through some of the thought process we go through.

Let’s clarify the fields, are they free text areas, selectable from a predetermined list, automatically calculated, defaulted to a particular value, show or hide based on previous field contents, are they mandatory or optional, …

Security (within the organisation): who can view, who can update, do we lock off field changes after a particular status?

Alerts: Do we email the next person assigned to the task? Immediately or a daily summary? Do you want a working view of your (or everyone's) tasks?

Reassigning Tasks: When someone is away or unable to complete a task, Do you need the ability to reassign individually and / or batch a group of tasks?

Escalation: At what point do you want to escalate that a task is due to be completed, or has sat dormant without any activity?

Integration: Do you want to pre-populate any information from other systems / databases, whether real time or at regular intervals. Do we need to send information to other systems?

Security (external to the organisation): Do you need to extend to external users? When should they see any information about a particular form? (the default being no access at all) What reduced list of fields are visible to the external party?

Reporting: What specific reports are required? Who has access? Do you need to export them to a different format / CSV?

Auditability: Do you want to see who did what action to process the workflow, and at what date and time?

Devices: What devices will people use with the system? What level of interaction with the system will they have. i.e. iPhone's are for view / approval only?

Fast forward a couple of months after using the new system, you now want to add other forms into the system, how does affect the original design?

The above need not be daunting, and it isn’t when we take you through our process to tease out what you do and don’t require in your system. This then allows us to build upon pre-existing components and frameworks the deliver the solution without the monetary and time costs of a bespoke development.