Sunday, August 22, 2010

BPM Implementation - Answers to couple of questions on LinkedIn BPM Group

Somebody asked a question on LinkedIn Group on BPM Implementation. The complete thread can be found at: http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&discussionID=27533047&gid=73876&trk=EML_anet_qa_ttle-dnhOon0JumNFomgJt7dBpSBA

Here are the two questions and what follows is my attempt at answering these questions. Comments are welcome – either here or on the LinkedIn group.

-------------------

BPM Implementation

My organisation is in the process of evaluating various BPM vendors based on a POC by each vendor. Looking for inputs in 2 areas:

1. We would like to restrict the BOM to 'must have's". Can someone tell me what should be the ideal BOM to keep the budget within control.

2. What scope of work should we engage the vendor? for e.g. Can we have 1 of our employees trained by the vendor on the process designer/modeler? The objective being that we can have the vendor setup few processes initially to restrict customization charges.

-----------------

My answers…

On your Q1:

You should be looking at some of the evaluation criteria from different vendors to get an idea about key functions/features of a BPM system. BPM is a very broad subject area and it can cover many different things depending on who you ask. At the minimal, I would look for following "MUST HAVEs":

  1. Support for system-centric business processes (Typically where humans are not involved). Usually the vendors support these using BPEL. Ensure the level of specification adherence for BPEL.
  2. Human-centric business processes where human actions are required to move through process steps and complete. Usually vendors support this through their own proprietary extension to BPEL or through XPDL.
  3. Document centric business processes where the documents are handled and processed through various steps both by humans and by system in some semi-automated fashion. Some organizations (or some departments within organizations) are heavy users of documents coming in (insurance companies, some government agencies etc.) where they have to process the documents, OCR them, categorize them into many different classes, route them to appropriate people, create responses or trigger the next steps in the process etc. Ensure that ALL appropriate parties in your organizations are represented in your "typical" process models.
  4. Integration of these three different business process types as for a typical business processes, you cannot depict and manage the process using just one of the constructs above.
  5. A modeling tool which can allow you to model, simulate (and allow you to optimize) and implement a process
  6. A design, development and testing environment where you can implement and test the processes (realize process models). Please understand that for implementing a typically complex process, you will be invoking a bunch of services, handing things off to humans for exception handling and other decision making and finally moving few documents around to support the process execution. This requires an integrated set of design, development and testing tool where you can design and implement the services, design and implement the processes, create test stubs and drivers and allow a set of developers to complete the implementation of the process. Also, look for new standard for integrating external services called SCA (assuming you are looking for Java centric BPM suites).
  7. Business rules design and integration is a new aspect which some vendors are introducing in their product line. If your business processes are constantly changing then you want to look at a rules engine.
  8. A way for humans to review the process dashboard to claim tasks, route tasks to others, timeouts and escalations etc. This is also known as a task inbox. Some vendors (e.g., IBM) implement such a user interface and also provide detailed APIs for you to build your own.
  9. Ask the vendors to provide some performance and scalability numbers (how many system-centric processes can execute at any given point of time, how does the system-centric processes scale for a standardized hardware platform that your infrastructure team has, how many in-flight human-centric business process instances can exist etc.). Of course, you will get typical answer that it depends and it does! It depends on the process complexity (number of steps, decision points, external service calls, data elements being transferred from step to step etc.). However, a good vendor will be able to provide some decent performance and volume numbers.
  10. Once you have a process built, it is time to deploy it, run it and manage the execution. Here you are looking for a robust runtime environment with robust monitoring capabilities (I am talking about infrastructure monitoring and not the process monitoring – that topic is next).
  11. Last but not the least, you are looking for Business Activity Monitoring (BAM) type of capabilities where you can identify the steps where the processes seem to get "stuck" or take the most time to complete and then you can analyze as to why. Most vendors with mature product offering will provide a good set of BAM capabilities using some reporting tools.
  12. Last but not the least, the change management process for processes. Imagine, 2 years after you have implemented a bunch of processes you want to make the change in the processes (add new steps, route the steps to different group of people – say outsourced to some external vendor, or some regulation changed and now you have to collect additional data items etc.). This is where the vendors should be able to provide the ease of change. The problem is how to apply the change to those "in-flight" processes.
  13. Licensing is another key issue. Depending on your deal size, vendors may throw in quite a few "freebies". However, think through some scenarios to ensure that a licensing model defined currently may change significantly if your process scenario changes and that will end up costing you a whole lot of money.


 

