Wednesday, November 25, 2009

Workflow Components

The individual components that make up workflow are rules and associated actions — tasks, field updates, and alerts.

In general, a workflow rule is the main container for a set of workflow instructions. It includes the criteria for when the workflow should be activated, as well as the particular actions that should take place when the criteria for that rule are met. Every workflow rule must be based on a single object that users will choose when they define the rule, as this object then influences the fields that are available for setting workflow activation criteria.

For example, if a user defines a workflow rule for the “Job Application” object in an HR application, he/she will be able to set workflow activation criteria based on the values of fields like “Job Application Number” and “Status”. Users can also set workflow activation criteria based on standard fields, like “Record Owner” or “Created Date”, as well as fields based on the currently active user when a rule is evaluated, such as their “Role” or “Time Zone”.

When a workflow rule is triggered, there are many types of actions that can occur, starting with a workflow task (or step), which assigns a task to a user according to a particular template. Just as in Microsoft Outlook, tasks include information about something that needs to be done by a certain time, such as making a telephone call, creating an order, shipping goods, or paying an invoice. Typically, assigned tasks appear in a user’s “My Tasks” related list on their home tab (or page) and generate reminder messages that pop up when a user logs in.

When an administrator defines a workflow task, he/she provides default values for data fields like “Assignee”, “Subject”, “Status”, “Priority”, and “Due Date” for tasks that are generated by its associated workflow rule. Administrators can also make sure that a notification email is sent to the assignee when a task is automatically generated.

In additon, a workflow field update changes the value of a particular field on the record that initially triggered the workflow rule, while a workflow alert sends an email according to a specified email template. Unlike workflow tasks, which can only be assigned to users of the application, workflow alerts can be sent to any user or contact, as long as they have a valid email address.

A workflow rule can include any combination of these actions when the rule is triggered. For example, one rule might send out an alert and update two fields on a particular record. The action that one workflow rule takes can also trigger the execution of another workflow rule.

Workflow-enabled Applications

Many enterprise applications today come with built-in workflow management capabilities, such as the Salesforce.com Enterprise Edition on-demand customer relationship management (CRM) suite and its on-demand Force.com (formerly Apex) platform, Agresso Business World (ABW) or Exact E-Synergy, to name only some.

Microsoft Dynamics CRM too includes a workflow module that users can use to automate their business processes based on the rules, logic, and actions that they design. Microsoft has revamped the workflow functionality in Microsoft Dynamics CRM 4.0 so that it now uses the Microsoft Windows Workflow Foundation (WF), whereas previous versions of Microsoft Dynamics CRM used their own proprietary workflow engine.

The result of the revised workflow functionality is that users, administrators, and developers can design and create business processes using the workflow tools with new features and a new UI for creating and monitoring the workflow processes.

Windows WF provides a comprehensive programming model, run-time engine, and tools to manage workflow logic and applications. The Microsoft Dynamics CRM workflow UI relieves users and administrators from the need to interact with WF directly. Therefore, users do not necessarily have to understand the underlying workflow technology to create workflow logic in Microsoft Dynamics CRM.

As a recap, a built-in workflow provides a tool to help companies set up and define business process activities (including the proper sequencing) that involved employees can use when working with the enterprise system’s data. Conceptually, one should think of a workflow as an application or service that runs in the background, 24 hours a day, 7 days a week, constantly evaluating the data and the multiple workflow rules in the company’s deployment.

When the workflow service encounters a trigger event, it activates the appropriate workflow rules to run the workflow actions. Typical workflow actions include sending an e-mail message, creating a task, and updating a data field on a record.

By implementing workflow processes in the enterprise resource planning (ERP), supply chain management (SCM) or CRM systems deployments, users can enjoy many benefits, such as:

