Showing posts with label reuse. Show all posts
Showing posts with label reuse. Show all posts

Thursday, November 01, 2012

Decision oriented user assistance

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

  1. 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.
  2. 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:
  1. The application must know the business context of the user who operations within the application.
  2. 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...




Sunday, June 07, 2009

(re)use of content

(re)use of content is a common topic in almost each domain has to deal with content. the rational is obvious and easy: use of existing content is faster and cheaper than creating new one.

there are two major requirements to (re)use content:
  • you need a business object the content belongs to
    otherwise it is impossible to identify existing content and determine if this content is worth to use
  • you need a well defined information type the content belongs to
    only if you know what type of content you have to create allows you to identify if it may already exist
based on those two trivial requirements you can define rules in which case (re)use is possible:

if existing content is created for the same business object and for the same information type as the new content you have to create.

to extend this scenario you can deviate your content from existing one if either the business object or information type is also derivate from the content you intend to use.

to derivate a test case from corresponding use case is obvious and valid as long as the business object both belonging to are the same. if a certain engine exists in three variants each derivate from a common building block the corresponding content is obvious also valid to use and derivate.

as you see usage of content requires both knowledge and connection to the business and to the content itself.
because of this many (re)use scenario fails in the real world (look into your own domain -- do you satisfy with your content (re)use?)

if you look at the two dimension enables usage of content you might understand that in many cases the usage of content between companies might be higher than the usage of content within one company. in many cases competitors dealing with similar business objects and information types beside different departments within one company might not.

this means that if the information types are not critical for a certain domain cross domain usage of content will become a possibility once the information itself is interchangeable (thats a topic for its own).

usage of translation is one of the most obvious scenario for cross company usage. because translation becomes more and more a cost center but is also a business driver the usage of common translation memories between companies working in the same domain is of course thinkable. content already translated for nokia might be used by sony as well, same is true for BMW and Daimler.

the "Language Data Exchange Portal" shows how this might work. each member provides content and funding and can participate from the complete pool of data available. as better the content is classified as better the results each company has......more to come?