Thursday, April 17, 2014

Thinking Out-of-the-Box: A Unique Implementation of BPM Batch Process

One of consultants’ biggest challenges is to fulfill our clients’ requirements entirely. Some requirements are straight forward and easy to implement, while others are quite complex and force us to think out-of-the-box. It is those complex requirements which bring our “best” by making us venture into unknown, ultimately resulting in innovative solutions.

One of my recent client engagements posed a quite interesting requirement. Below is a full description on how I solved it with advice from other team members.

Client Requirement:
In a recent BPM project, we had a requirement to implement Batch Process such that it runs every day at a certain time. But another requirement along with that was, the time to run the batch process should be changeable. For example, a batch processes is set to run at 12.00 am every day as per the present requirement; however, after 3 months we might need to run them at 3.00 am everyday instead of 12.00 am.

For this project, we were using IBM Business Process Manager V8.0.1 Advanced.

Challenges in Designing Solution:
  1. One of the obvious solutions I thought of was to use Time-Elapsed UCA assuming it will allow us to change the trigger time at the run-time. However, there is no way to change the trigger time of the Time Elapsed UCA at the runtime. It needs to be changed using Process Designer and deployment needs to happen across all the environments before finally promoting the change to Production environment.
  2. Another option was to use WAS Scheduler to run the Batch jobs. However, it needed some learning curve to develop a solution and would have hampered the timeline. Another challenge was that the client wanted to use the IBM BPM (Process Designer) capabilities to develop a solution which will be easily supported by the client.

Solution Description:
Here is the high-level design for implementing above requirement for the Batch Process.


  • A batch process will run systematically once every day at a specific time. 
  • Use Singleton design pattern such that at any point of time one and only one batch process instance will be running in BPM which will set off every day at a certain time.
  • At any point, if the time for the batch process needs to be changed, we should be able to do it by doing following step:
    • Check if there is an existing instance of the BPM Batch Process and terminate/delete it.
    • Create a new instance with new time to run the batch processes.
  • On a specified time, this process instance will invoke multiple batch process use-cases. For example Batch Process UseCase 1 and Batch Process UseCase 2 and so on as in the High Level Diagram below.

Advantages:
  1. It is a generic solution which can be implemented once and then batch process use-cases can be added at any time.
  2. It is not performance heavy. Even though there is always an instance in the background, it will consume resources only when it is executing at the batch process time and will release them while it is in wait state.
  3. It uses Process Designer capabilities with no java components, schedulers and properties files.
  4. It avoids any complications of running multiple schedulers at different server locations and on multiple nodes.

Disadvantages:
  1. A new instance needs to be created by the Admin when a change in time is proposed either by running scripts, using Human Service URL or Process Portal.

Implementation Details using Process Designer

“BPM Batch Process” Business Process Diagram: 
Here is the implementation of the “BPM Batch Process” BPD which is exposed to be accessed by Admins. This BPD helps get the time for the batch job execution using SetBatchProcessTime Human Service and then every day it invokes multiple batch process use-cases at that time.

This implementation is based on Singleton design pattern i.e.at any given time only one Process Instance of this BPD should be active in BPM. If we want to change the time of batch job, then we need to call SetBatchProcessTime human service which will terminate the old instance and then create a new one with new time.



“SetBatchProcessTime” Human Service:
“SetBatchProcessTime” human service is used to set the batch process time such that it will run every day at the same time. This human service will be started with “batchDateTime” as the input. This will help to change the batch process time whenever required.

Since there can be only one instance of BPM Batch Process running at any point when a new time is being set for batch process, it will make sure there are no instances running beforehand. If there are then it will terminate it before creating a new instance for BPM Batch Process with new time. 

Here is the implementation of the Human Service “SetBatchProcessTime”


Batch Process Use Cases:
Batch Process Use Cases can be different implementations in order to achieve any business relevant goals like changing a status of certain business cases, terminating business process instances, sending emails, and so on to name a few. These use cases can be any type of implementation, like a BPD, a General System Service, an Integration Service or any other Process Designer specific artifacts.

Invoking Batch Process

There are multiple ways to invoke this Batch Process via SetBatchProcessTime Human Service. 

