Workflow techniques are typically used in large organizations with repetitive tasks, clearly defined roles and interactions. However, simple workflow management techniques like the ones discussed here can help improve productivity and reduce skewed workloads in any type of organization.
Henry Ford ushered in the second industrial revolution (and affordable personal transportation) by using assembly lines and mass production techniques to produce cars.Mass production led to the development of workflow techniques to improve productivity and quality. Work flow has since become integral to managing repetitive work situations and concepts like TQM (Total Quality Management), Six Sigma and BPR (Business Process Reengineering) are attempts to improve workflows.
A workflow is nothing but the way work flows in the organization. It is about defining where a particular job starts, who does what to it and where the output moves next, and further on till the output moves outside the boundaries of the organization. So, while workflows are typical in assembly lines, they also work well in situations including software development and call centers, where code or calls are routed to different departments based on a set of rules. Typically, the concept of workflow and optimizing the workflow are used in large organizations with clear cut job roles and is often automated using complex software. However, the basic principles of workflow management, along with some common sense can be used in almost any work situation in an organization of any size to improve planning, productivity and quality, and more importantly, to reduce skewed work loads.
Basic elements of workflow
For the purposes of our understanding, we will define the following seven elements of a workflow. Please note that these are not necessarily standard definitions, but are for our understanding.
- Element – An element of workflow is that part of the process which is executed by a given person. An element could be "call next number in the list" or "paint the box red" or "check code block for errors" and so on.
- Input – Whatever goes in, or is given to a person to do his job. This could be information, raw material, a function definition (for coding) code, an incoming call, a number to dial out to, etc.
- Output – Whatever that person hands over to the next person in the sequence to continue the workflow. This could be modified code, comments on or about the code, finished or semi-finished goods, an ongoing call, etc.
- Processing – Processing is the work done on the element by the person with whom it is at the moment. For example, processing could be dialing the number, or writing the code module or handing over the call to a supervisor and so on.
- Conditions – Conditions are what determines where the work moves next in the workflow sequence. In the simplest of workflows, there are no conditions and work simply moves forward to the next person in the flow. However, most workflows are not like that and usually there are conditions that determine where it moves to next. These are typically based on approval, behavior or response. For example, "if code is okay, send it to the next stage, else send it back for reworking", or "if solution works, close call, else escalate to tier II support" or "if measurements within tolerance, stamp 'pass', else stamp 'failed'."
- Time – The amount of time required to execute the element. Time could be in any unit—minutes, hours, days and so on—depending on the type of job. Cycle time is the time required to complete the entire workflow and is the sum of the time required for all elements of the workflow. Here we should note that the actual execution time may be longer than the cycle time, if any of the elements take longer than scheduled or if at any point, the workflow is reversed, for say, correcting errors.
- Choke point – A choke point is a point (person) where work piles up because of very high work loads, leading to delays. This can be because of under staffing or because work keeps coming back to the same person again and again (typically for verification). Choke points tend to delay the process beyond planned cycle time and throw things out of schedule.
A simple workflow
A simple workflow is linear, that is the next person in sequence to handle the job is always the same and there are no changes to this based on conditions. It is represented by a series of arrows pointing to the right, with each arrow representing an element.
Let us for the sake of an example consider a file moving from one department to another. This file could be electronic or otherwise and could pertain to say the purchase of a new plant and machinery. Within each department, the file would need to be processed by different people. In your case, this may be an incoming call or a piece of code or a part of a machine. Our objective is to increase the productivity and to even out the work load on the people concerned.
How to increase productivity
We increase the productivity by reducing the total cycle time. From the perspective of workflows, we can improve productivity by smoothing the workflow itself or by reducing processing time. Smoothing is done by reducing the number of elements and by ident ifying and removing choke points. Processing time can be reduced by decreasing the time spent on each element and the number of reworks; that is the number of times when the workflow is reversed to correct errors or to attain defined specifications. Of these, we will focus more on the first set—of how to smoothen the workflow.
There is another important factor that contributes to low productivity and higher processing time, particularly in unstructured office-like situations and that is defining and accepting competence. We will discuss that later.
Calculating cycle time
With the definitions out of the way, lets move on to the real task of improving the productivity. We start by mapping the actual workflow. That is, we create a diagram of the process as it moves actually forward at your place. On this diagram, note the conditions for forward or backward movement and the time taken by each.
Chances are that you will end up with a highly complex diagram for what you thought was a simple sequence of elements. If you do not, you have a miracle at hand. If you do, you now know the source of many of your problems.
Now add up the number of elements and the time taken by them individually. And that brings us to the first question: Are you spending more time than you have at hand for completing the full job? We have not reached the stage of whether you are spending more time than you should. The question at this stage is whether there is enough time at hand to complete the job as it currently exists? In a recent example that I was involved in, there were 14 elements in a particular job (not counting reworkings) that had to be completed in a cycle time of 12 days. The minimum time requirement for each task in this case was estimated to be at least one day. So, you had 12 days to complete a job that was designed to take at least 14! Obviously, there was no way the job could be completed on time, and people were working extra hours and weekends, without really being aware where the basic problem was!
Reducing cycle time
If the cycle time is longer than what you can afford to give it or what you think it actually should be, then you absolutely need to reduce cycle time. This can be done using one or more of four methods:
Reduce repetition – You will often find in unplanned workflows that some elements tend to be repeated with different people doing the same or similar things. For example are there too many QC stages? Can they be consolidated into one?
Eliminate unnecessary elements – In any workflow, particularly in unplanned and unmanaged ones, elements tend to get added over time. Typically this happens with approval tasks getting introduced in between. If that has happened in your case, it is time to take a really hard look at each one of them and eliminate all that can be removed.
Reduce time for individual elements – Take a hard look at each of the remaining elements and see whether they are taking more time than they should. Is there any way the time spent on individual elements be reduced? Maybe assigning more resources to elements that require them could do the trick.
Run elements in parallel – Unmanaged workflows have another bad tendency—to become completely sequential. That is, each element waits for all others before it to complete. Perhaps more than one element can run parallel, saving on time.
Workflows and choke points
The next big issue to resolve is that of choke points. Choke points easily develop in workflows when there is too much of loading on one individual or team. Another easy way in which choke points develop is when the work keeps coming back to the same person/team for checking multiple times. This could be like when code keeps coming back to the same QC team after every stage, or more likely, there is some senior person in the office who wants to check the work after every stage or in the case of multiple elements of work, wants to individually check every element himself or herself.
I recently came across an example where more than 30 percent of all elements of a workflow were with one person! The impact of this load on that person as well as on the rest of the team is imaginable!
Very clearly, such choke points have to be identified and eliminated from the workflow.
Defining roles and accepting competence
Another area where unmanaged workflows go out of control is when there is no clear definition of the roles and there is no acceptance of competence. Let me explain this. Consider an office where a file is moving from one person to another. Now, if each person thinks that the person(s) before them was not competent enough, then they will start checking everything or even redoing everything from start. Sounds funny? Look around and you will be surprised at how many instances you can spot of this particular problem. Add some perfection seekers into the equation and the problem worsens by an order of magnitude.
The only way of handling this is to clearly define the role of each person/team in the flow and to have every one accept the competence of others. So, to take the example of a magazine like DARE being created, there is a team of writers, a team of copy editors, and a team of designers and so on. If the copy editors accept the competence of the writers on the subject being written about, then their role becomes limited to language and presentation. Else they will end up getting all worked up about (and working on) the content and the scope of their part in the workflow increases to consume more time and thus extend the cycle time. Similarly, if the competence of the designer is not accepted, everyone would end up thinking about the design rather than concentrating on their task.
Okay, I can hear the questions. What if others are not competent? Who said the others are all incompetent and only you are competent? And even if that were true, wouldn’t it be easier to spend some time in building up the competence rather than spending forever in catching up on delayed workloads?
Another way of increasing competence would be to create teams which would crosscheck each other’s work on a given element rather than have everyone check everyone else’s work.
And finally, aligning and optimizing the workflow is not a one time effort. Over time, changes creep into what has been set up due to a variety of reasons. Changes in the business environment also would require re-optimization of the workflow. How frequently you need to re-look at your workflow would be a function of your business and the teams you have.
written by Neha_SmsKites, January 13, 2011
written by replica watches, October 08, 2010
written by Priyanka, June 02, 2010
|< Prev||Next >|