Sunday, October 20, 2019

Unstructured Business Process(es)


Recently I came across a blog post that discussed the concept of unstructured business processes. You can find it here.

So, what is an unstructured business process (I hear you thinking)... Read on.

Internally at my company, I've always talked about dividing business processes into two types: linear and collaborative. Linear processes have a set, pre-determined path of execution where one activity (step) is dependent upon the previous activity completing. In other words, the process is step-wise (and may loop or branch) and has a clearly delineated execution path from start to finish. Collaborative processes are ill-defined processes where the path of execution is non-deterministic, the order of execution is not defined and the only standard for completing the process is that all (required) activities have completed (either normally or abnormally, but 'done' nonetheless).

So, structured versus unstructured processes is the same set of concepts (with better names that are broader, more encompassing). It turns out, I'm not the only one that sees things this way (and, by the way, I know it is not the only way to segment business process types). There are several others that discuss the inherent differences between structured and unstructured processes (as the blog entry noted above discusses).

One idea that spurred some thought for me was the suggestion that the relative number of structured versus unstructured business processes is analogous to the amount of structured versus unstructured data in the corporate world, which by the way is about 1:10. That ratio suggests that there is *large* market opportunity of unstructured business processes for BPM vendors to tap.

But as I thought about it more, the idea of BPM vendors addressing unstructured business processes was potentially antithetical to the processes themselves. In other words, the idea of applying a BPMS to an unstructured business process would inherently change the unstructured process into a structured (or at least partially structured) business process. So, it seems to me, the nature of the business process is altered and the process is no longer unstructured - walls are built that the process must work within.

That may or may not be a good thing. As I thought about it more, a potential opportunity with unstructured business processes is to reign them in and move them towards a more formalized (structured) process. In fact, this is the very point for applying a BPMS to a business process - structured or not. Formalization of the business process provides the opportunity to make the process reliably repeatable which can be measured and analyzed. This in turn provides the opportunity to manage the process, possibly making it more efficient.

However, it seems to me that in this same group of unstructured business processes there are processes that won't lend themselves to the application of a BPMS. That their unstructured nature is exactly what makes them work - the process itself depends upon and is enhanced by the unstructured, dynamic application of the work.

So, while there may be a large market opportunity with unstructured business processes, it's smaller than the whole set by some amount. Not only that, when choosing which process to apply a BPMS to, care and consideration of the nature of the business process is critical to the success of the project.


Professional Development


This past December 2008, our company held an 'all-hands' meeting day. Basically, we all came together in our main office in Houston to get together before the holiday vacations and do a little internal training and networking.

I gave a presentation to all our consultants about professional development. While I believe there was interest in the topic, I think the presentation was received with bewilderment and a collective "huh?".

Have you ever volunteered for something and then been given the list of expectations after-the-fact (kinda like signing up to send out the church volunteer schedule only to find out that you are really responsible for managing the entire schedule - from finding the volunteers to facilitating communications to filling in for no-shows)? Yeah? That's the response I saw on the faces of our consultants.

I wasn't upset about the reaction. That's happened to me before - I used to be a corporate Java programming and software engineering instructor, and have seen worse reactions as I presented material. But, the reaction did make me think and assess ("inspect and adapt" as the agilists say).

So I did my own personal retrospective of sorts. It's taken me a couple of weeks to process what I can only describe as guarded "what the?" for what I had to say.

Here's my retrospective results:

We simply had mismatched expectations, and that is a communications failure - my communications failure.

I failed to adequately describe what the presentation was about. I just told everyone I would talk about professional development (like I just wrote above). That's it. So, miscommunication happened.

I believe the expectation of our consultants was that I would talk about "How to be professional as a consultant". You know, guidance on proper consultant behavior on and off a clients' site, and ways for managing your time and relationships with a client.

I certainly talked some about that, but my presentation was broader - I came ready to talk about "growing professionally" (not just as a consultant). I included discussion about proper consultant behavior, but also included skills training and company responsibilities as a professional.

Wow. That's really different perspectives. But, they can both be concluded from the same base idea, "talk about professional development". I really missed the mark communicating within my own organization.

So, what's the moral? "Don't let Bill present to our consultants anymore..."

I hope not. Or, maybe I do... Hm...

No, that's not my take-away.