The SetBatchProcessTime Human Service will accept the trigger time for the batch process to be triggered every day. This Human Service will in turn instantiate BPM Batch Process BPD.

This Human Service can be invoked in number of ways as listed below.

1. Using SetBatchProcessTime Human Service URL



SetBatchProcessTime can be invoked by the administrators who are part of “Admins” group using the URL as mentioned below:

http://{hostname}:{portnumber}/teamworks/executeServiceByName?processApp=SPA&serviceName=SetBatchProcessTime

where:

SPA = Process App Acronym
SetBatchProcessTime = Name of Human Service

2. Using SetBatchProcessTime REST URL


The REST URL which can be used for invoking SetBatchProcessTime Human Service using POST method call is:

http://{hostname}:{portnumber}/rest/bpm/wle/v1/service/SPA@SetBatchProcessTime?action=start&params=%7B%22batchDateTime%22:%222014-02-27T00:00:00Z%22%7D&createTask=false&parts=all

where:

SPA = Process App Acronym
SetBatchProcessTime = Name of Human Service
batchDateTime = Batch Process Time parameter (%22 stands for quotes “”)

3. Using Process Portal
SetBatchProcessTime Human Service can be invoked using Process Portal by exposing it as Startable Service.



Process Portal:



For this particular solution, I exposed it as REST URL to be invoked using REST API in the deployment scripts to automate creation of the process instance instead of doing it manually.

Conclusion:

Yes, I was able to successfully achieve the client requirement by designing and implementing a solution but the significance of this experience is how thinking out-of-the-box helped me come up with an entire analysis while designing and implementing a solution. Not only was the Singleton design pattern used to design this solution but also it was generic along with flexibility to change the batch process trigger time in the future; there by sticking to the guidelines around good practices which is equally important in a solution.

Acknowledgements:
I would like to thank the following individuals:
  • Soundarajan Mannathan for his advice. 
  • Salem Hadim for his advice and approvals. 
  • Eva Khalil for her valuable inputs on this blog piece.

Want to learn more about Prolifics?



Jimit Sukkawala is a Consultant in BPM and Connectivity LoB in Prolifics specializing in Service Oriented Architecture, System Integration & Business Process Management. He has been with Prolifics for past 5 years and worked across different industry domains like Financial Services and Leisure & Hospitality. He has worked on projects through different phases of software development cycle and most of them making to Production. His main expertise is in WebSphere Process Server, WebSphere ESB and IBM BPM. He holds a master’s degree in Management Information System from University at Buffalo and bachelor’s degree in Information Technology from University of Mumbai.


Monday, April 14, 2014

Migrating IBM WebSphere Message Broker v6.1, 7, 8 to IBM Integration Bus v9 on Distributed Platforms - Checklist for a Successful Migration

IBM’s endeavor to offer one integration product capable of supporting .NET, Java, and various heterogeneous integration scenarios resulted in the launch of IBM Integration Bus (IIB). IIB v9 offers a standardized and flexible integration backbone. It allows placement of WebSphere Enterprise Service Bus (WESB), Rules Engine, and WebSphere Message Broker (WMB) under one software umbrella. One can expect significant benefits including enhanced support for .NET, improved Global Cache, a new Real-Time Performance Monitoring Tool and many other new features and upgrades such us Policy based WLM and BPM integration.



The below checklist is a compilation of IBM Integration Bus Information Center v9 instructions and offers a guideline to a successful migration of WMB v6.1, 7, 8 Broker Component to IIB v9 on distributed platforms. The checklist is comprised of the following topics: Migration of Broker Components and Migration of Development Artifacts.

Migration of Broker Components

The earliest version of WMB that one can migrate resources from is WMB v6.1. In a case where a migration from earlier versions is required, one must migrate to WMB v6.1, 7 or 8 first, however earlier version migrations are not in the scope of this document.

Migration from Windows x86 product to x86-64 product is not supported as well as migration of Linux x86 product to Linux x86-64.

In addition there are restrictions on migrations of earlier versions to IIBv9 Developer Edition. Supported operating modes are Full Edition, Remote Adapter Deployment, Express Edition and Standard Edition.