1. Ensuring that users track and manage their customer data and processes in a consistent fashion — instead of relying on users to remember the appropriate steps for processing data, managers or administrators can create workflow rules that will automatically determine the next required steps and assign activities as necessary;
2. Processing the customer data more quickly so that, for example, new sales leads or customer service requests are assigned and routed immediately upon record creation; and
3. Allowing users to focus on more value adding activities — instead of having to perform a large number of manual repetitive steps.

It’s About Process (or Ability to be Responsive) – Part I

After several years (if not decades, even) of painstakingly corralling and setting up all their custom data, objects, tables and whatnot, and making sure that these static and/or dynamic transactional data are secure, many enterprise applications users have realized that the time is long overdue for them to start looking at ways to make their applications more process-savvy.

Companies are increasingly trying to adopt and implement standardized (and yet flexible and easily modifiable) business processes to help their operations run more consistently and smoothly. For example, the chief executive officer (CEO) might decide that as of, say, next month “All customer service cases must be resolved within 24 to 48 hours,” or, “We are going to institute a new sales process for all deals worth over US$100,000.”

However, these business processes often get communicated to employees in an ad hoc and unregulated manner. A process document with instructions may exist on a network file share, but people have not the foggiest idea that it’s there. And some employees might rely on word-of-mouth information from co-workers (so called “tribal knowledge”) to learn the processes for their jobs.

Consequently, standardizing and instituting new business processes can prove challenging for most companies, particularly larger organizations.

Indeed, until recently most enterprise applications have hardly been anything more than glorified databases — they could hold all of the information users may need and allow users to search for records based on various criteria, but they could not really help users to perform the functions of their daily jobs more effectively.

There’s still often no native automation and agility within the system that lets, e.g., a recruiter instantly know when the status of a candidate has changed or when a new position requisition has been entered into the system.

Indeed, when any changes are made somewhere in the organization, users have to remember to notify one another of the change or else rely on others finding the updates on their own. Neither solution is practical in the long term and invites the possibility that the software solution or best practice will not be adopted consistently by all employees at the company.

How can one then build processes into enterprise applications so that users won’t need to, time and again, rely on manual (pedestrian) methods of communication to inform others of changes, increasing the risk that many issues will fall through the cracks?

Introducing Workflow Automation

To that end, a built-in or an external standalone add-on tool (or capability) that can be used to solve the process automation problem is called workflow automation (or workflow management). Some will refer to it as business process management (BPM), and we will shortly try to point out the differences between the two – i.e., workflow and BPM.

Traditional enterprise applications typically feature some built-in functionality, such as a human resource management system (HRMS) or a procurement application, with some capability to tailor the base functionality through parametric configuration options (e.g., via “order types” that entail different mandatory and optional “order steps”) that users have to learn by heart.

To be fair, some enterprise applications have introduced workflow capability into their products to give users some ability to control the process behavior of documents such as an invoice or an engineering specification. But in most enterprise applications workflow is implemented through hard-coding, which means that programmers must develop and maintain the code.

In addition, workflow automation of the typical enterprise application is generally limited to a single document or task routing. This usually means that companies implementing an enterprise application must choose between accepting the vendor’s pre-built business process behavior or paying the vendor dearly to make expensive modifications to accommodate more complex processes, which will then make upgrades either costly or impossible.

In contrast, a specialized workflow tool enhances a single task and/or document routing by providing an integrated capability to include rich user interfaces (UIs), system integration, rule processing and event handling.

Rules are necessary to determine which path users should take next in a process that has multiple possible paths, e.g., an order worth less than US$1,000 does not need manager approval, but over that amount it does. On its part, an example of event handling would be a necessary step after a product recall: a “pull from shelves” notification must be sent throughout the distribution channels.

These capabilities can be pretty powerful, since in general, if users can come up with a standard rule that specifies when a particular event should happen, they can make it happen automatically with workflow. In other words, workflow becomes the magic ingredient that transforms many traditional transactions-capturing applications from a glorified database into fully functional tools that basically everyone in the company should find useful.

What’s the User’s Choice Then