My learning is that communication, whether formal or informal, whether verbal, written, or otherwise has a lot to do with success, especially as a consultant. It is one of the pillars of wisdom for consultants, and affects most, if not all best practices for consultants (and really, for professionals as a whole). Bad communication is the bane of professionals. We all need to develop and keep refining our ability to communicate. It's in our best interest and our customers' best interests too.

So, I'll add communication skills to my "Professional Development" presentation (and at the same time, try to come up with a better title!).

Do you have any good stories about miscommunication that lead to unexpected circumstances? I bet you do!

A Call for Agreement


Can the BPM industry please stop 'defining' what BPM is? Please? Pretty please?

Am I the only one who's noticed that every time someone - an individual or a software vendor or a consultant or a book writer or etc... - talks about BPM, the first thing that's discussed is "What is BPM?".

I even caught myself doing just that as I was drafting a newsletter article recently. Ugh!

I know why we do it. We hear different ideas about BPM all the time that oftentimes don't line up with what we think we know about BPM. So, before we delve into what we have to say about BPM, we feel we have to "set the stage" (so to speak).

Why don't we have one definition? Why don't we all agree? Presumably we are all trying to do the same thing, right? So, if we all have the same goal, then we should be able to state it.

From now on, can we all please reference ONE definition for BPM and reference it? May I suggest wikipedia? Here's the BPM entry.

Now, if you have something you want to add, do it there. Let's discuss it, agree to it, and start using it. I will be happy, you will be happy, and most importantly, clients/customers will be happy they have a centralized reference.

By the way, looking at this entry in wikipedia, does anyone know how to eliminate the proposed merger of BPM and BPI entries? Maybe I should define BPM and BPI for you...

Are we ready for a true paperless society?


Do you think technology is at the point where we can eliminate paper from our standard business process(es) and activities?

I recently had an experience with a company that claims to have done just that - moved entirely away from paper communications with its customers and now relies solely upon email for that correspondence.

Sounds good, and in principle should be a means for cutting some cost (not to mention the number of trees you can save)... That is, until you have a challenge.

Last year, I had a need to store some digital content in a location that I could access via the internet from any location. At the time, I didn't have a good, reliable solution in-house so I started looking at online storage solutions.

In my search for a solution, I ran across XDrive that, as fortune would have it, was offering a special deal to test drive their service for 30 days before you were actually billed for the service ($9.95 per month). And... one could cancel the service at any time in that 30 day window and never be charged.

Of course, I figured I could take advantage of this offer by using and cancelling the service before the end of 30 days. The one thing that bothered me slightly was that I had to provide a credit card number to activate the service. I figured that I would be able to handle the situation though and I signed up.

I used the service over a 2 day period with great success. Then, I went to the website to cancel and could not find ANY indication of HOW to cancel the service. So, I wrote an email to their support group indicating that my account should be cancelled. I forgot about it until I got an email from XDrive about 3 weeks later indicating that I needed to cancel my subscription through their telephone support system, not through their email support group.

So I called the telephone support group, miffed that I was now past the 30 day grace period of the offer. I asked for the service be terminated and that I be credited for the 1st month since I was unable to find the appropriate process for cancellation on their website, and because their email support organization could not "tell" their phone support organization that I wanted to have the service terminated.

The support tech I spoke with was courteous and friendly. I was assured that all would be handled, so I thought no more about it.