Finally, IIB v9.0 requires a minimum WebSphere MQ (WMQ) v7.5.0.1 on distributed platform. If publish/subscribe functionality is utilized by WMB v 6.1, a migration of WMQ Queue Manager is required first, followed by migration of subscriptions and then Broker component.

Remember: back up all of your resources prior to migration!



Migrating WMB v6.1, WMB v7.0, and WMB v8.0 Broker Component

  • Back up all resources: configuration repository (WMBv.6.1), Broker database(WMBv6.1),  and development artifacts.
  • If using ODBC connections, back up ODBC connection files.
  • If using configurable services, back up configurable services properties.
  • Install WMQ v7.5.0.1 and up.
In Place Broker Component Migration

Install at least Integration Bus component under new location on the same machine

Remove WMB v.6.1,7.0, 8.0 Broker from the domain configuration

Stop all channels connected to WMB v6.1,7.0,8.0 Broker

Stop WMB v6.1, 7.0, 8.0 Broker

Migrate WMB v6.1 Broker‘s Queue Manager to appropriate IIB v9 WMQ version

Migrate Pub\Sub components if required

Update ODBC connection filesto IIB v9.0 format if required

Set up IIB v9.0 command environment

Run the mqsimigratecomponents command to migrate WMB v6.1, 7.0, and 8.0 Broker (mqsimigratecomponents command migrates configuration data in forward and backward fashion (use “t” option for rollback): broker databases, queues and broker registry are migrated)

Copy environment settings if required

Start IIB Broker

Deploy migrated artifacts

Parallel Broker Component Migration:
Install at least Integration Bus component under new location on the same machine or on another machine

Update ODBC connection files to IIB v9.0 format if required

Set up IIB v9.0 command environment

Create IIBv9.0 Queue Manager on appropriate WMQ version

Create IIBv9.0 Broker

Copy environment settings if required

Start IIB Broker

Create Integration Servers (Recreate WMBv6.1, 7.0, 8.0 Execution Groups)

Deploy migrated artifacts

Migration of Development Artifacts

Development artifacts from all previous versions cannot be shared with IIB v9.0. 

Artifacts developed on IIB v9.0 cannot be deployed to earlier versions.

User Defined Node Jars developed in earlier versions  cannot be migrated to IIB v9.0.

User defined nodes require an extra diligence during migration. 

Resources which are imported into IIB v.9.0 cannot be used in earlier versions of the product.

Message flow projects are replaced with integration projects.
Message sets are “Read-only” once imported and not modifiable. (Modify message sets by
enabling msgset development in IBM Integration Toolkit -> Preferences)

WMB v6.1 and v.70 msgmap can be viewed, compiled and deployed but they are “Read- only” In order to modify .(msgmap) convert (.msgmap) to .map file

 Migrating WMB v6.1, WMB v7.0, and WMB v8.0 Development Artifacts
  • Development resources can be imported into IIB v.9.0 as PI files.
  • Workspaces can be migrated into IIB v9.0.
  • Migrate Development Artifacts

PI Import:
Export development artifacts from a previous WMB version into a PI file

Import PI file into an IIB v.9.0 workspace

Convert integration projects into applications or libraries if required

Workspace migration:
Point IIB v.9.0 IBM Integration Toolkit to location of an existing workspace

Click OK

In case of errors during migration apply “Quick Fix” by right clicking task list warning or error in the Problems view, then click Quick Fix.

Resources:
*Figure 1, 2: Migrating to IBM® Integration Bus v90
*All Content: IBM Integration Bus Information Center




Eva Khalil is a middleware solutions designer with more than 12 years of experience in systems and applications integration area.  
She has been working with Prolifics for the past five years.  
Eva has successfully led many integration projects for various business industries: financial, government, healthcare, insurance and utilities.
She is especially fond of WMQ and IIB.

Tuesday, April 8, 2014

BPM, Rules and Analytics: A Business Trilogy

It’s an exciting time to be a business process professional. The management discipline of BPM is mature, process modeling standards are stable and the technologies are at a point that allows us to provide the kinds of process innovation and agility that we have long asserted, but were unable to easily deliver.

