The conversation typically starts out with: "We've got this process around X, and there are three paper forms and one spreadsheet that all of the Production Managers fill out each month . . . . . ". The client proceeds to describe an innocent little process that over the years has morphed into a monstrous, soul devouring monthly chore dreaded by Production Managers everywhere.
This is the part where I get excited; "A business process to automate! Paper forms to eliminate! Busywork to decimate! People to make happy!" I think gleefully to myself.
Then the client hits me with that old one-two punch: "There's this one form, in the middle, that we want to track a little better, can we whip something up quick and cheap to iron out that one wrinkle?" This is the part where I die inside, just a little bit. Sure, we could use some bubble gum, some duct tape, some chicken wire, we could patch something together that is slightly better than what we have now, but why? Why even bother? Either fix it, and I mean *really* fix it. Or just leave it alone.
And even though I know the answer already, I always try: "Look", I say, "there are some really great ways that we could streamline the entire process, Production Managers won't have to look up SKU's (or whatever) in System A and write them on paper, only to have them re-entered in System B by Betty Sue in Accounting".
And I always get the same response, "Oh yeah! That would be great, but we don't
- have the money, or
- have the time, or
- have users that could handle the change, or
- want to do that now, we're going to do it in three years"
Fix It (And I Mean *Really* Fix It)
If you are going to start tinkering with known bad business processes in your organization, you either have to just fix the entire thing, or don't bother. There are lots of good reasons to improve processes in an organization: getting better, cleaner data; getting data faster; eliminating manual tasks that could be automated to free up time for more productive activities, etc. However, making an incremental improvement to something that is working poorly often isn't worth the effort for a number of reasons.
First, the time it takes for someone to ramp up on a process and the time it takes to troubleshoot, debug and deploy a patch to an existing process is always dramatically underestimated. Even a "quick" solution ends up taking a disproportionate amount of time given the normally small incremental improvement to the project. The return on investment for a small fix normally isn't a positive one. If you are going to get in and figure out the entire sordid mess, you may as well go a little bit further and just fix the thing.
The "just make a quick fix" mentality is normally accompanied by the "we'll just have users test it" and the "it's a small change so it should be easy" mentalities. None of these are good. Trying to fix a part of a broken process will often result in a more broken process rather than a less broken process. To make the small change in the right way, you have to understand the entire system, and create a test strategy for the entire system. If you've already done that, why not make the code changes to fix the entire system.
Most importantly, if you don't fix the entire system, (almost) no one cares. An incremental fix to a painful process is like fixing a cavity half-way. Even though the pain is less, everyone is still in pain. The people that do care: the accountants. You've gone to the well once for money for this system and now going back again is going to be twice as hard. And, everyone is still in pain.
Leave It Alone
If you can't *really* fix the problem, then just leave it alone. Explain to the powers that be that to mitigate the risk of breaking the process in yet another way, you'd need to spend more money. Explain that ramping-up a developers on the process and the system costs money. Essentially, testing and ramp up are fixed costs -- that money is gone whether you fix 1% or 100% of the problem. Let the problem fester. Leave it alone until it causes so much pain that someone in the organization is willing to pony up the dough to fix it the right way.