Overwhelming stuff, there are so many acronyms thrown around these days with different points of view on each and different levels of importance placed on them. What are you to think? What are you to do? What is the real direction of each of these? how will they be used? Will you be ready? What is right for your company? Well the real answer is nobody knows for sure. That is one of the things I love about this industry. IT is always changing, adapting converging, diverging etc. So what is best to do? Be, plan, and stay flexible. As much as every industry and every company is different they are all the same as well. They have a need to be efficient, they have a need for Intelligence, they have a need to be flexible and adapt that business and they way the work to fit the changing needs of the market (whatever market that may be)
So DUH you may be saying? Well as much as that statement may be obvious people often look right past it. They can't see the forest for the trees is one good old analogy. People are constantly fighting the fires every day and so busy focusing on this quarter, this month, this week they don't have the time or energy to take a step back and refocus. They don't have the opportunity to starting proactively working to prevent the fires, and plan for next quarter or next year so that they are better prepared when it arrives and it is not such a battle. Well I could write volumes on my opinions in some of these areas but the reason why I am writing this particular entry is about the technologies and TLA's (Three letter acronyms) I started it with. I believe that those technologies are the next big thing, and will help those that leverage them alleviate a lot of the problems I previously mentioned. Some of them have been around in some incarnation or another for quite some time and yet are still maturing, evolving and some of them are converging to create new and different genres.
Mainly I believe that BPM, BI, MDA and MDM will begin to be so inter-related they will really be seen as one. Think about it this way.
What is "BI"? Well BI is not just data, BI is (to me) the proper use of data to gain insight and knowledge and the appropriate use of that insight and knowledge to (to better, be more successful, achieve certain goals) *For example* I will use a non business example hopefully one you can all relate to, and that's a household budget. Most of us know we make x amount of money, and at the end of the month, or year we know how much we have left (never enough) so we take how much we made – what we spent and that's how much we have left. We can take a look at some checks, or credit card bills and know where the money went but that's not really true BI that is just the surface. Unfortunately that is where most of us are stuck.
Now, there are those out there that can take this several echelons higher. They know that they spend 22% of their money on housing expenses (rent, mortgage, insurance, real-estate taxes etc) 12% on food, 8% on transportation and so on. They may also be able to tell you that in the months of November and December they spend more discretionary income that other months, or they spend more on fuel in the months of July and August or that the spend more on food during the first week of the month. AND SO ON AND SO ON. Having real insight into your income and expenses in this example is real "BI" it's not just having the data on income and expense, its having it in a format that can help you understand it. And now that I know it I can use that data to either change it, take advantage of it, or plan for it.
Now on to BPM, What is BPM? Ask 10 people and you will AT LEAST get 5 different answers. But for my purpose BPM is ANY process that you can track and manage. Pretty basic broad definition I realize but I like it. Now the best way to be able to manage a process is if you put it into technology and automate it. You will often find that it is very difficult to manage a paper based, non track able process. In our previous example how would you be able to track you're spending if it was all cash. I think this would be much more difficult.
BPM is about managing a process, preferably a computerized automated one. Now this is not to say that the process does not have human interaction with forms, emails, web pages and the like, but even with this it is still automated.
Once we automate this process, and are able to track it, report on it, view it, analyze it etc we basically once again are using BI. Let's take a simple expense report process (keeping in the theme of expenses) I think this is something we have all used and dreaded. If I am a finance guy at an organization with an automated expense report process (and it is a good one) I will now have 2 separate things. The information about the process, how many request were submitted, how submitted them, who approved them, how long the process takes etc etc etc. That helps me gain insight into how efficient the organization is about the process (good information for process improvement) we can call all of this process data. The second thing I have is the data in the process, how much in total was expensed this week, month, quarter, what was the total amount of travel expenses you get the picture.
Generally speaking these 2 data sets are kept in 2 separate and often disconnected systems. All too often running a report and gaining insight into the relationships between the two sets is either very time consuming, very difficult or maybe even impossible. But how awesome would that be if you could quickly and easily see that during the first week of the month 25% more expense reports are submitted than the rest of the month, and that the expense process during this week on average take 2x as long. Or for those expense reports that exceed xyz amount of dollars (that may require additional approvals) take often double the amount of time to process.
Or take that another direction and include the expense data in the process. What if I as a manager when pulling up the expense report form that needs to be approved, had current and historical expense data embedded right within the form and thus the process? Confused? I will elaborate. If I submit and expense report for the month and submit it. This could get routed to my manager for approval. When my manager goes to open the task/form right under my list of expenses he/she could see my total expensed items for the quarter/year, his group's total expenses, his allocated budget and how he is tracking to that budget (in percentage used of budget allocated) And WOW what if they could drill into that data and slice dice it to quickly find out what the total amount of cell phone expense is, or how does this month's cell phone bill I submitted compare to my past ones or that of my colleagues. Would that help me make better decisions about expenses, purchase requests, budgeting? Would it help me better understand my budget? Would it help me perform these activities quicker, which would then of course be measurable since I have that great process data we talked about before?
So the reason why I am blabbering on about this is relatively simple. I believe that the convergence of BPM and BI is happening. People are starting to need this to happen. They may not be asking for it directly or maybe even knows they are asking for it. But it's there, they are, and I believe that if you sit down with them and really dig into what their problems are, what their needs are you will end up at the conclusion that they need it.
So next week need to consider how we get there. I have talked with all too many people that go for "Best of breed" they buy the top shelf product recommended by xyz, to do task XYZ. Or amazingly people still spend immense amount of time, resources, and money to build something that does these things. The problem with these two approaches is.
- Lack of flexibility
- Lack of real end to end integration
- Expertise
As I stated before, companies and especially IT organization need to be flexible to adapt to changes in the business or technology. Having a siloed view and buying a product to do 1 job such as BI, or CRM etc may back you into a corner you have difficulty getting out of quick enough to adapt. The same is true for a home grown system. If you had built a great line of business application and WAMMO some big change occurs, how long would it take your IT organization to step back, plan, code, test, document, and release a new system to respond to that change? The answer…Probably just in time to do it again.
Integration or lack thereof? More and more people are finding a need to not rip and replace. They are finding a need to keep older systems around and augment them with new systems that integrate into them. They need a way to do this, to do this better, and to have it seamless to the business.
I think that as time goes on no longer will the focus be on simple building of applications and various modules. But finding a way to seamless integrate and interconnect systems into a way that can become an orchestration of software across boundaries of mere systems. People will be looking for ways to have a full integration of people, process, and data regardless of who they are, where they are, where the data is, or what system manages it.
Expertise. What happens when IT implements a new system? If you are lucky it's based on some industry standards, is well documented, and easy to use. However what happens if it is not? What happens if the proprietary best of breed application that was bought, merely because it was thought to be "best of breed" does not leverage skill sets you have on hand? How will you implement it? How will you support it? Most likely this will lengthen the implementation time, increase the implementation cost, raise the support costs, make changes to the system or how it is used difficult, costly and time consuming. The same is true for off the shelf and custom built systems. In order to build a custom system you will need developers, each of whom has their own mind their own thought process and development/documentation process. Once built the people that built it are now your expertises in that product. How will you keep that? What happens if some of them leave? Will it affect your ability to manage, support and change that system? Most likely yes. I have worked on several projects in a previous life where this caused major issues. "Oh the guy that wrote that module left, and no one is sure exactly how it works. We have tried to make changes to it but it always causes problems" IF this sounds familiar you are not alone.
So what does this all boil down to? I assure you I have some points in all this.
- Take a step back and think about your business. Does it have good process? Are you sure? How do you know?
- Are the processes automated?
- Do you have good BI
- Do you have good process intelligence (I want to call this PI but I just can't)
Are you making technology decisions based on Best of Breed? Or are you taking into account how each solution can play a part in your overall System/Ecosystem?
- If you are taking this into account how will you integrate each of these applications so that they are easily bridged, used, managed?
- Best of breed
- Are you and your organization trending toward software componentization?
- Are you using dynamic reuse oriented software engineering approaches?
- Are your approaches aimed and rapidly and reliably adapting existing software to respond to changes in business or technological requirements?
- Are you capitalizing on the emergence of MDA (model driven architecture) and taking advantage of automated code generation, code refactoring, model transformation, and model execution techniques in order to this and do it faster?
- Are you looking to be quicker to propagate changes in the design into the implementation?
If you answered a lot of No's to the above then you MAY not be in the best spot you could be, and you MAY not be ready for some of the trends and convergences on their way.
My parting thoughts to you……
An ideal implementation of everything you have read so far may be the creation of a technological infrastructure that can take the form of separate applications residing in one layer integrated in another. You can achieve this in some ways by building in process and BI into the mix, and isolating the management of process in a separate component, that can also help with Integration of these systems. Be it a strong BPM platform with EAI tie-ins or integration capabilities or other. With this BPM platform you should be able to capitalize on the use of MDA infrastructures to avoid hard coding the process into tailor made applications and support the shift from programming to assembling.
Once you do this and make your systems/application "Process Aware" you can then efficiently manage resources, report on resources, process and other data. Another benefit of pulling away any process logic from the application is that you are then able to capture the logic at a high level "Model" which will facilitate the redesign and organic grown. You will be able to enable designers and developers to a change to a process and thus an application by working on a diagram that represents the process, without having to dig through miles of code.
Oh and by the way, I am writing this on a plane with about 2 hours of sleep. So If none of it makes sense, that's my excuse.
For more reading enjoyment google "Organic Development"