We can now look at broadening our horizons beyond process workflow and the monitoring of basic operational metrics. Today’s process professionals can deliver incredible business solutions that include, not only process workflow, but also the powerful execution and management of business rules, broader, more complex business decisions and advanced business analytics.

This business ‘Trilogy’ of capabilities (Process, Decisions, Analytics) is changing the landscape and makeup of business solutions, business process design and the ability of organizations to rapidly change, adapt and respond to the volatile nature of today’s global market.

Not only are these capabilities available to the process professional, they are essential. Process efficiency alone is no longer sufficient to ensure business success. Consider the history of process from the early 1900’s and the work of Frederick Taylor around process standardization and Henry Ford’s groundbreaking assembly line production automation. And moving into the 1980’s we had total quality management, Six-Sigma and Dr. Michael Hammer’s business process reengineering.

These initiatives, revolutionary in their time, were focused essentially on improving process efficiency. In today’s ‘customer-centric’ world where the customer has greater power than ever before with mobility, the cloud and ubiquitous Internet access at their fingertips, process efficiency alone is simply not enough.

We must today look at creating, in IBM’s terminology, ‘Smarter Processes’. These 21st century processes must certainly be streamlined and efficient, almost a given, and be able to orchestrate process workflow across systems and data sources enterprise wide. However, modern business solutions cannot stop there.

Any process improvement initiative must consider the following:

  • How process execution can be dynamically changed through business rules management
  • How business decisions can be made both independent of business processes and in support of business process workflow
  • How processes can support customer’s mobility demands
  • How big data and social media can be leveraged to not only respond to customer demands, but begin to predict future customer behavior

All this means we must go well beyond traditional business process improvement in developing business solutions. We’ve touched on process improvement to some degree.  Now let’s examine the other components of a business trilogy: Decisions and Analytics.

Business Decisions
A business decision is a collection of business rules, encapsulated to ‘hide’ the complexity of that decision from the user or recipient of that decision. A user could be a business process, system, web portal or other medium that may need an answer, a decision, without needing to understand the complexity that underlies that decision.

Business decisions and the practice of Business Decision Management (BDM), can dramatically simplify and change how we go about business process improvement.  Not only can BDM simplify business processes and process models, but also enable greater agility and flexibility than ever before.

It is common process modeling practice to extract business rules from processes, leaving only simple decision point that determine navigation, or which path to take through the process (if ‘Gold Customer’ go one direction, if ‘Platinum Customer’ go another).

The process needs only to know what type of customer it is.  The complex business rules that determine the customer type (Gold vs. Platinum), can be modeled in a Business Decision.  The process then can query the business decision, much like a business service (SOA) to get the answer.

We have been modeling business processes for some time and the standard Business Process Modeling Notation (BPMN) is quite mature and tools like IBM’s BlueworksLive support and enforce the standard.

Decision modeling is an emerging discipline also with standards, just not yet as mature as BPMN. A decision model provides a means of capturing very detailed business rules that support a business decision, and presents them in a standard model that can be communicated, implemented and managed. These business decisions can be shared, reused and leveraged across multiple business processes, systems and business scenarios.

Business processes become very simple indeed and extremely stable. Processes only need to be changed if a business model changes…like offering a new service to customers. The dynamicity of the business is managed outside the process in business rules and higher-level business decisions. Rules can change dynamically with little or no impact on the business processes that use them.

Advanced Analytics
With the onslaught of information, big data, from a myriad of sources, it is critical that organizations consider how that information will be captured, analyzed and leveraged to both gain a greater understanding of their customers and improve their customers experience.

Analytics can be grouped into three categories; Descriptive, Prescriptive and Predictive. Each has a specific focus and purpose.

Descriptive
Perhaps the most common and familiar, descriptive analytics focuses on real-time, operational metrics associated with, for example, process activity monitoring. Descriptive analytics are typically displayed on dashboards, operational reports and scorecards providing immediate insights into business performance.

Prescriptive
Prescriptive analytics takes a deeper perspective of data to uncover patterns and trends.  This analysis helps organizations gain a better understanding of customer buying patterns and habits focusing on historical information.  Prescriptive analytics helps to answer the question of why customers do what they do.