In summary, here are some MUST-HAVEs:

  1. Support for BPEL (which level)
  2. Support for human-centric business processes (how and which standards are used)
  3. Support for document/content within the process
  4. Modeling tools support
  5. Design, development and testing tools and standards support
  6. Performance and scalability
  7. BAM capabilities
  8. Change management
  9. License costs

On your Q2:

I would prepare a detailed list of evaluation criteria and ask them to provide answers to those criteria. I would also create a good representative process models from your business (remember – involve as many departments to create realistic process models). However, once you give them the process models, make few changes (just like businesses do) and see their reaction to those changes. For a serious evaluation, get involved in all aspects – modeling, designing, implementing, testing, deploy and monitor. If you have time and money, I would also run some performance and load tests to see how the process infrastructure holds up under heavy demands. The scalability will affect the licensing!

I would also do some "paper analysis" to short-list 2 or 3 vendors and then do detailed hands-on evaluation. I would also request at least 2 or 3 client references which went through such evaluation and picked a vendor. Ask those other clients as to why they picked that vendor. Remember, vendor teams vary quite a bit from client to client and the vendor teams involved in such evaluations also vary in their experience and knowledge.

And lastly some shameless plug! Engage my company Innowix to help with such an evaluation. We have a detailed methodology for such a technical evaluation along with some readymade set of evaluation criteria for BPM suite selection which you can start from.

Good luck.

Hiren

Outline of Business Process Management (BPM) education/training material

Here's a rough outline of the BPM material that I am putting together. I have quite a few items available in bits and pieces but I need to put them together in a coherent material which can be used for training different sets of audiences.

Any feedback will be highly appreciated!


1. What is BPM? Why is it important?
2. Business Introduction to BPM
  • a. Why is "Business" in the BPM important (duh!)? Or how does BPM help with the business value?
  • b. Relationship of Business Architecture and BPM
3. Technical Introduction to BPM
  • a. Reference Architecture
  • b. Industry standards
  • c. Tools and Products
4. Implementing BPM
  • a. BPM Maturity Model
  • b. Project level
  • c. Department or Organization level
  • d. BPM CoE
5. Upcoming technologies and Trends
  • a. New devices which improve business efficiencies
  • b. Complex Event Processing
6. BPM Governance
7. BPM Projects - Development Methodology (SDLC)
8. Business Activity Monitoring
9. Innowix methodology for BPM implementation

Innowix Services Overview


To provide effective services in the IT domain to our clients, Innowix has created an architecture framework which helps guide execution of various types of IT projects ranging from Business Process re-engineering to simple infrastructure deployment. These IT projects can vary in size and scope and can encompass projects around definition and implementation of IT Strategy, Application Modernization programs, Enterprise Architecture programs, specific business systems development, technology implementation and infrastructure implementation.


 



Following diagram provides a high-level view of Innowix Architecture Framework.


 




Figure 1: Innowix Architecture Framework


 

 


The Innowix Architecture Framework consists of various areas predominant in Information Technology subject matter. The Innowix Architecture Framework consists of methodologies, guidelines, checklists, best practices and tools where applicable for effective execution of projects in respective areas. It also serves as a great reference for defining and managing overall IT Strategy for an organization. This architecture framework can be applied in managing and rationalizing the IT resources and assets in case of mergers of one or more business entities.


 

Innowix has successfully applied this framework for helping Transportation Cabinet of Commonwealth of Kentucky in defining their 5-year IT Strategy and Roadmap.


 



The Innowix Architecture Framework has following main subject areas and four supporting subject areas. Innowix services are organized around these subject areas:

 


Main Subject Areas of Innowix Architecture Framework and related services are:


  1. IT Strategy
  2. Business Solutions
  3. Technology Platform
  4. Infrastructure
  5. Enterprise Architecture
 

Supporting Subject Areas of Innowix Architecture Framework and related services are:

  1. Project and Program Management
  2. Information and Data Governance
  3. User Experience
  4. System Development (Processes and Tools)
