Thursday, September 19, 2013

Past the Demo to Implementing IPA

Greetings IPA True-Believers and Happy Processors! I recently got a great set of discussion topics about Interaction Processor Automation (IPA) from some colleagues at Altivon, ININ Reseller since the bad old '90s that I've known since my pre-sales engineering days when I lived on the Left Coast. I'd like to address as briefly as I (a long winded talker) can. In addition to these quick hits, you might also check the "Getting Started" tab I added to the blog recently.

Q. Persistent Data – when to store it “in IPA” and when to keep other systems (e.g. CRM, Incident Management, ERP systems, etc.) as the system of record / data store?
A. There's some considerations for this of equal importance. In short, generally at least a single custom table per process and ideally, the larger the process, the outputs are stored in another data store with the customer, so we're not building large, complex custom applications with their own island of data unless, after the conversation with the customer about pros and cons, that's what the customer really, really, REALLY wants (to pay for and maintain). Here's why:
  1. Duration of Process (minutes/hrs vs weeks/months or longer) - the longer the life of an individual instance of the process must run, the more you should consider using a database driven design to allow for existing processes to pick up new changes and also to insure survivability of your most important process data. Note I didn't say all. I recently attended a great support webinar on Troubleshooting IPA, given by Chiranjeevi Rathnaala, Senior PE in Support covering IPA and other applications type stuff. While there is survivability for events like switchover, you generally want to implement at least a single custom table of columns for your key data points, with one row per process in it for processes that are running into weeks, definitely if they're going for months. Lightweight stuff. This allows you to build your process with restart logic in it from the start, which is really easy to do on the front end.
  2. Reporting - I know, it's seems like reporting sometimes feels like the "bane of our existence" as solutions providers, right? Gotta ask the hard questions up front because, even more so than with IC, you could get bit, harder, by metrics with IPA if you don't understand what they provide vs. what they don't. The IPA out of the box reports provide more "call" type data like volume, handle time, etc, but they couldn't, for example, tell you how many outage minutes were reported for a utility or the discount provided on the insurance quote and by whom in the approval process. In 4.0 (at least SU3) for PCI compliance, when you create a new variable there's a checkbox on variables that says "store the final value in the database" which means it's there for IPA, but you'd need to write a custom report to parse some XML to get at it. With the Timecard process I built, metrics were covered in part with a SQL transform tool on a SharePoint page and some data was pulled directly into Excel (as we know is very typical with customers) for some additional number crunching.
  3. Data Store - or IPA as the data store vs. a 3rd party application like CRM, ERP, etc. The data store question is also covered in Building a Custom Application vs. Automating a Business Process with IPA, where reports and the data store are mentioned specifically.
  4. Exceptions / None of the above - when you're implementing a small "process app," which is what I call something that only routes to 1 person. No approvals, no inputs that need to be stores. For example, you can do some easy viewing of metrics, maybe even with some custom calculations on the data, in 4.0SU3 and later using data grids, that could just run a query and display some data. 
Unless you're in the process app business or hopefully starting small, because you can't start too small with IPA to start gaining experience with it, you'll usually need an existing data store and/or a small custom table. The partner and customer are both going to learn as you deploy IPA, more so than you did with call flow, because of the whole GUI component and workflow that goes beyond call routing.

Q. What about Troubleshooting and debugging with IPA?
A. The basic non-IC logs concept is covered in this troubleshooting suggestion from an internal session at ININ last year. I'll elaborate with a separate article and a process at some point. There was a good webinar from ININ Support recently that covered troubleshooting from the log side of things, which is one approach. For the process author who is coming more from the business analyst and consultant side of things, they'll want to build in their own "DIY log" built directly in the process flow as is mentioned in the link above, and I'll further detail some best practices around that in the future.

Q. A basic description of how to think about developing apps using the concept of states/stages in a process.
A. The general rule of thumb is create a State for each swimlane in your To-Be process flow, so that anytime you're crossing to another individual or workgroup you'll change States. That of course assumes you've gone through the effort of As-Is where you've documented the customer's business process and written a To-Be process flow that is specific to implementing the process with IPA. See the importance of As-Is and To-Be if these are new terms or if you're not able to articulate their necessity for that consulting time to a customer. 

Implementing a "process app" could be an exception to this rule, if you're building something very small that's only routing to one user and not doing much. Remember you need sufficient documentation in the flows to share with folks outside of the immediate project team, so they know what you've built and for future reference.

