We’ve all heard this one: “Don’t automate a process until you optimize it.” That’s sound advice to avoid automating unnecessary steps or, worse, institutionalizing a completely broken process.
In the real world, though, business sponsors often are unwilling to embark on a lengthy business process optimization or re-engineering effort before they begin requirements gathering. At times the best that can be hoped for is to model the business process being considered for automation, and rationalize the process within the time limits given.
Having the business processes diagrammed for reference within a requirements document package reaps numerous benefits:
- It provides context to the software developers and designers, helping them understand how the steps being automated will fit into the overall business process
- It is the basis for validation that each step adds value, even when there is no time to complete a long reengineering or optimization effort
- People understand things in different formats, so while some of the audience will best understand verbal lists of requirements, others will respond to the visual depiction of a process model
- It serves as the basis for further process improvement or re-engineering efforts
- It is the first layer of traceability for the software development lifecycle
Modeling the Process
Business Requirements come in many forms, from hastily scribbled wish lists thrown over the transom to the developers, to monolithic Word documents that wade far into the technical weeds. Someone facilitating the elicitation of requirements can use process modeling to begin the discussion, and keep the business focused on the functions it needs to perform. This allows the business to concentrate on what is needed, and lets the software designers determine how those needs will be fulfilled.
As a requirements team works to understand and document the process in question, make sure a full picture of the process is illustrated, not just those steps expected to be automated. An overall process flow provides necessary context around the goals and objectives of the business. It may even uncover assumptions about steps that can be automated that haven’t been considered.
A simple workflow, with or without swim lanes, can be taken to the level of detail needed to fully describe the functions in view. Functional decompositions can be used in addition to, or instead of, a workflow. Either method allows the focus to remain on the functions to be translated into business requirements.
Validating and Rationalizing
Once a process model has been completed, have it validated by all groups represented in the swim lanes. It will be tempting to eliminate what appears to be low hanging fruit and do “just a little” optimization. Proceed with caution until there has been sufficient analysis of the upstream and downstream impacts of these changes. However, it’s fine to probe the business on why each step is performed. (Asking why five times can come close to the root cause.) If the answers are “because we’ve always done it this way”, or (especially) “this is a work-around because our old system couldn’t do this function”, there may be opportunities for careful elimination of non-value added steps before proceeding.
Adding the Technology Layer
There are several ways to add system information to a process model. For example, color code the steps that are in scope for automation, and indicate on the connectors whether the inputs and outputs will be human data entry, system-to-system interfaces, reports, extracts, etc.
Alternately, swim lanes showing each major system can be included, showing inputs and outputs.
When choosing a functional decomposition diagram, take it down to a level that is discrete enough to detail which steps will be automated and where the interactions will be.
Be cautious about stepping too far over the technical design line. This discussion is about business processes, not technical or system processes. Collaborate closely with the technical team to ensure that design assumptions aren’t part of the process documentation. However, indicating those parts of the process that are in scope for automation can be a valuable part of stating assumptions up front for further discussion and negotiation.
Tracing Requirements to Process Steps
Once the process model has been validated, and there is as much certainty as time permits that only value-added steps remain, creating requirements is easier. The lists can flow from, and be organized within, the higher-level models. Detailed requirements arise from drilling down into each of the steps, thinking through what is needed to complete the steps. Trace each requirement to the process step that it supports. If there are requirements without steps, it may indicate either that the process model is incomplete, or that the requirement is extraneous. If there are steps without requirements, verify that the list of requirements is complete.
The traceability matrix, by the way, easily extends beyond showing the relationship between requirements and process steps. Continue to use it throughout the development life cycle of any technology project to note relationships between requirements and Use Cases, Test Scripts, and design and code components.
Leverage Process Models for Use Cases
Use cases can flow logically from the business process model. While some believe that Use Cases are technical documents, the International Institute of Business Analysts (IIBA) recommends that these be completed by the business rather than IT. Like a business process model, the focus is on how the user (actor) interacts with the system and how the system responds to the user, not on the calculations, system to system interactions, and database activities that happen on the back end.
Requirements gathering is a collaboration between the business and software team. A business process model can serve as an important tool to foster the communication needed for a development project to succeed.