Following diagram shows details around services by area:





Figure 2: Overview of Innowix Services

 

More details on Innowix services can be found on Innowix website at
http://www.innowix.com.

Saturday, August 21, 2010

Application Lifecycle Management (ALM)

Application Lifecycle Management or ALM is a way to bring process management discipline to the software development area. Of course the main set of artifacts you manage within ALM are software development artifacts including requirements, design, code and test.

There are tons of tools which manage source code but there are not many tools around which do a good job of end-to-end traceability and management of the software artifacts and provide management tools. IBM has good set of tools and Microsoft's TFS is closing the gap. However, requirements management area is where there's tons of opportunities to optimize the processes with mature tools.

I am reviewing Jazz and IBM Team Concert platform to see if it allows third-party requirements management tools or not.

Of course, older I get I am realizing that the usability (or ease of use) is critical for successful usage of any tool. Installation and maintenance is secondary and IBM has to simplify installation and management aspects for their Rational tools.

Here's something new from Microsoft:

Visual Studio Database Guide

Friday, July 23, 2010

Envisioning and Pragmatic execution - Two faces of progress

Hesitating to act because the whole vision might not be achieved or because others do not yet share it, is an attitude that only hinders progress – Gandhi .

Very inspiring and encouraging words! Just because a road is not there or a path not taken or something is not done in usual way doesn’t mean that the current status quo is the best option. Similarly, constraints are drivers for innovation often to try and find alternate ways of doing something and means of achieving one’s goals. That’s one of Innowix’s core values. We strongly believe that constraints (technological, financial, political or business) drive to innovative thinking and approaches and we see these as opportunities rather than constraints.

Of course, this philosophy also has to be accompanied by some pragmatism. Envisioning without constraints is great but execution has to be grounded in reality and pragmatism. I am sure all of you can relate to this easily.

That’s the dilemma I am under. There are tons of product/framework ideas that are I am thinking about. However, there are many constraints – mainly financial (read CASH FLOW!) which keep me firmly grounded in reality. Some of these ideas are simply incremental in nature meaning take something somebody has done and add to it to bring additional value. Some of the ideas are quite radical and when I talk to friends about those, I get very cold or unwelcoming reception. But then I remind myself of this quote and keep telling myself that I have to find ways to convert my vision into reality and I am working on those things!
So, dear friends, please keep those negative criticisms and comments coming. I need to hear that to better my vision and build a better case grounded in reality.

Thanks.

Tuesday, June 17, 2008

Follow-up on my earlier post on “Gadgets/Widgets in the Enterprise”

This is a follow-up to my earlier blog post on Gadgets and Widgets in the Enterprise.

I am currently engaged at a client who is developing an enterprise application to manage their customer records. Their entire business revolves around their customers (well – if you are a hospital then your business revolves around your customers – patients!). The business users need to review information about their customers in near real-time and make decision and provide updates.

They have engaged a product vendor who had an existing product to manage this information. The product vendor’s architecture approach revolves around the gadgets/widgets based approach. They have broken down the user interface into many small blocks (which they call portlets). These portlets are put together into a page and displayed to the user. The pages and portlets are implemented using a combination of HTML and heavy JavaScript and are rendered to the browser (along with bunch of ActiveX for charting etc.).

The user has some flexibility to select number of columns to display portlets in. The vendor can control which portlets the user cannot remove from the page or move from its current position.

However, there are few problems with this approach.

1. These portlets have very limited capabilities to communicate with each other which force them to implement very self-contained portlets. This results in some duplication of code across portlets.

2. Their portlet runtime on the client-side is not based on any standard JavaScript library which makes it difficult to manage and maintain in long run.

3. Their server-side implementation is not based on any industry standard runtime (e.g., ASP.NET, JSP/JSF etc.) which create major hurdles in enterprise integration. For example, if they wanted to take few portlets and deploy it in their enterprise portal (say on SharePoint or WebSphere Portal), they will have to re-write these portlets as SharePoint web parts or WebSphere portlets. This defeats the whole purpose of “reusable enterprise gadgets/widgets”.

4. The portlets do not invoke loosely implemented services at the backend which make it extremely difficult to use enterprise data with other departments, agencies and business partners.