Predictive
Taking a more forward thinking perspective, Predictive analytics strives to provide insights and guidance into what an organization should be doing in the future. This predictive or what-if analysis helps support future planning and resource allocation for what may be required or demanded by customers or the competition.

The Trilogy
Process consistency, agile decision and rules management and analysis of critical business data are the three characteristics of a modern, agile and dynamic organization. Process management alone is no longer sufficient. Business decisions are becoming more complex and data intensive.

Decision Management is the essential element to reduce process complexity and enable the ability to rapidly adapt to a changing landscape driven by customer demand, competition and regulatory pressures.

Likewise, advanced analytics provide the necessary visibility into historical, current and potential future business operations. This visibility coupled with efficient, well orchestrated business processes and state of the art Decision Management will be a powerful advantage for any enterprise that wishes to remain competitive in the age of big data, mobility, cloud, and proliferation of social media.

Attending IBM Impact?
Prolifics will be taking a deeper dive into this topic at IBM Impact 2014. Ryan Trollip, Decision Management Practice Director at Prolifics, has been selected to host a conference session that is not to be missed!

Session Number: BDL-3320
Date/Time: Mon, Apr 28; 12:00 pm - 12:30 pm
Location: EXPO Theater





Howard Webb is a Director of BPM Advisory Services at Prolifics. Howard and his team provides consulting and guidance to clients in transitioning to highly efficient Process Managed business models, and equips them for success in their BPM initiatives. For over 25 years he has been a consultant, trainer, facilitator, and speaker on the topics of Business Process Management (BPM), data architecture, and project management.  He founded the Midwest BPM Users Group and has published articles on BPM and enterprise architecture.  Prior to coming to Prolifics Howard was founder and partner of Bizappia, a consulting and services firm focused on business agility, performance and innovation.  Prior to Bizappia, he was a Sr. BPM Technical Specialist with IBM.

Friday, March 28, 2014

Prolifics Employee Showcase: Handly Cameron

Handly Cameron is a Software Architect for IBM Collaboration Solutions (ICS) and Mobile at Prolifics and an IBM Champion for ICS. He has over 20 years of experience in enterprise collaboration and application development and is passionate about helping companies leverage social and collaboration technologies to drive business value.

We recently caught up with Handly to learn more about his time at Prolifics and some of the exciting initiatives he has worked on.

Joining Prolifics
Handly joined the Prolifics team over two years ago, stating that he saw great potential to grow in the IBM space and was impressed with Prolifics’ depth and breadth of experience across the IBM portfolio.

Technical Expertise and Becoming an IBM Champion
Handly was named an IBM Champion for ICS in the first group of Champions in June 2011. Since then, he has been selected as an IBM Champion each year and has earned 43 IBM certifications. In fact, he even helped the IBM team write 3 certifications, the most recent of which for the Worklight and WebSphere Portal developer exam. Currently, he holds 11 active certifications and continues to update them as product versions progress and expire.

Handly sees a lot of value in the IBM Champion program and has remained an advocate of the program since it was created. An IBM Champion is defined as an individual who leads and mentors others in making the best use of IBM solutions and services. Champions are typically evangelists who run user groups, are active in the blog community, help others in online spaces such as Skype or StackOverflow, present at conferences, and generally participate in the broader IBM community. Some of the benefits you can receive as an IBM Champion include:
  • Access to IBM Executives 
  • Opportunities to participate in community activities (i.e. Team Social and interviews at IBM Connect)
  • Free invitation to the ICS Leadership Conference
Handly encourages anyone wanting to become an IBM Champion to talk with him or another one of Prolifics Champions and find out how you can get involved!

Going Mobile: The Prolifics Connect App
Before joining Prolifics Software Group last year, Handly led the team that developed the Prolifics Connect mobile app that is used to support activities at large IBM conferences such as Connect and Impact. This particular project included helping several members of the Prolifics team learn mobile app development with IBM Worklight and integrating the app with back-end systems such as IBM’s sessions data, Twitter, and our blog feeds. Handly is currently updating the app for iOS7 and the upcoming Impact conference in late April. Click here to see the full story of the app.