As said in Part I, the BPM market remains quite stratified, whereby there seems to be a number of powerful and full fledged BPM software packages (e.g., from IDS Scheer, Appian, Tibco, Lombardi, Ultimus, Fujitsu, Oracle-BEA Systems, Metastorm, etc.), many of which can be found in TEC’s BPM Evaluation Center.

BPM is considered one of the most overlooked trends in enterprise applications today. In fact, it is increasingly becoming a native part of the IBM WebSphere (best shown by the recent acquisition of ILOG), SAP NetWeaver and Oracle Fusion Middleware platforms and applications, which could be a glimpse into the future of modeling, workflow, re-engineering, and continuous change, all around ERP.

For a typical implementation that leverages a comprehensive on-premise (which is still a dominant deployment model) BPM suite, companies should count on forking out up to US$500,000 to address a few meaningful processes in their organization. Moreover, potential hidden costs include (all on top of already hefty investments in existing enterprise applications):

* Having to license and deploy multiple development, test and/or production environments to support multiple BPM initiatives;
* Additional application and database server licenses;
* Additional staff to provide the care and feeding of these servers; and
* Internal cost of direct involvement from business users to participate in process modeling, business rule definition, user interface (UI) design, testing and rollout activities.

At the lower end of the market there are a slew of workflow-based software packages addressing specific processes, such as bug or issue tracking systems. While upper-range BPM packages address complex business processes and issue tracking systems typically deal with one simple workflow, a number of workflow (possibly BPM wannabe) vendors like FloWare, Skelta, Red Maple, Web and Flo, Quask, XALT Technologies, ZyLAB Technologies, etc. are addressing a space in between.

How About Workflow (and Eventually BPM) On-demand?

But again, not many of these solutions are delivered in true no-frills software as a service (SaaS) fashion, as they still require significant hardware, software and professional service resources to be deployed on the customer’s site. Also, some business processes, although mission-critical for the company, are not transactional in nature and do not necessarily need to be part of the back-office database.

In fact, trying to capture every step and status of every little case (e.g., a customer’s product complaint or improvement suggestion that needs to be investigated by several employees) would only unnecessarily encumber the ERP or customer relationship management (CRM) database.

Maybe mapping only some critical data between the case management process and ERP database (e.g., for inventory or invoice adjusting purposes), and doing application programming interface (API) exchanges only periodically in a batch fashion might make more sense there.

BPM — Much More than Integration

BPM is often used to integrate multiple enterprise applications and various internal and external users into a new process, but it goes way beyond mere integration. Whereas traditional enterprise application integration (EAI) products help companies to move data between applications, BPM adds interaction with people and the ability to support processes, which then become as manageable as data.

BPM integrates existing applications, Web services and people in order for companies to quickly change, destruct or construct processes as required. Again, BPM enables a company to more cost-effectively and quickly model and change its business processes to meet the specific requirements of a particular business. Via BPM, people can be involved in two ways:

1. From a rank-and-file employee point of view — BPM represents units of work from the business process as tasks, whereby each task contains work instructions, status, priority, due date and other attributes. Workers use BPM to monitor and execute the tasks that are assigned to them or to the workgroup to which they belong; and
2. From a manager or executive point of view — Managers and executives use BPM to monitor process performance by viewing graphical reports that summarize task status and alert them to process bottlenecks. They also frequently get involved with tasks by participating in approval or escalation process steps.

Thus, many BPM products provide real-time monitoring and insight into the process operation. The process flow model of BPM allows management the ability to not only easily identify bottlenecks and inefficiencies in the process, but also to more easily modify the process to improve productivity.

For instance, with industrial (plant-level) BPM deployments, companies can digitize their work processes and close the loop on performance with actual execution data. By applying BPM in manufacturing plants, companies can manage and audit their production more effectively and consistently thus improving their conformance, compliance, throughput, and ability to deliver. They can also empower their workforce by integrating people and their roles and by customizing individuals’ work styles and decision-making processes.