Three months later my wife came to me with our credit card bill and asked what the XDrive charges were for. It had been several months since I called the phone support desk to cancel and so I could not find the phone number (and it wasn't on the website). So, I asked the credit card company to refute the charges.

All seemed to go away until 3 more months later when I got a letter from XDrive indicating that there was a computer glitch in their system and all accounts had been tripled-billed. The letter assured all its customers that the problem had been fixed and their accounts credited, but my account had magically been re-activated.

I called the credit card company again to refute the charges and I got a phone number from the credit card company for XDrive support. I called the support desk AGAIN and asked that the service be cancelled, my account be credited for the past months charges, and that I get a confirmation that the transaction had been completed. I was given a confirmation number, told I would receive a confirmation email, and I felt satisfied that I had done my job as a conscientious consumer.

This past week, my wife brought me the credit card statement and sure enough there was an XDrive charge. I called XDrive again, livid that I cannot get this company to stop charging my credit card for a service I no longer wanted and only once ever used. When I got through to a support desk tech, I politely asked for a supervisor right away.

Here is where the story gets interesting and made me wonder if we are really ready for a paperless business environment.

After much wrangling over how my account had been handled, we got to the point where the supervisor told me the account had finally been cancelled, gave me another confirmation number, and suggested that all was well and that I'd receive a confirmation email shortly for my records.

I informed him that this was exactly what I had been told the previous encounter with his company and I asked that I be sent a certified confirmation letter since the process had failed the previous time. The supervisor told me that he "could not do that", that his company only handled business via email. He suggested that I go look in my inbox and that he was sure I'd find the confirmation email.

I did just that while still on the phone, and lo and behold, no email... I told him it had not arrived and that I was not confident this process would work since it had not worked the first time and appeared to still not be working. Again the supervisor refused to send me a snail-mail confirmation letter.

I suggested that maybe there was something wrong with my email address and that he and I should review it and update it if necessary. He politely informed me that he could not do that either. Then he hung up on me. I called back and went over the same issues and he hung up on me again.

To date, no email has arrived. I am uncertain if the account has been closed. What do I do if I get charged again next month? How can a business that charges a consumer's credit card without the consumer's permission get away with that?

In my opinion, these charges are theft. I have notified the company's only representatives I can contact and I have told them in no uncertain terms that I do not want their service.

So, how do we as IT professionals handle a circumstance like this from a technical perspective? With the business constraint that no paper mail will be sent to customers, how can a business ensure that important communications are delivered, in this case, via email?

Well, it can't. The email delivery process has many places where it can fail and none of the exising protocols guarantees email delivery. In fact, with the rise of spammers and other forms of email exploits, email has an even higher chance of being rejected. And, there are no other alternatives to employ at this point.

So, I don't think we're collectively ready to switch business processes to rely completely upon our technologies such as email to create the paperless business. In my opinion, it is only a matter of time until we see legal proceedings calling into question business practices such as the one I encountered (and could possibly still be dealing with, ugh...).

What's your take?

Leaf Blowers


Have you ever seen those guys who cut grass that use a leaf blower?

As I was taking my usual walk the other day, one of them was blowing leaves and grass clippings across the sidewalk into someone's flowerbed - out of sight, out of mind.

That kind of behavior really gets to me. And it's not just landscapers that exhibit this lack of judgment.

I am seeing this kind of behavior with software engineering and application development professionals - especially as the complexity of coding increases.

Here's what I mean.

Software code can be generally thought of as either internal or external with respect to other aspects of a system, specifically if your company is a software vendor. The external code is the code that the source is available and the internal code is the code that the source is private.

What I've noticed is that internal code, if you decompile it, oftentimes looks like the flowerbed where the leaves and grass clippings were blown. It seems that some software engineering professionals allow their code to get cluttered with bad or ill-designed code that has been swept under the mat of abstraction and encapsulation (to use object oriented terms), and left there - out of sight, out of mind.

I urge software professionals and vendors to clean house. Your code needs some spring cleaning. Dust out the cobwebs and sweep under the mats. And then, put in place some best practices (continuous integration with unit tests would be a good start) that will help keep the leaves out of your flowerbed.

Just promise me one thing... Don't be a leaf blower.

Response: OJT is Dead; Long Live Training


I've got to rant. Recently, I was forwarded a link to a blog post by Anne Thomas Manes that poses the notion that SOA is dead. After reading this post, I had to respond:

Obituary: OJT 
OJT met its demise on January 1, 2009, when it was wiped out by the catastrophic impact of the economic recession. OJT is survived by its offspring: mentoring, coaching, experiential learning, Observational learning, and all other training approaches that depend on “hands-on” efforts.
Once thought to be the savior of business, OJT instead turned into a great failed experiment—at least for most organizations. OJT was supposed to reduce costs and increase agility on a massive scale. Except in rare situations, OJT has failed to deliver its promised benefits. After investing millions, businesses are no better than before. In many organizations, things are worse: costs are higher, projects take longer, and work is more fragile than ever. The people holding the purse strings have had enough. With the tight budgets of 2009, most organizations have cut funding for their OJT initiatives.

It’s time to accept reality. OJT fatigue has turned into OJT disillusionment. Business people no longer believe that OJT will deliver spectacular benefits. “OJT” has become a bad word. It must be removed from our vocabulary.
The demise of OJT is tragic for business. Organizations desperately need to make training improvements to their work force. Training is a prerequisite for rapid integration of people and business processes; it enables situational development models, such as mentoring; and it’s the foundational architecture for experiential and observational learning. (Imagine shifting aspects of your business to the cloud without training between on-premise and off-premise work.) Although the word “OJT” is dead, the requirement for training is stronger than ever. 
But perhaps that’s the challenge: The acronym got in the way. People forgot what OJT stands for. They were too wrapped up in silly debates (e.g., “what’s the best job?” or “Skilled vs. Unskilled”), and they missed the important stuff: training.

Successful OJT (i.e., training) requires disruption to the status quo. OJT is not simply a matter of deploying new people and building friendships with other employees; it requires training. And it requires a massive shift in the way business operates. The small select group of organizations that has seen spectacular gains from OJT did so by treating it as an agent of transformation. In each of these success stories, OJT was just one aspect of the transformation effort. And here’s the secret to success: OJT needs to be part of something bigger. If it isn’t, then you need to ask yourself why you’ve been doing it.
The latest shiny new buzz-word will not make things better. Incremental training projects will not lead to significantly reduced costs and increased agility. If you want spectacular gains, then you need to make a spectacular commitment to change. Like Bechtel. It’s interesting that the Bechtel story doesn’t even use the term “OJT”—it just talks about training.

And that’s where we need to concentrate from this point forward: Training.

Yes, that's a parody (not the real blog post). Interesting, no?

In my mind, Ms. Manes' post was nothing short of a call to arms for evangelists, marketing types, and the media to come up with a shiny new buzz-word (or words) for orchestrated enterprise services. SOA (the term) is dead, so we need a new term. Something new to write about - to market, to hype.

We don't need no more stinkin' buzz-words.

My apologies if you find this offensive, but if I were working for a business that decides on a budget based upon media hype (or denouncement, as the blog post suggests), then I don't want to work for that business. Business decisions - and by extension business cases - need to be based upon solid, quantifiable information, not hype. A business cannot hope to survive by investing millions (as the post claims) in unwarranted, unsubstantiated claims of vendors and media. I have a higher (and experienced-based) expectation of the budgetary decision process.

What about you? What do you think? Does your experience indicate that the arrival of a project proposal on a business manager's desk with the moniker SOA make the proposal DOA? I would hope not!

Java Coding Guidelines


Does your company have a standard or set of coding style guidelines for writing Java code? Have you ever tried to write one?!?  From past experience, I'd recommend against it. Instead, I'd point you and your Java developers / programmers to Sun's Code Conventions for the Java Programming Language. This guideline has been vetted over many years and the entire JDK mostly follows it. As a result, most Java programmers are familiar with them, and Java code that follows these guidelines is generally readable by all Java programmers.

That being said, I'm going to ignore my own advice and begin writing a Java Coding Guideline for my company. "Why?" you ask...

Well, I believe that Sun's guidelines are good, but incomplete. Remember, Sun's audience was much larger than my company's audience, and therefore, had to be agreed to by a much more diverse group. Being smaller in size, we have the luxury of espousing and enforcing more specific coding practices - hopefully enhancing the quality, consistency, and effectiveness of our services.

So, where should I start? How does one go about crafting such a document?

Well, I believe the first thing that needs to be done is to create a vision - the same thing I would do for any new project.

Yikes.

Hm... Well, we are an integration and consulting company that works with and customizes software products that are Java-based, so it stands to reason that our Java code should be well-integrated with those products. And our projects generally deploy into enterprise-level production systems, so the code should be high quality, production-ready. And since it's very likely we'll eventually turn over the code to the client, our code needs to be supportable and maintainable by other programmers.

So, the vision is:

To write a set of Java Coding Guidelines that:
  • Enhances my company's ability to write, test, deploy, maintain, and reuse its Java codebase.
  • Consistently and seemlessly integrates with the Java codebase of the software products my company's vendor partners create and sell.
  • Consistently and seemlessly integrates with my company's clients' existing and new Java codebase.

Windows Registry Nightmares


I remember Windows (and DOS) before it had a registry... Do you remember? Remember the Win.ini and the System.ini files (and Autoexec.bat and Config.sys)? Seems like a lifetime ago - and for some of you I guess it is...

At the time, configuring Windows sure was simpler. Simpler and easier. Simpler and easier and LESS RISKY.

Not so anymore... Today, the venerable INI files have been (mostly) replaced by the Windows Registry.

Have you tried editing the Windows registry manually. Go ahead. On Windows XP or Vista, try to uninstall an application - or better yet, a Windows installed service - manually. I dare you!

What's that you say? I must be crazy? That's insane? No one is dumb enough to try that? Well, I tend to agree with you. I consider myself a fairly experienced PC/Windows guy, but even I think twice before using REGEDIT.

But I do use REGEDIT.
Why? Because I have to.
Why? Because lots of software uninstalls poorly...
And I'm fed up with it!

This behavior reminds me of the bad 'ole days of "DLL hell". Anybody remember that? Where a software would install a DLL with the same name as a system DLL, or worse, it would install a system DLL that was the wrong version? Inevitably, it would screw up your system (in weird ways) and was masterfully difficult to troubleshoot.

And no, "DLL hell" hasn't gone away, but it's gotten better - or at least now it has to share the infamy with "Windows registry purgatory" (Wrp).
(Made that up myself... you think it'll catch on?)

For those of you who have not experienced Wrp (pronouced 'warp'), let me shed some light on this phenomenon. But first, read this to see what the Windows registry is so I don't have to spend a week relating my limited knowledge of the Windows registry.

In the Wikipedia article, near the bottom, there's a somewhat inconspicuous bulleted list item under the heading Advantages and disadvantages:
  • "Any application that does not uninstall properly, or does not have an uninstaller, can leave entries in the registry. Over time the computer suffers "Software Rot" as the registry fills with left-over and possibly malfunctioning entries."
This is the nasty bugger... This is the root of my pain.

Why doesn't software written for the Windows platform clean up after itself well? Is it really that hard?

Ok, yes, it is kinda hard - especially if you register COM controls and/or Windows services. But, that should be part of the price of selling software on the Windows platform in my opinion.

This is the kind of software engineering I alluded to when I wrote about "Leaf Blower Coders". Face it, 
the job is not done until all can be undone.

So, why is this a pain? I mean, really... all that's happening here is that there are orphaned registry entries that can't *do* anything and while it may bloat the registry, it's just a nuisance, right?

WRONG! Very WRONG!

As consultants, integrators, and custom solution providers, it is often common for clients to ask us to install software for them - usually on DEV or QA platforms. We act as experts and the client watches and learns as we show them how their software is loaded and configured. It's also not uncommon for us to be asked to *re-install* software that has been installed incorrectly, or we ask the client to *re-install* software themselves to insure that they have learned how to do it correctly. And THAT is when the uninstall becomes oh-so important.

It's in these *re-install* moments that orphaned registry entries can wreak havoc, I mean REALLY BAD BAD juju, on your day. I won't bore you too much more with details because I've rambled enough already, but orphaned registry entries (and really, *any* orphaned stuff) left hanging around after an official uninstall will cause untold problems with re-installing software - nearly always ending up with a failed install (or worse, an install that appears to work, but you don't find out it really doesn't work until much later after you've spent too much time trying to figure out why the software seems buggy).

So, here's my newest plea to Microsoft platform software vendors...

Please, please read the whys & wherefores of the Windows registry design and use - here, here, and here are good places to start. Take the time to map out all the registry entries your software makes when it installs and over the lifetime your software is installed (as well as any other configuration changes your software makes to the system as a whole). Document that in your software documentation. And then create a stand-alone uninstaller that reliably, repeatably removes them. We, your users and partners, need help to keep the Windows registry beautiful and tidy for future generations. Thank you.

Supersize Me


Recently, while preparing for a new engagement, I was re-familiarizing myself with Oracle because the application(s) I will be working with require an RDBMS and the client has chosen Oracle.

So, because I have experienced Oracle installations in the past, I decided not to install Oracle on my laptop. Instead, I planned to install it on a virtual machine (vm).

Now if you've ever worked with a vm, you know the first thing I had to do was create it... (if you haven't worked with vms, I recommend you check out VMWare). Just for completeness, the vm system was planned to be Windows 2003 R2, the latest version of Oracle, and Vignette Records and Documents v7.3.1.

