What is Functional Process Decomposition?
Functional decomposition had several definitions, the most common of which is from the field of mathematics, but that’s not what I’m referring to here. I don’t mean “function” as in f(x) = 3xy + 5.
Functional decomposition is also a concept that’s used in the fields of Knowledge Representation and Reasoning, Artificial Intelligence, and Machine Learning. I’ll spare you the gruesome details, but functional decomposition is a methodology for breaking down and organizing complexity so that a computer (or person) can use information from the real world to navigate through hard problems and complex tasks. Is this beginning to sound like Greek? Don’t worry. If you’ve ever seen a logic tree or decision tree, you’ve seen a problem that has been functionally decomposed.
The model of functional process decomposition that I’m going to be describing in this post is a very clean, simple, goal-oriented example of something called a Work Breakdown Structure (WBS), which is a common tool used in project management. The primary difference between a traditional work breakdown structure and the model I describe below is that the model below isn’t a project management tool, it’s a process management tool. If you’re like me, you weren’t born understanding exactly what the difference between a project and a process is. Here is an article that talks in much greater depth about the nuances of the project/process dichotomy, but I’ll cover it in this post very briefly.
A project is a unique, one-time endeavor with a very specific output, like a specific skyscraper or a certain couple’s wedding. A project is structured and actively managed to meet a context-specific and user-specific set of criteria for success (usually “on time and under budget”). It’s a thing to be managed and executed according to a very detailed plan. In contrast, a process is something that repeats, so it’s something that can and should be engineered, re-engineered, and optimized so that it runs more smoothly with each pass. Since a traditional work breakdown structure is a project management tool used to manage large project teams, tight timelines, and big budgets, it’s extremely focused on costs, due dates, and delegation of work. You won’t see any of that here. What you’ll see instead is a focus on domains of work, workflows, tasks, and goals, and an emphasis on thinking about how to maximize effectiveness and efficiency more globally and across time.
How to Functionally Decompose a Multi-step Process
The easiest way to functionally decompose a process is to start by clearly defining the output the process is intended to produce. The more clarity and specificity you can add here, the better. Don’t worry about having all of the details from square one. Start with a very broad, general explanation and then unpack it further. For example, pretend I’m a coach for young entrepreneurs. I want to help them think through the specifics of getting their new businesses up and running, so I create a process named “How to start a business” that I think many of the people I coach will gain value from moving through. The broad-brush goal is self-evident; I want someone to have a business up and running when they’re done with the process I created. But clearly that’s not all I’m solving for. If at the end of the day, the people who use my process have all launched businesses that are hemorrhaging cash and that have no reasonable expectation of making a profit in the future, or if they’ve launched businesses that are riddled with operational and legal problems, I’ll be a little grumpy.
Step 1: Consider Using Functional Domains of Work
I can start to unpack my, “How to start a business” process by looking at the functional areas of work each entrepreneur will need to manage. To have successful businesses, they’ll need to manage, at the very minimum, the following functional domains of work:
- Idea and Market Validation
- Business Model
- Legal Structure
- Product Development
- Human Resources
- Marketing and Sales
By identifying distinct domains of work that need to be considered, I’ve created a high-level functional process decomposition of the process for starting a business. If you’ve got more than two or three domains of work after the first pass of decomposition, it probably makes sense to break each domain out into a separate process rather than to roll them up into a single one. Conceptually, the distinction is arbitrary, but it can be a lot easier to break it up into separate processes if you’re using a software program to create the process.
It’s also not always the case that you’ll need to break down your process into domains of work. If I were designing a process called “How to install your new garbage disposal,” the idea of breaking that down into distinct domains of work is pretty laughable. I’d probably just create one or two workflows, which is what I’ll be talking about next.
Step 2: Create Workflows
The next step is to take each domain of work (or the whole process if you didn’t use domains of work) and break it down into workflows. A workflow is a series of tasks that results in the achievement of some meaningful goal or milestone. Below, I’ve broken down the Legal domain of work from the example above:
- Legal, Workflow 1: Legal Structure
- Objective: Select a legal structure for the business
- Legal, Workflow 2: State of Incorporation
- Objective: Decide what state to legally organize the business in
- Legal, Workflow 3: File Articles
- Objective: File the company’s Articles of Incorporation or* Articles of Organization with the chosen state
*The “or” in that last bullet point is pretty important – I’ll get back to that shortly…
Step 3: Create Tasks
Now that I’ve identified the workflows that need to be completed within the Legal functional domain, I can start breaking my workflows down into ordered lists of tasks:
Workflow: Legal Structure
- Task 1: Generate a list of possible legal structures to consider.
- Task 2: Research each legal structure to understand their similarities and differences.
- Task 3: Research how other businesses in my industry are structured, and why.
- Task 4: Understand the tax and legal liability implications of each structure.
- Task 5: Understand the ongoing tax and legal costs of maintaining each legal structure over time.
- Task 6: Decide which legal structure to adopt.
Once I’ve identified each task, my process will be of much higher quality and of more use to people if I attend to a few more details. For each task:
- Write text for each task to explain how to do it.
- Provide any resources that would be needed or helpful in completing each task. (This includes spreadsheets, videos, etc.)
- Explain whether the tasks in each workflow can be done in any order or if they have to be done in a specific order.
- If I’ve included any tasks or workflows that are optional rather than required, the people who go through my process should have that information so they can decide what to do and what to skip.
Workflow Controls: Designing for Variability
Remember the “or” from above? “Or” and “if” are important words in process design that you should always be on the lookout for. They signal the fact that there is more than one way to proceed. How a person will (or should) proceed might depend on a variety of different factors. You need to segment your audience. Sometimes, the best way to move forward depends on a circumstance that exists, like the weather, the state you live in, or your age. Other times, the best way forward might depend on the outcome of some event that is beyond your control, like a judge’s ruling, or whether your car’s engine starts when you turn the key. In still other circumstances, the best way forward may depend on the judgment or preferences of the person moving through the process.
“Or” and “if” signal that there is a fork in the road, and that the best way to move forward depends on something. In everyday life, when we’re giving advice to someone about how to move forward, we have a simple way of gathering the information we need. We just ask. Then, we adjust our advice accordingly depending on the answer they give. In this functional process decomposition model, we’ll call that question/answer combination a workflow control. A workflow control is the combination of a question and that question’s answer set. People with different answers will be given different paths forward.
Returning to our “How to start a business” process, I’m going to create two audience segments by assuming that all the entrepreneurs I coach are people who want to start either a corporation or a LLC. The workflow control contains the question, “Which kind of business are you starting?” The person moving through the process can then give one of two answers: Corporation or LLC. These options are mutually exclusive – you can’t answer both ways. The option set I’ve created is not collectively exhaustive. If I’m going to make the people who go through this process choose one answer and only one answer, I’d better be pretty darn sure that nobody I’m coaching actually wants to start a sole proprietorship or partnership, because LLC and corporation are the only two answers I’ve provided.
For those visual learners among you, here is everything I just described above in visual format. As you can see, people who say they want to start a LLC are shuttled down a different path than people who say they want to start a corporation.
That, in a nutshell, is how you functionally decompose a complex process. Not so bad, is it? The output of all your hard work is that you’ve created a logic tree that can walk someone through your process. However, if you look back at the diagram I created above, you’ll see that it’s kind of hard to do this in a flow chart format. The single-screen or single-page nature of a flowchart makes it impossible to include sufficient detail for each task, and it’s graphically inelegant to try and find ways to represent functional elements of the process like whether something is optional or whether a list of tasks can be done in any order. The flow chart representation has some significant limitations. You can work around this by creating the content and rules associated with each object in a separate document or PowerPoint slide. Alternatively, you can use a business process guidance software package like Navitome.
Whichever resource you use to move through your functional process decomposition, it’s an incredibly powerful tool. One of the most challenging aspects of using this tool effectively and efficiently is using a Workflow Control to segment your audience. In fact, not using audience segmentation properly is one of the bugbears of new process designers. You can read more about the pitfalls of audience segmentation and how to avoid them here.
I’d love to hear from you in the comments below. What other methods of process organization and decomposition have you found useful?