Given these issues and the fact that there’s a lack of enterprise SOA approach and enterprise repository for services and gadgets/widgets, the portlets usage will be restricted to this product implementation.

Hopefully a future version of this project will address some of these issues and make it easier for IT to deliver on the promise of business agility and flexibility using approaches such as SOA and Enterprise gadgets and widgets.

Until next time…

Tuesday, February 19, 2008

Gadgets and Widgets in the Corporate World

Introduction

It is interesting to see how Google, Yahoo and Microsoft are slugging it out for yours and mine eyeballs. One of the latest tactics is to deploy Gadgets or Widgets that you install either in an online composite portal page or better yet on your desktop.

I guess it is easy to get the composite page implemented on the Internet (check out http://dropthings.com/ - looks just like http://www.igoogle.com).

I am more interested in the desktop based composite applications or “Desktop Portals”. The idea is very simple – install some type of runtime environment which can allow installation of various gadgets/widgets – small self-contained applications and let users personalize them with their preferences. In return, you get to understand the user’s interests. If you are Google, Yahoo or Microsoft, you can easily track who you are and what your interests are and potentially target you with ads which you are most likely to view and click (ka-ching!).

Things get interesting for you as an application developer, when you are targeting both web world and desktop world and trying to keep things in sync. How do you develop a single gadget once and deploy it either on the web (say for iGoogle) and then also for running on the desktop? I am yet to do research on the existing products available from “Big Three” to see how transparent things are for them. At least Google states that these two are separate environments and require different tooling and technologies. I will confirm that in few days.

My Experience with Google’s Desktop Gadgets

I tried out Google’s Desktop widgets development and it looks pretty straight forward. There’s an XML file which describes the layout of various elements to be displayed (labels, buttons etc.) and then there’s a JavaScript file where you provide various event handlers. Then there’s the manifesto file – gadget.gmanifest – which provide metadata about the gadget. That’s about it. You double click this gmanifest file and it loads the gadget into the Google Sidebar. Obviously I just looked at the “Hello World!” gadget so I am simplifying things a bit but you can pretty much do anything including call native OS facilities. Google also created a lightweight IDE to let you visually develop the gadget a bit. However, you are better off using some other IDE of your choice. I recently found this Notepad++ (http://notepad-plus.sourceforge.net/uk/site.htm) as a Notepad replacement and it is awesome! Check it out.

Adoption of Gadgets within Enterprises

Now, going back to the Desktop gadgets: I could not help but think as to how can we bring this simplistic development paradigm to the corporate world! This is how I see things happening:

1. Build a lightweight runtime environment for desktops/corporate web portals to host gadgets/widgets. Let’s call it AcmeDesktop for Acme Corporation. This runtime should handle security, inter-widget communication, auditing, tracking and metering, service invocation (SOAP/REST etc.) and basic user interface styling etc.
2. Create a developer’s guide/cookbook and possibly a customized IDE (use Eclipse and provide plug-in for AcmeDesktop development.
3. Create an asset repository for hosting gadgets – extend Rational Asset Manager or similar products (LogicLibrary or ComponentOne or something similar) to host these gadgets.
4.
Let’s power users develop composite applications by selecting the gadgets they want.



Examples of Enterprise Gadgets

I can think of few gadgets in the corporate world:

1. Dashboard gadgets – to display corporate KPIs or departmental KPIs
2. Unified communications gadgets – IM, Phone, e-mail etc.
3. Calendar and meetings gadgets
4. People lookup gadgets (and picking a person will trigger a message to the unified communications gadget for it to display that person’s status and whereabouts
5. Twitter for Corporations – A gadget to find out who is where at any given point of time – tie this to the security badges or RFID and you will be able to pinpoint the person you are trying to find (problem is that you can no longer hide!)
6. “To-do” gadget – For personnel doing repetitive tasks (such as case workers handling cases for health services), give them their view of Inbox through a gadget and clicking an item will open detailed application view (and if the application is built on the same platform then it will activate few other gadgets to display the demographics information about people involved in that case, case history gadget will display history info, case decision details gadget will display the decisions made and routing gadget will allow that user to route the case to somebody else).
7. Time sheet gadget – will allow you to easily keep track of time spent on various projects and also show a personal dashboard of the time spent by projects, by week, by day etc. Your boss will have another gadget which will show timesheet information for all the people reporting to him/her in an aggregated fashion.
8. Reminders/Alerts gadget – To remind you of all the corporate/admin stuff you have to do (like filling out the timesheet, completing the expense reports etc.)

Integration of SOA and Gadgets and related Ecosystem

Anyways, I digress – The point is that just like SOA’s value is in creating reusable services which can be composed into a composite application, I strongly believe that the next wave is about the gadgets and widgets which will internally use those services which were created when SOA was implemented and various services were created. All the issues that we saw with SOA – repositories/registries, governance, security and composition etc. will have to be revisited for gadgets/widgets.

I also see a move by Microsoft and probably IBM to create a generic “Corporate Widget Runtime” environment based on their technologies. Microsoft already has this in form of Vista Sidebar. This generic runtime will allow the corporate architects to customize it for their needs (e.g., enforce certain security standards, disallow removal of certain gadgets, enhance with additional auditing and tracking etc.) and then allow the building various corporate applications.

I also see various SaaS and product vendors providing gadgets/widgets which can be plugged into the generic “Corporate Widget Runtime”.

Realizing the Vision for Corporate Gadgets

So, what do we need to achieve this vision?

1. A standard describing the gadgets/widgets runtime environment. Does anyone remember OLE, ActiveX etc.? We need something similar but much more open and loosely coupled
2. Stronger typed and compile language to implement the gadgets/widgets. I guess JavaScript is “good enough” and may win in long run (like HTTP won over CORBA and RPC due to its simplicity)
3. A set of standards for inter-gadget communications
4. A standard and related framework to define, deploy and enforce various corporate policies for the runtime
5. A set of standards and development practices for gadgets and widgets (including registry/repository for storing and publishing the same)

Now, if you have not checked out, please review this W3C working draft - Widgets 1.0 Requirements W3C Working Draft 9 February 2007 at http://www.w3.org/TR/2007/WD-widgets-reqs-20070209/.

Nice start I guess! The document states:

This document specifies the design goals and requirements for a specification that would standardize the way client-side web applications (widgets) are to be scripted, digitally signed, secured, packaged and deployed in a way that is device independent.

Let’s see how this working draft gets matured over the period of time.

Available Technologies

For corporate developers, we have few choices when it comes to the Desktop Widgets.

If you really want to leverage an existing runtime environment, then Vista Sidebar is the de facto choice (unless you are an Mac shop then you can also use Apple Dashboard!). You can also choose Google or Yahoo runtime if you wish, however, I cannot comment on the richness of the platform, availability of APIs and the integrated policy framework.

If you want to build a “Corporate Gadget Runtime”, then you have following choices:

1. Use Microsoft .NET and WCF, WPF and WWF technologies – very rich set of development APIs and environment. It might be appropriate to develop the runtime using this but gadget development should be highly simplistic
2. Explore Microsoft Silverlight – the upcoming platform to compete against Adobe (This is a case of a traditional developer centric shop going into design world)
3. Adobe Apollo – Very rich environment for graphics and multimedia experience. I am not sure of their strengths when it comes to corporate development needs. May be in next year or so they will be mature enough – or if IBM or Oracle buys them out then it is a different story.
4. Eclipse Rich Client Platform – A very good platform to choose but you will have to simplify things significantly for your developers. IBM is betting on this and have built their next generation of Lotus offerings on this. Keep watching them.
5. I am sure there’s more that I am forgetting. I would love to hear your views/opinions on this.

Summary

Gadgets win hands down when it comes to simplicity of the development, deployment and use by end users. That is the huge plus for the gadgets.

The gadget development and adoption will be driven by the “Big Three” and corporations will eventually embrace them just like they have started to incorporate Web 2.0 technologies within their corporate IT strategies and infrastructure.

The corporate adoption of gadgets is a natural progression of the SOA; however, it will take couple more years before corporations start considering gadgets seriously.

A whole new ecosystem will get developed for gadgets driven by “Big Three” and supported by developers and SaaS vendors alike.



As I always say, we live in very interesting and dynamic times and things get much more interesting day by day. Until next time…

Hiren