Chris Doig, CEO of Wayferry Managment, wrote an excellent article for CIO that discussed five issues related to inadequate requirements identification when selecting enterprise software that can wreak havoc on an organization. The article inspired me because those same five requirements issues apply to cloud computing projects. In this article I'll look at each of the issues, and explain how failing to identify or address cloud computing requirements can cause serious and costly problems for your organization. I'll also give you some tools and strategies for avoiding these problems.
One quote from Chris' article applies directly to cloud computing projects:
"Requirements are to <cloud projects> as foundations are to a building. Get them wrong or leave things out and there always will be problems."
1) Inadequate Functionality
When talking about functionality in software, most IT professionals think about what the software needs to do. Of course, if software doesn't do everything is needs to, people can't do their jobs. Although its often difficult to identify all requirements for software, the problem is obvious. When planning cloud projects, the problem is not always so obvious. Requirements identification is difficult and time consuming. It can be tempting to do less than exhaustive requirements planning, especially around legacy applications, or integrated applications and services. Especially if services are well known. Two big name brand cloud services will always work together right?
Integrating cloud services with on-premises systems, or other cloud applications can be as simple as clicking a button and adding some organization specific information or credentials. It can also be as difficult as writing a custom interface, essentially an entire new software application, to make two systems work. The difference between the two can be days versus months of implementation time, and tens or hundreds of thousands of dollars when you factor in development costs and lost productivity. You also have to remember that application integration is nuanced. How two applications work together, things like when data from one is visible in the other, and how access is granted between the two, may be just as important in terms of process and business capabilities as getting the different applications to communicate. Failure to properly identify if integrations exist, how they are implemented, their depth, and business process requirements can be costly and time consuming.
2) Discovering New Requirements During Implementation
As with software implementations, if you fail to identify all requirements ahead of implementing a cloud project, that failure will come to light during implementation. Cloud project teams will have to discuss the new requirements and find a way to address them. As Chris said in his article, "these meetings take time to organize; they consume time, and they slow down decision-making. This exerts pressure on implementation project deadlines."
Cloud projects are also susceptible to a particular type of new requirements, mobile access. The cloud is known to be always on, always available, and mobile friendly. If it's in the cloud, I can get it from my mobile device. One benefit many organizations hope to achieve by moving to the cloud is to make applications and systems accessible from mobile devices. This may be just to address how employees and clients access systems, or may be part of a larger Bring Your Own Device (BYOD) initiative. The problem is, that mobile access is dependent on the application, not on where is lives. Your five year old application that isn't mobile friendly today running on-premises will not be mobile friendly tomorrow running in the cloud. A web-based app may become more mobile friendly, but, depending on the app and how web pages are laid out, the mobile version might be an unusable mess. Applications generally need to be rewritten to some extent to become mobile friendly.
3) Implementing New Requirements During Implementation
To paraphrase Chris's article, if you decide to implement new requirements, your implementation workload increases. Many organizations have to perform trial and error resolution steps to resolve the issue which may mean exploring new software configurations, writing small (or large) amounts of custom code, purchasing additional services, or buying third party software. This is the same for cloud projects as it is for software projects. Finding a lot of new requirements, or even one time consuming one can cause project delays and cost overruns.
4) Business Disruption
If cloud systems are inaccessible, work differently than expected, integrations don't work, or data is not accessible, then business processes will be disrupted. Employees, partners, and clients may not be able to access required information. Performing routine job tasks may take longer. These issues can cost you money, clients, and even brand reputation.
5) Unmet Expectations
As Chris stated in his article. When problems are identified due to missed requirements, IT staff and users must "scramble to resolve the problems. Typically, this takes the form of ad-hoc business process reengineering and it imposes significant extra work on employees" and IT staff. This may get cloud project managers fired. It may sour senior leadership on further cloud projects, and it may even stop cloud implementations while only partially complete.
But there's another issue. As we discussed in a previous article, you often have to sell senior leadership on cloud projects before getting the green light. There is often internal resistance to cloud adoption, so others in your organization might be more than happy to point out missing requirements during your presentation. If senior leadership discovers that you haven't properly identified requirements, your cloud project might be stopped before it ever starts.
Strategies for Ensuring Discovery and Planning for Cloud Project Requirements
Requirements discovery is a long and often complex process. It's also something that must be done right. One of the first steps you can take when considering a cloud project is to assemble a team that has members who are familiar with systems, applications, and business processes. These people will bring their expertise to the table, and allow you to perform a better discovery, faster. They can also often identify people within departments who can shed light on obscure business processes and requirements. Another key is preparation through training.
The CloudMASTER cloud computing classes delivered by CarverTC cover requirements planning in depth. The Cloud Technologies course discusses application requirement planning, and migration requirement planning and has an activity devoted to planning and executing a migration to cloud software. The Cloud Architecture course devotes an entire lesson to assembling a strong cloud project team, including identifying key roles in the organization and on the team. It also goes into detail about how to use best practice documentation processes, leverage internal resources, and use third party tools to aid in discovery of requirements. Beyond that, the Cloud Architect has you identify and document requirements in each lesson, essentially letting you do a "dry run" of your cloud project plan and presentation. This allows you to get feedback from both the instructor and other students on your plan, and your requirements identification. From this you'll gain invaluable insights and experience you can bring back to your organization and apply to your real cloud project plan! If you choose to get certified, the CloudMASTER cloud computing certification will provide proof that you know how to plan a cloud project to avoid the pitfalls poor requirements identification.
CarverTC provides CloudMASTER cloud computing classes and certification prep in the Portland Oregon area and across North America.