If you think about business applications (e.g. ERP, PLM, CMS) you get aware that the amount of functions in all kind of application increasing in each new version and most of those application are feature complete in terms of critical functions which are relevant for daily operations.
Does this means that the users are happy with the applications they have to work with? What is the problem of the most application which are available today?
Complexity is the major pain of todays software applications.
All major IT trends during the last couple of years leads to additional functions, additional user interfaces and at the end to complex applications.
Examples
- IT trend "mobile devices"
The trend to access services using mobile devices leads to additional UI which make an application accessible from a mobile device. Vendors wants to make their application mobile ready and therefore provide existing functions or a selected subset of the functions to mobile devices. In the best case they optimized the application behavior to the look and feel of the specific mobile devices.
- IT trend "social media"
The trend to socialize daily operation leads to new functions as well. You can now comment the work of your colleague right from within your application - great. In the best case you can collaborate on the same peace of object within your team.
Paradigm "Automation"
But all kind of extensions are focused around one single paradigm. "Automation" of tasks which substitute manual operation. This approach is the major topic for business oriented application since at least 20 years until now. You can calculate return on invest based on this approach without too much effort and thinking.
On the other hand most of the applications with adequate market penetration already implemented the tasks with measurable value otherwise they didn't win any software selection process.
So far so good. But what should happen next. Does the next two functions really provide enough return on invest to take the effort to upgrade the application? What might be a structure improvement and unique buying point for a business application in the future?
Paradigm "Decision"
Automation is all about efficiency. But at the end of the day each business process or each operational step results contains at least one valuable decision which drives the success of the process output and in many cases the value of result now and in the future.
Making the right decision is more related to ensure the effectivity of the process output without loosing efficiency.
How-To?
To setup an decision oriented application you need two basic principles:
- The application must know the business context of the user who operations within the application.
- The application must reuse the knowledge of already realized processes
Knowing the business context
This means the application is driven by the business process (the relevant subset which is in the scope of the application). In the most of todays business application the process simple fulfills the job to automate certain tasks and notify different users on certain events (based on states of a resources and state transitions). But the real process is not in scope of the application.
The IT Trend
BPM has found his way into many products and projects up to now. Even some business application using a BPM approach and infrastructure to implement workflows.
But there is no application out there which core is based on BPM. This mean that each operation takes place as part of an underlying business process, each function is more or less just a decision of the user how to proceed in the process and each automation is just a replacement of a human task.
Creating such an application means, you have to provide:
- A collection of automated tasks
- A collection of human tasks to request human input and choices.
- Triggers for a user or software to make a decision for the next step (e.g. select "edit content", "send to review", etc.)
- A backend that lets you model the process using the above building blocks and a back end which let you create, run and complete those processes
- A UI makes all of the items above visible to the user
Now all functions of the application a invoked in a well know context. So far so good. Sounds like a traditional BPM project, right? And yes there are already
LOB projects out there following this approach.
Reusing the business context
What is the next big thing? You are able to store all decisions of your users in the context of your persistent process and use the results to improve the decisions of other users.
In each process different users can learn from the experience of others or individual users can be guided to avoid making a wrong decision again - or reusing best practices from the past. To achieve this goal you have to use the collected information from previous processes and transform them into valuable guidelines for your users:
- show them what other users did when they are in the same context as the user currently have to do an operation
- prevent them from doing an operation which leads to errors later on in the following steps of the process based on the experience of previous processes
- show them additional information other users searched for in the same situation as the current user
- let them add guidelines for later steps in the same process
- let them attach additional information they always need if they are in the same context again (e.g. reference material for an operation, etc.)
- etc.
Also very obvious and easy things can be done:
- Only provide functions which makes sense in the context of the process (real context aware function) to reduce the amount of choices a individual user can choose from
- Identify functions no one use in a particular context to simple remove them or add hints / best practices for the users which makes this function usable
- Identify best and bad practices from what the users did and improve the process (the application) based on real world usage.
- etc.
With the availability of tools in the area of "Big Data" you might think of enhanced KPIs like
- identify patterns in the process leads to results not valuable to your business through querying the process, corresponding data and decisions and the results according of the question you have to answer.
- identify related choices in the process and the corresponding information as a baseline for process improvement
- etc.
Results
This kind of approach leads to
- structural usability
The application is possible to guide the users as much as possible and provide as much information as possible for its next relevant decision (operation)
- reduce complexity
Only provide relevant information, functions and user information which leads to reduced complexity for the user of the application.
- social experience (common improvement)
The application can share information, discussion and best practices in the context those information is relevant for.
- improved effectivity
Best practices can be established for all users based on real world experience - not only on theoretical thoughts.
- improved efficiency
Critical operations can be identified and additional automation can be added based on real world business value.
Too complicated and complex?
No that is not the case. Using todays IT tools available on the marked place makes this kind of application easy to implement (even the core subset of the mentioned approach as baseline for future extension).
BUT it is not possible to simple extend existing products with this kind of approach without re-implementing the core part of the application from scratch.
This means existing and strong vendors might struggle to do this - but in case you thinking about creating a new line of business application think about using a different approach than your competitors...