Managing requirements for cloud-based applications

Managing requirements for cloud-based applications

Is the requirements management process different for cloud-based applications? If so, how?

    Requires Free Membership to View

    When you register, you'll receive targeted emails designed to keep you informed of the most relevant information on Agile development, application security, testing & QA, software requirements, and more.

    Hannah Smalltree, Editorial Director

    By submitting your registration information to SearchSoftwareQuality.com you agree to receive email communications from TechTarget and TechTarget partners. We encourage you to read our Privacy Policy which contains important disclosures about how we collect and use your registration and other information. If you reside outside of the United States, by submitting this registration information you consent to having your personal data transferred to and processed in the United States. Your use of SearchSoftwareQuality.com is governed by our Terms of Use. You may contact us at webmaster@TechTarget.com.

The software requirements management process is not different for a cloud-based application, relative to an installed, or "thick client" software application. You can use an Agile or Waterfall process for either, but the nature of deploying a cloud-based application may enable you to get additional benefits from using an Agile process for incrementally improving your product. There are several constraints that impact the frequency with which you can release new versions of a software application. 

One of the constraints on update speed is the frequency with which your customers are able or willing to update the latest version of your software. When your customers use your product as one of several components in their architecture, they cannot make the "should I upgrade?" decision in isolation – they have to take into account how changes to your product may require other products to be updated simultaneously. Even when your product is used in isolation from other systems, it may be providing functionality that is important for one or more business processes – and changes to your product may require changes to your customer's processes.  Changes to your product, if visible to users, at a minimum require your users to learn what is new. This may require training, and your customers may incur an indirect cost to upgrading. A cloud-based application is subject to all of these constraints. An installed application is additionally constrained by the cost – to your customers – of deploying and installing your software.

Minor changes, however, such as bug fixes and performance improvements, with no changes to the interfaces (either human interfaces or machine interfaces), can be made to a cloud-based application, and your customers will realize those benefits without incurring any tangible costs. If installed software is updated quarterly, cloud-based software, with all other factors being equal, could also be updated with significant quarterly releases and minor enhancements on a monthly (or even weekly or on-demand) cadence.

Cloud-based applications may need additional security requirements, if access to those applications is less tightly controlled than for applications that are run on a single device or behind a firewall, where access is presumed to be restricted to authorized users only. Many cloud-based applications use architectural designs that allow multiple customers to share resources (like network bandwidth and data storage repositories) – they will need additional requirements for restricting access to information such that one customer cannot access another customer's information or resources.

This was first published in December 2011