Sunday, June 13, 2010

Business Process 0NF - Process? We don't need no steeenking process!

People piss me the hell off. I go into the first meeting to discuss a new "feature" with the users, and it usually starts off like this: "I would like you to add two fields here, and change this form so when you click this button, it does that."

This pisses me off. Big time!

Why? Because I said this was the first meeting to discuss the "feature". I haven't even been told what the requirements were, and already, the users are presenting me with a design. They're just thinking in terms of hacking the existing application to do what they want; they don't think about if it makes sense in the application or if it will break other systems that depend on this one.

10 years later, we end up with a Frankenstein's Monster of an application that does a lot of one-off things that one user asked for 5 years ago, but left the department 2-years ago and no one has touched it since. Why does this happen?

It's because the users don't know how to manage their company's business processes, and in fact, they probably don't even really know what they are.

What is a Business Process?

A business process is the way your company does something. That's it. If anyone tells you different, they're snake-oil salesmen or don't actually understand it. Some people think business processes are the things you design in BPML tools and use SOA for. Bzzzt! Wrong, thanks for playing. We have some lovely parting gifts back stage.

A good business process reduces stress, gets things done, makes work easier, and helps programmers give you what you want. Why people fear them is beyond me. But after working in Corporate IT for 10+ years, I have come to notice a pattern of maturity in business processes.

The first pattern I ever figured out was...

0NF: Business Process? What business process?

At this stage of immaturity, there are no business processes. Anything they do is by custom and habit instead of people sitting down and thinking about it. There is nobody is in charge – nobody dares take charge. Goals, processes and responsibilities were arrived at by accident. The day-to-day goals were developed unconsciously as employees did what they thought they should be doing. No one ever goes back and double checks that the goals are the same as the company's.

Most of the processes were created by people arguing over who was supposed to do what. They solved problems as they happened. A lot of the time, an individual, on their own, will decide what they are responsible for and unilaterally decide what other people were responsible for. They don't talk about it out loud—they just assume it in their heads and acts that way until someone corrects them.

The end result: everybody has their own incomplete and different ideas about what the business processes are and who is responsible for what..


  • There is someone called a Manager or Leader, but they don't seem to really understand the business'

    • They don't enforce any of the company's standards
    • They don't take charge to make sure the new business process is planned
    • They don't coordinate with other people who will be affected
    • They strongly defer to their underlings to decide things and never interferes.
  • When a problem occurs, new business policies are discussed in e-mails and meetings and arrived at by consensus by a small subset of people

    • Not all the people who should have been there are invited.
    • Example: billing clerks devising new rules for billing customers without involving anyone from the Finance department or Customer service!
    • Yes, this actually happened. Luckily, I stopped them in time and forced them to ask the people they were supposed to ask. The resulting conversations revealed a rather major hole in the company's business rules, so the Ones With Power are now discussing it to figure out what should happen. If we didn't, my users could have been reprimanded for over-stepping their authority and incorrectly over-billing. It also turned out the public safety group also had some concerns.
  • When a new business process is defined, the smallest possible set of people are informed and the rest are kept in the dark.

    • Big warning sign: certain people are deliberately left in the dark to avoid those people "causing problems".

Problems It Causes

  • A small group starts doing things their own way and feeding unexpected information to other groups causing
  • ... QA problems
  • ... application crashes
  • ... incorrect reporting
  • ... in some cases, causes the company to violate laws and statues!

Fixing 0NF: Creating a Business Process Process

The sad thing, it's pretty easy to come up with a process for business processes.

  1. Define goals: What are we supposed to be doing?
  2. Define externalities, phase 1: Does someone depend on us to do something? If so, what?
  3. Define processes: How do we do what we are supposed to be doing?
  4. Define externalities, phase 2: Do we depend on someone to do something? Do they know that?
  5. Define roles: Who is responsible for doing this process and making sure it's done right?

That's. It. Seriously. Get your frikkin' act together and create your business process process today!

No comments:

Post a Comment