Manage Learn to apply best practices and optimize your operations.

Cloud development can make the dream of software reuse a reality

Cloud development might be treated as just another IT buzzword, but it could be what finally turns CIOs' elusive dream of efficient software reuse into reality.

I don't think I am going too far out on a limb when I claim that our CIO role is one of the most challenging in any organization. We have to achieve two sometimes competing, sometimes complementary goals, all while supporting every known internal and some external business processes. The two at-odds goals are these:

Niel Nickolaisen
The Real Niel
Niel Nickolaisen
  • Getting an organization's IT house in order by ensuring quality, cost-effective delivery of services.
  • Exploiting technology to enable an organization's strategy.

In trying to achieve these two goals, I have found it necessary to pick my battles carefully and wherever possible, to minimize risks and costs by reusing what I or others have developed and proved already. For example, I did not invent the production change process that I use. Instead, I simply mimic the process that others have used successfully for years. As a CIO, inventing a technology or process carries a certain risk and cost that I sometimes am not willing to pay.

I take this approach with business applications also. I cannot imagine a scenario in which it would make sense for my software development team to create a general ledger or word processing application. Someone has done that work already, and I will reuse their code by buying their applications. That leaves me and my development staff to focus our work on the applications that are so specialized that we need to do the work ourselves.

This is work I have always been happy to take on. Given the choice, however, I would still prefer to find and reuse what already works -- even for these specialized applications. Say what you will about cloud computing being the latest in a long line of IT buzzwords, it still seems that cloud computing is making my software reuse dream more of a reality. Let me describe something we can do today.

We decide to use a cloud environment for our software development. To be used by multiple, disparate users, this cloud environment must support a defined set of technological and architectural standards. In selecting this cloud environment, we are choosing to use these standards. Because everyone else using this cloud environment also chooses to use the same standards, there are opportunities for reuse.

Suppose I want to build a cloud-based application to manage my highly specialized sales quotes. My process, while generating highly specialized quotations, actually consists of some fairly standardized business rules. For example, my quotation review and approval workflow process is no different from what others do. Now, what if someone else already has created -- also in the cloud environment -- a workflow system for reviewing and approving sales quotes? Then I have something I can reuse rather than create. I still might need to develop portions of my system, but if I can use what someone else has created and proved already, I can reduce my costs and risks. By joining and tapping into the community of cloud environment users, I might be able to develop better products at lower cost and with fewer risks.

Of all the talk about cloud computing, the ability it gives me to access highly specialized but common applications might be an aspect of cloud computing that best helps me reach my two IT leadership goals: achieving operational excellence and enabling strategy.

Niel Nickolaisen is CIO at Western Governors University in Salt Lake City. He is a frequent speaker, presenter and writer on IT's dual role enabling strategy and delivering operational excellence. Write to him at

Dig Deeper on Enterprise application development, DevOps and software agility

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.