Client Success
When asked about a recent client engagement he is most proud of, Handly recounted the planning and implementation of IBM Connections Content Manager (CCM) at Mizuno. Handly explains, “We were able to take a lead from IBM, demonstrate how the solution helped solve specific business needs, and sell the software and implementation services. Mizuno became the first customer to install CCM, with Mike McReady standing by to download the software the minute that IBM released the eGA. Following from this success, the customer was so happy with the results that they joined us in an IBM webinar last September that has been seen by hundreds of people. New leads are still coming in for customers who saw that webinar and want to hear more about how they can get similar results with Prolifics”. To listen to a Webcast replay, click here.

Interested in Hearing More from Handly?
He was recently interviewed by Sandy Carter at IBM Connect 2014. At the start of the video, you can see the blazing yellow Mizuno shoes Handly is wearing.



Connect with Handly Today!
www.twitter.com/handly
www.linkedin.com/in/handlycameron
handly.cameron@prolifics.com




Handly Cameron is an Enterprise Architect in the IBM Software Group at Prolifics and an IBM Champion for IBM Collaboration Solutions. He has over 20 years of experience in enterprise collaboration and application development and loves to help companies leverage social and collaboration technologies to drive business value. Handly is the Leader of the Atlanta WebSphere Users Group, recently finished 5 years as the president of Agile Atlanta, and holds 25+ industry technical certifications. He blogs at http://handly.org and is on Twitter as @Handly.



Friday, March 21, 2014

Prolifics Accelerator Approach: Driving Security Implementation Success with Identity and Access Management Power Tools

A good Systems Integrator knows how to create powerful technical and business solutions for their customers. A great one can assemble solutions and collate the technical and business knowledge from their work at many customers for the benefit of the rest. Over the years of performing superb Security services for our customers, Prolifics has created numerous implementation accelerators that we bring, often at no cost, to our new customers.

Prolifics has proprietary tools built for IBM Identity and Access Management (IAM) that simplify upgrades and operational maintenance by up to 40%. The “IAM Power Tools” provide specialized capabilities in:

Automated Regression Testing
Our Power Tools leverage our unique knowledge of IBM Security Identity Manager (ISIM) Workflows, customization and APIs. They utilize the keyword-driven testing approach to support Test Driven Development and complete path for testing – from an ISIM request to a change on the end system. They provide regression, functional, unit testing and UI testing. They also uses a generic free and open source test automation framework (Robot Framework), GUI and test case creation and provide test result clear reports.



IAM Configuration Management and Migration
A set of automation tools written as SDI assembly lines to operate and manage any number of ISIM customizations. It simplifies backup, version control and en-masse changes to customizations in workflows, provisioning policies, forms, mail templates, ACIs and other forms of ISIM customizations.

Automatic Workflow Analysis and Documentation (AWD)
AWD creates automatic maps of all identity workflows, generic and customized in one unified view. It can make even the complex 'spaghetti' workflows manageable and maintainable by providing printable PDF's of all nodes, connections, flows and invocations. It is easier and more intuitive to understand than the internal ISIM workflow editor with more relevant information in plain English, rather than javascript. Color coded and carefully laid out automatic documentation makes it possible to keep up to date architecture documentation, easy to understand by business and technical users. Combined with the customization export PowerTools AWD takes operational support and issue tracking to the next level.

ISAM Script Automation
IBM Access Management appliances, both physical and virtual eschew the pdadmin scripting for integrity reasons. Yet, pdadmin scripting is one of the oft used low level automation mechanisms that many of our our customers use. We had created a translation interface that allows existing pdadmin scripts to run on the new IBM Access management appliances, allowing our customers to retain their existing administration and configuration techniques and procedures and thus ease migration to the appliances.

In addition to the PowerTools that our consultants use and train our customers on, Prolifics owns an IAM Adapter & Profile Library that extends the reach of IBM’s portfolio to a wide range of common and specialty applications. The library includes dozens of adapters to connect, provision to and reconcile from a multitude of enterprise ERP, CRM, Financial, HR, IT and line of business systems that we had encountered over the years.

