Showing posts with label Business Process Management. Show all posts
Showing posts with label Business Process Management. Show all posts

Saturday, January 6

Is blockchain viable for a Business Process Management solution?

When we talk to people about Blockchain we realize people seem to have various perceptions that is formed in the context of Cryptographic Currency and since the technology is incubation I guess each perception has to be respected. After 19 years in the industry working for fortune 100 clients I have acquired habit of doing postmortem of each new technology and try to predict the acceptance of the technology. I have been proven right on many occasions and not so right on few occasions.

I agree with people who looks at Blockchain an interesting technology advance that may solve some challenges (and create new challenges) but I don't agree that blockchain is he biggest thing since Internet as some people claim, in fact it is far from maturity and at the most it is a good prototype according to me. Taking a step back.

What is blockchain?

A block is the ‘Current’ part of a blockchain which records all of the recent transactions, and once completed goes into the 'Chain of blocks' as permanent data record. Each time a block gets completed, a new block is generated. There is a countless number of such blocks in the blockchain. The blocks are linked to each other like a chain in proper linear, chronological order with every block containing a hash of the previous block.

 And what is blockchain in Bitcoin context?

A blockchain is a public ledger of all Bitcoin transactions that have ever been executed. It is constantly growing as ‘completed’ blocks are added to it with a new set of recordings. The blocks are added to the blockchain in a linear, chronological order. Each node (computer connected to the Bitcoin network using a client that performs the task of validating and relaying transactions) gets a copy of the blockchain, which gets downloaded automatically upon joining the Bitcoin network. The blockchain has complete information about the addresses and their balances right from the genesis block to the most recently completed block.

So whats great about Blockchain in the BPM context? 

Have you implemented workflow solution where a work-item has to pass through different people who work on it in a sequence before the work-item is processed and work is flagged as complete? Or maybe implemented a BPM solution where a business process has multiple tasks and has interface with multiple internal systems for validation and reference data which makes the process slow and consumes resources. What if each work-item in a business process was 'Smart Work Item' and could carry all the data references required to process the work item so that network IO was minimum? The processing would be faster, we would eliminate wait times and dependency on related tasks and business would run with optimum efficiency. I am assuming you are familiar with BPM so I wont give examples to explain the above statements. This can be achieved by a distributed ledger  (as in Bitcoin Blockchain) or a Smart Business Object (as I like to call it) that is accessible only to the authorized parties across the internal or external network.  The Smart Business Objects (SBO) are encrypted data objects with a private and public key and they can be viewed, updated by the authorized parties but they cannot be deleted by anyone and at the end of business process flow/s, when the life of the SBO is over the object would still be available on the internal network in view only mode.

We implemented something called as a BPM Workflow Reference Database for one of our clients ( I concede that we were not smart enough to think of a distributed ledger) . So adding a new database that kept a track of state of the work-item by referencing it with a workitem-key helped reduce the network calls from the business process to a maximum of one call to get the state of the input reference data at each step of the process and this optimized our solution by a huge margin but we had to create some database triggers and batch processes to keep the Reference Data updated.
What do enterprises achieve by implementing business process management?

  • Operational Efficiency – Streamlined business processes lead to streamlined operations, with greater visibility and control. The automation of repetitive, low value tasks can also lead to cost savings.
  • Compliance – All business processes are carried out in-line with a company’s procedures and process documentation can be generated for demonstrating compliance in an audit.
  • Competitive Advantage– A BPM solution ensures that processes drive operational efficiency, business visibility and can quickly adapt to customer requirements, which helps to provide a strong edge over the competition and shorter time to market
  • Scalability – Automated processes scale much better than manual processes – ideal if an organisation is expanding.
  • Agility – A BPM solution will enable a company to quickly update its processes in response to developments in its operational environment.