Since we use vms quite frequently, I have a set of commonly used "base" vms with the operating system (OS) already installed (and a few development tools like Adobe PDF Reader, WinZip, and Eclipse), so I just started with that. I built these vms with 10GB hard disk. That makes the vm fairly easy enough to copy (to either a shared drive or a 16GB flash drive and large enough to load the software we work with. So far, that has been workable... that is, until now.

The Oracle 11g download (Windows 32-bit) is 1.73 GB in size.. AND, it's a ZIP file. That's the installation file! I'll spare all the details of getting this monster software installed. However, to get it into the vm, unzipped, and installed, I had to remove all 'other' software installed except the OS and when it was done (btw, I installed the standard edition, not the enterprise edition), I was left with less than 200 MB free! After deleting the ZIP & installation files and configuring a new, basic database within Oracle, I was left with 1.67 GB free out of 10 GB. That's right, just the OS and the 'standard' edition of Oracle - more than 8GB disk space required.

And there's wonder in the industry why software development is so difficult...

Exactly how much is 8 GB anyway? Does anyone really have a good feel for this number? Or is it just a number? Trying to wrap my head around 8 GB reminds me of my high school days trying to understand Avogadro's number. In case you don't know what that is, look here. Avogadro's constant is 6 x 10e23... that is 600,000,000,000,000,000,000,000 (or about that much).

So, 8 GB seems relatively small compared to that, but still it's a hard number to conceptualize... 8,000,000,000 bytes (and a byte is 8 bits). So, this is the equivalent of about 8,000 uncompressed novels or about 10 2hr movies.

When I think back on my career, I'm floored by these numbers - these sizes. We have definitely supersized ourselves in the IT industry. We need to go on a diet, but not just a diet of size - a diet of complexity. If we did that, software quality would go up because there is a direct correlation between complexity and software quality.

Stop supersizing your code.

What's Your Persona?


I recently read a blog article by Kas Thomas called "Programmer Personas". Apparently, some time ago when developing Visual Studio, Microsoft spent a good deal of time classifying programmers into different personas in an effort to better design the developer user experience ("What is an End User Software Engineer?"). The personas Microsoft identified were (I copied these descriptions from Kas's blog post):
  • THE SYSTEMATIC DEVELOPER: Writes code defensively. Does everything he or she can to protect code from unstable and untrustworthy processes running in parallel with their code. Develops a deep understanding of a technology before using it. Prides himself or herself on building elegant solutions.
  • THE PRAGMATIC DEVELOPER: Writes code methodically. Develops sufficient understanding of a technology to enable competent use of it. Prides himself or herself on building robust applications.
  • THE OPPORTUNISTIC DEVELOPER: Writes code in an exploratory fashion. Develops a sufficient understanding of a technology to understand how it can solve a business problem. Prides himself/herself on solving business problems.
Generally speaking, these classifications are rather broad, but I think I can fit most programmers / developers into one of these classifications.

Do you do the same for your customers / clients when you design your software? Probably not. However, given the fact that more emphasis is being placed on user experience all the time AND the fact that identifying user roles / groups is a core requirement of BPM-related projects, you should.

For your next project, take time at the front end (plan it in) to classify your users and design / build your application to cater to these user personas. It will make your application better, and more importantly, your application will be better received by your users.

Solutions in the cloud


Everywhere I turn or read these days, I run into the idea of 'cloud computing'. I guess it's the term of the moment - the latest IT jargon with the most spin. I've even added to the discussion by giving an internal discussion / presentation to my company last week over this very topic.

To get a somewhat accurate idea of what cloud computing is, go to wikipedia here.

For those of us who've been around for a number of years in this IT world, we recognize that cloud computing is just more spin and fodder for headlines. In fact, cloud computing is not a technology at all. It's a way to describe computing capabilities without owning and managing the IT resources. So, it's just a handy umbrella term for referring to that computing paradigm collectively.

Many wonder, and I've been asked, how 'cloud computing' differs from other similar terms like web hosting or data centers or even timesharing. My answer is that all these ideas / technologies are all collectively (along with other services and technologies) part of cloud computing - not different from it. In other words, if you're doing web hosting or you have your database housed offsite, you are doing cloud computing.

As a company, we've been looking at how we can leverage the cloud computing paradigm for our clients. We believe there is substantial potential for using cloud computing technologies such IaaS (infrastructure as a service) or PaaS (platform as a service) to reduce the cost barrier for introducing or modernizing enterprise applications in an organization as well as moving the cost for these technologies from a capital expense budget item to an operating expense budget item (essentially amortizing the cost of these computing technologies - similar to purchasing electricity a the local utility).

How does your organization view cloud computing?