Inviting a security integrator like Prolifics, that packages solutions and assembles accelerators for the customers, helps you reap the rewards of faster implementations, simpler maintenance projects and proven processes. Our clients benefit not just from direct expertise that we bring with our knowledge and experience, but also from the powerful assets that we created over the years in the industry.

To learn more about Prolifics' security solutions, visit www.prolifics.com.



Alex Ivkin is the Vice President of the Security practice at Prolifics. With a deep understanding of compliance, governance and risk management, Alex brings more than 15 years of experience in a broad array of computer security domains. Alex has worked with large and small organizations to help drive security initiatives and deploy various types of enterprise-class identity management and application security systems. In a Security Architect role, he has helped companies succeed in attaining regulatory compliance, improving business operations and securing enterprise infrastructures. As the head of the Security Practice, Alex leads a team of highly skilled consultants to deliver comprehensive security solutions to our clients. Alex is an established and recognized security expert, a speaker at various industry conferences, holds numerous security certifications, two bachelor’s degrees and a master’s degree in computer science with a minor in psychology.


Thursday, March 20, 2014

Workplace Communication: Too Much, Too Little, Just Enough

How many times have you walked away from a meeting thinking to yourself that you don’t have enough information to perform the tasks at hand? Or maybe you sat through a long stretch of discussion in the meeting where a lot of information was shared by the team but none was relevant to you.

Communication, we all acknowledge, helps us perform better, but the corollary to the fact is that when there’s too much or too little of it, there are breakdowns in overall productivity. Too much communication is a general pain point these days, but what most people don’t realize is that, with the wealth of information around us these days, we may exchange a lot of information but it may not necessarily be effective communication.

In the case of client-service provider relationship, the role that communication plays becomes pivotal. Add to that an onsite-offshore delivery model and the communication lines become even more complex. Over the years, many benchmarks have been set up for such settings, but the process and channels continue to stay riddled and prone to errors caused by too much or too little communication. Some ground rules can be established in order to set the tone for a good relationship.

  • Establish rules of communication after a formal discussion with the client. Once the process is formalized, it offers the advantage of no longer being prone to the variations of individual styles.
  • Conclude on what needs to be communicated in status reporting, including all stakeholders that need to be copied on the daily/weekly/monthly statuses and emails.
  • Formalize a format of communication, for instance the communication of questions during the planning phase of a project to be logged in a tool or sent across to business team directly.
  • Once the process has been established stick to it by any means, say the monthly metrics for all projects are communicated on a quarterly basis, then this schedule must never get disrupted without prior notification.

Where too much communication can hurt productivity, too little communication can lead to an array of disasters like unclear expectations and low team morale followed by gossip and rumours. Withholding pertinent information from anyone, be it superiors, peers or subordinates, results in them feeling disregarded and many times leads to them inferring assumptions from the lack of information. A common mistake made by a lot of people is being afraid of asking for help at work. It is very important to communicate with your team/manager and ask specifically for what you need in order to get the job done right. When unclear on whether you have provided enough information, make sure that you leave the door open for further conversation by mentioning “you can get in touch with me whenever you need” or “please feel free to ask questions”.

In order to make your communication effective focus on these areas:

Verbal communication

  • Listen well
  • Do not make assumptions
  • Ask for feedback
  • Practice your presentation skills
  • Ask questions wherever you need clarification
  • Always check with the other person if they have a few minutes when you call


Non-verbal communication

  • Work on having a confident body language
  • Display interest in what the other person is saying
  • Learn about the cultural differences when working with people across different cultures


Written communication

  • Always perform a grammar and spell check before sending out any document/email
  • Always provide a relevant subject line to the emails
  • Always double check the attachments or links provided in the email


Teleconference/Videoconference calls

  • Keep up time
  • Announce yourself when you join the meeting
  • Mute your phone if you’re not the speaker
  • Take notes
  • Ask questions whenever you need more clarification


We can improve our communication and ensure getting the right message across by being clear, concise and precise. Having an agenda for a meeting, sticking to it and including only the people related to the agenda helps in furthering the effectiveness of communication and helps maintain good productivity levels. Similarly, keeping your email and phone conversation brief and to-the-point saves valuable time for everyone.