Q. Got any good user interface design tips?
A. Ah yes, you've realized at some point a human being, who probably doesn't implement communications solutions for a living, is going to be the end user of your process and consumer of the Pages on those Work Items! Kudos for that realization. So we have a couple of considerations for the User Experience (UX):
  1. Know your user(s). I'm adapting some Agile techniques to deploying IPA to insure I understand the personas of the users of the process, and there could be more than one. Is it just agents in the contact center? What's their profile, such as proficiency with a computer, experience (yes, including age so sue me for saying it), subject matter expertise, education, etc? When I say IPA is the greatest thing since sliced bread, there's a bit in there about it being the first time we have an easy way to implement a GUI for user presentation. And we need to consider what that means as we deploy IPA. Will one big-ass work item page crammed full 'o stuff cover it because your users have the skillz, or maybe should you consider breaking the inputs out over a couple, few pages on the same work item?
  2. Consider Good GUI design. Resources on UX abound on the internets. Your expertise with building Work Item Pages is sure to evolve over time, provide you keep in mind that humans are using the Pages. I'm not going to recommend any GUI/UX 101 resources but like I said there's tons of them. Personally, once I've taken the personas into consideration for the users, I tend to keep it simple and when I run into questions like "how to display radio buttons inside a group box" I tend to start with Microsoft's Reference for Controls. Not all are available in IPA, but it's an easy place to find examples. 
  3. Data Grids Are Our Best GUI Friends! (4.0SU3 and later) - for folks used to using the Interaction Client, the Company Directory is a good example of a data grid, and they're available in IPA starting in 4.0 SU3. If you have to display complex data, like rows of stuff or anything resembling a spreadsheet, you'll be faced with working around the lack of the data grid. I've seen "formatted text" using Currier Font and spacing, that kind of turns out like a report run on an old dot-matrix printer, but it can work if you don't have a choice. Or... maybe considering upgrading to 4.0 if you're going to be doing a lot of this, because you'll be ripping out that "bandaid" and replacing it with data grids later.
  4. If the tools ain't there, consider a custom web page to accompany the solution. This isn't ideal since it's extra effort to build and maintain, but it can work, for example if you're implementing IPA with 3.0 and prefer more of a grid representation of your data.
So there you have it. Some good stuffs on Interaction Process Automation IPA to consider before you deploy. I'll flesh some of these topics and techniques out in the future, but that should be enough to get the juices flowing for now.

Happy Processing!

Monday, September 16, 2013

Choosing the First Part of Your Process for IPA

Note I didn't say which process, it's which part of your process to automate with Interaction Process Automation (IPA). Feedback from some folks I've talked to over recent months and garnered from places like and tends to indicate they could have started smaller. At a session at Interactions 2012 I half-jokingly asked a customer during one of the IPA sessions "Were you ever concerned that you started too small?" That got a few chuckles and they said quite the contrary, they had probably bitten off too big of a bite to start.

IPA is highly flexible and, depending on the complexity of the requirements, can be rapidly deployed. The challenge, however is to avoid falling into to the trap of building a sprawling custom application instead of keeping it simple to automate a process. Yes, IPA is custom software since you have to design it from the Work Items (screens / GUI) up, so keep this in mind when you're dreaming up the make-all, be-all process. If you're racking up the buttons that will go off and require a bunch of custom stuff with Handlers or other interfaces, ask yourself if this process is the appropriate place for the business rule.

A recent process I've implemented turned out to be not one, but 4 separate processes. We hashed it all out with stickies on the whiteboard and by the time it all ended up As-Is in Visio, we had 4 pretty complete 11x17 pages for 4 separate processes. Thankfully we immediately agreed to reign in the scope (and urge) to not automate TheWholeDamnThing for phase 1. The customer (internal ININ) has learned quite a bit about all of the manual stuffs that has to happen today As-Is, and while they're eager to get it all automated, implementing in multiple iterations will allow us to make incremental improvements along the way to maximize their ROI.

Especially when you're first getting started with Interaction Processor Automation, whether you're a partner or customer, try to remember your first exposure to CIC and all of the glorious tools, features, bells and whistles. The CIO of a customer presented at what used to be known as the Customer Conference several years ago and said "we saw all these features and were like kids in a candy store." Less is more applies with IPA as well and you will be better served with a scaled back, I'll dare say basic, phase 1 or first iteration for any new solution.

Keep in mind the Work Items Sprint as well to get the screens going soon so the user interface you've put on paper can evolve as it inevitably will. You'll learn plenty from your first processes, just like you did with Handlers, Attendant and CIC in general as you gained experience with them.

To Recap:
  1. Start small.
  2. Everyone will learn.
  3. Iterate and grow from there.
Happy Processing!