Astute BPM suites that focus on manufacturing can enable companies to close the loop on production process improvement, digitize good manufacturing practice (GMP) tasks, standard operating procedures (SOPs) and work instructions. They can also enable corrective action/exception management, Hazard Analysis and Critical Control Point (HACCP) monitoring procedures, and also orchestrate high-level processes and manage data between various disparate systems and empower domain experts to solve production problems immediately on the shop floor.

For more information on BPM, see TEC’s earlier articles entitled “Business Process Management: How to Orchestrate Your Business” , “Giving a Business Process Management Edge to Enterprise Resource Planning” and “Business Process Analysis versus Business Process Management.”

Special credit also goes to CIO Magazine’s articles entitled “ABC: An Introduction to Business Process Management (BPM)” and “Making Workflow Work and Flow for You.” All of the above articles were quite leveraged for this blog series thus far.

It’s About Process (or Ability to be Responsive) — Part II

Microsoft, for example, informally demarcates the Microsoft Windows Workflow Foundation (WF) focus on “internal processes” from Microsoft BizTalk Server’s “external BPM” use. Namely, the first tool (somewhat of a BizTalk spin-off) is used for automating processes within an enterprise (and its enterprise resource planning [ERP] system), whereas the latter is intended for inter-enterprise process orchestrations across several disparate enterprise applications.

BPM Suite Components

Full-fledged BPM system components thus include visual process modeling: a graphical depiction of a process that becomes a part of the application and governs how the business process performs when companies run the application.

They also feature Web and systems integration (SI) technologies, which include displaying and retrieving data via a Web browser and which enable companies to orchestrate the necessary people and legacy applications into their processes.

Another important BPM component is what’s been termed business activity monitoring (BAM), which gives reports on exactly how (and how well) the business processes and flows are working (for more information, see TEC’s article entitled “Business Activity Monitoring - Watching The Store For You”).

Optimizing processes that involve people and dynamic change has been traditionally difficult, and one barrier to optimization has been the lack of visibility and ownership for processes that span functional departments or business units, let alone different enterprises. In addition, the industry often changes faster than information technology (IT) departments can update the applications set that the business relies on to do its work, thus stifling innovation, growth, performance and so on.

But today, the pervasiveness of Web browsers and the emergence of simpler application integration technologies such as Web sevices, simple object access protocol (SOAP), extensible markup language (XML), business process execution language (BPEL), etc. have enabled IT staff to deploy technology that supports the business process across functional, technical and organizational silos.

In the broadest sense, BPM components address the issues of the following: process modeling, documentation, certification, collaboration, compliance, optimization, and automation (i.e., via a workflow engine that is rule-based).

Again, highly functional, top-of-the-range BPM suites use graphical (visual) process modeling tools that enable business users and business analysts (i.e., those people that are most familiar with the process) to implement and manage the process definition. To complete any transaction, the BPM suite must also call on various siloed legacy applications that hold necessary information, for example, customer, inventory or logistics data.

But to the ordinary user the complex process that runs over many enterprises and various systems should appear seamless. End-users should be spared the effort of hunting down the scattered information themselves, since the underlying BPM platform provides tools for:

* Business analysts to model (and change) the business processes and define the business rules that control how those processes behave;
* IT departments to integrate the necessary legacy systems;
* Joint teams to build applications for the end user that enforce the processes and rules; and
* Management to review process performance (e.g., the required time to resolve client return exceptions) and even adjust process parameters in real-time (e.g., increasing the dollar value threshold during peak periods to trigger management review and approvals of client returns).

Therefore, the most vital BPM attributes would be the following: being event-driven, orchestrated, intended for both internal and external processes/customers, and leveraging human-centric workflow and business analytics.

With the leading BPM platforms/suites, everyone in the company will be working on the same shared data and process model, so changes to the process can be put into action very quickly. This is because these sophisticated platforms provide integrated process modeling, real-time process monitoring, and Web-based management reporting — all working in unison to support rapid process innovation.