Think of your team/workplace as a network where all individual systems work together in coordination. If there is lack/delay/overflow of load then it is bound to crash. Beat the issue of over or under communication by constantly assessing the amount of emails, teleconferences/videoconferences, and phone calls against your productivity. Over time you will be able to figure out the middle path where you will communicate just right.

It was previously thought that that you either have communication skills or you don’t. We now know that communication is a skill that needs constant honing.





Farhat Afridi is a Test lead at Prolifics having over 10 years of experience in testing, with extensive experience in Retail domain. She specializes in Oracle retail suite of applications. She holds a bachelor's degree in Electronics Engineering from Bangalore University.

IBM Business Process Manager Integrations: Designing SCA Based MQ Integration for BPM

Problem Statement:
For integrating IBM WebSphere MQ with IBM Business Process Manager (BPM) applications, solutions can be built using SCA components bundled into main business process applications to consume messages from external messaging systems when BPM Advanced edition is used. If the business requirement is to have multiple active snapshots then IBM BPM deploys separate SCA Modules for each snapshot. Though the solution works, it is not an elegant solution because as the number of snapshots increases, the number of listeners (SCA Modules) on MQ will continue to increase.

Solution:
The solution is to separate SCA modules from main business process application by creating a lightweight standalone process application with SCA components which in turn routes the incoming message to the main business process which is expecting the message from the external system. Use the MQ export component to listen on MQ and trigger short process using one-way interface, the short process will have all system activities to digest incoming message and route it to appropriate messaging event (ME) of main business process using UCA components.

Assumptions
To explain the design, assuming the following:
  • Input messages are XML messages over MQ and IBM BPM Advanced 8.0 environment. 
  • External Message is expected after business process has been started, i.e. external message event is not used to trigger the business process instead used within the process.

Process Designer Components
  • Create Process App “MQ Integration” with BPD called “Process MQ Message” which needs to be triggered when the MQ message arrived in queue using SCA component in IID. This process should have all required logic to send the message to appropriate main process with correlation information.

  • The BPD should have appropriate input variables based on payload.
  • The BPD should also have service to send the message (payload) to main process using UCA. Use correlation id such as Instance Id to send the payload to correct process which is expecting the payload.
  • Create a toolkit for UCA to send the message from “Process MQ Message” to actual (main) BPD and include this UCA tool kit in both main process app and Integration process app.
  • Another option is to drop the message with UCA format into SIB (event queue) which would automatically triggers waiting IME based on correction id. In both approaches, payload should have correlation id or any other data which can be used to derive actual correlation information.
Integration Designer Components
  • Create MQ Export one-way invocation style to start BPD “Process MQ Message”.
  • Configure MQ Export to listen on MQ queue using appropriate connection details.
  • Configure data handler based on payload, OOB data handler UTF8XMLDataHandler is used in this case as payload is XML.
When the message arrives in the MQ queue, SCA component will trigger BPD “Process MQ Message” in “MQ Integration” application with payload as input. The BPD in turn sends the message to actual process using UCA with correlation information available in payload.

When multiple main process snapshots are active on process server, there will be only one SCA module from Integration application “MQ Integration” listening on MQ Queue and routing the messages to all active snapshots of main process.

Advantages
  • As the SCA components are not bundled with main business process app, only one instance of SCA component (one listener) will be deployed on process server
  • Easy to maintain as it is not tightly coupled with main business process application.
Disadvantages
  • It needs to be deployed separately.
Conclusion
Decoupling SCA Modules from business process application will allow changes to integration logic and routes the messages to appropriate process without impacting main business process application much when production environment expect to have multiple active snapshots.





Shanmugam Golla is Solution Architect proficient in developing web-based enterprise applications using JEE, BPM, and SOA technologies. Possesses over 11 years of experience in all phases of software development, with exposure to all aspects of project life cycles, from inception to production support. Shanmugam has lead teams for top-tier consulting firms providing multifarious and complex IT business solutions to prestigious firms in banking, finance, securities, and insurance brokerage.