Great! So we have implemented BPM for years and clients have benefited immensely but there are some challenges that create bottleneck in BPM solutions and blockchain can solve them. But how about using a traditional centralized database to perform like a distributed ledger? I am not suggesting we deploy a database at each node rather we add a independent database that acts as Ledger Database & can be accessed by all trusted systems over the network. The Ledger Database should have add-on features of blockchain namely immutability, no central authority & global availability of asset over network. Unlike crypto-currencies a BPM solution does not have unknown participants so I think it should work well.

Disadvantages of using a Blockchain / Distributed Ledger - 

The blockchain as a database is not so great, measured by traditional database standards: throughput is just a few transactions per second, latency before a single confirmed write is 10 minutes, and capacity is a few dozen GB. Furthermore, adding nodes causes more problems with a doubling of nodes, network traffic quadruples with no improvement in throughput, latency, or capacity.  Worst thing is that Plus, the blockchain essentially has no querying abilities.

Advantages of using a Ledger Database-

  • Globally accessible database to store data & documents
  • High capacity and throughput for millions of records and documents
  • Interchangeability to store large files and media
  • Data immutability that brings trust and audit-ability to the records
  • Query technology that enables quick retrieval records and documents
  • Reduced security and liability in managing data
There is need to prototype and compare the 2 solutions, one with blockchain ledger and another with database ledger. I seriously doubt if the investment in Blockchain is really worth for enterprise computing that usually takes places between known & trusted partners. Ledger Database that I have mentioned here has been implemented successfully in the past by and it is only a design pattern. Database can be designed to act more like a blockchain without the surprises that under construction blockchain technology has to offer. Bitcoin has been successfully running on block with few exceptions-where system was hacked. Databases are not hack proof either but the benefit of creating a new database to work a Ledger Database comes very close to achieving the benefits that Blockchain offers without fully sacrificing the control of your database which is important for enterprise computing. Let's keep discussing , build come prototype for comparison and find a new cost effective design pattern using proven technologies




Sunday, November 12

How to select a BPM (Business Process Management) product?

I have been working on implementing BPM since 2005 and one of my tasks as BPM Architect leading the BPM practice in my company was to do vendor comparison of software products and publish Accenture's  POV (point of view) about the software. As architects we also recommended best fit software to our client and our solution architects. BPM is one of the products that I have evaluated multiple times. I received an email from software engineers on how to select a BPM product and I decided to post my views on 'Software Product Selection' based on how we evaluated software for our clients, most of the clients were one of the Fortune 100 companies.
                     Gartner's Magic Quadrant & Forrester's Wave are 2 popular software vendor evaluations that I usually refer to get an idea of features and offerings of software products. These product evaluation and ranking are purely for reference as they consider many different criteria to position a software product as Leader, Visionary, Niche player or Challenger as Gartner classifies them. 

Here is Gartners Oct 2017 Magic quadrant for Intelligent Business Process Management Suites


And this is the Q1 2018 Forrester Wave Report


In the above chart I would not really worry about the X & Y coordinates of the software as long as they are both are Leaders quadrant or even in Niche Player or Visionaries or Challengers Quadrant if they offer the features that are important for my solution.  In fact, BPM is fast changing landscape and new features are offered almost every quarter.

If you are out to select a BPM product my recommendation is to
1) List key requirements of your solutions (do consider long term requirements as well)
2) Go through vendor comparison reports and product manuals and evaluate each vendors product features, have a look at the demo videos of these vendors
3) Select top 2 products that match your requirement.
4) Implement a prototype, ask your business users to go through the prototype  and then shortlist the BPM product.
5) Some vendors claim to have a various feature but in reality the feature could be part of their future enhancements and you may have to wait for 6 to 12 months to implement the feature. So make sure you discuss all the critical requirements of your solution with the vendor and ensure they are supported in the software version that is you intend to use.

For all you know your architect may recommend Pegasystems , or Appian or  IBM BPMor even TIBCO Active Matrix BPM based on your requirements. So do not blindly go by the Forrester Wave or Gartner Magic Quadrant, do your homework and you will not regret it. 

Understanding Generative AI and Generative AI Platform leaders

We are hearing a lot about power of Generative AI. Generative AI is a vertical of AI that  holds the power to #Create content, artwork, code...