The global spending on enterprise software hovers around U.S. $605 billion. To ensure an efficient production process, teams incorporate several methodologies and approaches to the development lifecycle, two of which are Agile and waterfall. While Agile has been gaining momentum in recent years, waterfall still has its place. While thinking of software as layered technology, the waterfall approach can be used alongside this mindset, working as a parallel, complementary concept. This article will provide a brief overview of how the waterfall approach works and how it can easily reconcile with the concept of software as layered technology.
Want More Tech News? Subscribe to ComputingEdge Newsletter Today!
Waterfall provides a sequential, step-by-step approach to software development, consisting of six distinct phases:
In many ways, a waterfall can be compared to a traditional assembly line-based production process in the automotive industry. Decision-makers decide what’s required, designers draft models of the vehicle and its components, and the product is built on the assembly line, tested, released, and then maintained by mechanics at dealerships. In this sense, a waterfall can be used in a wide variety of development scenarios and across many industries, not just information technology.
In the context of software dev, waterfall may be using the following steps:
A successful waterfall process hinges on getting the requirements and design just right. All stakeholders need to either be at the table or have their needs represented by someone else, especially because creating new iterations can be time-consuming further along in the lifecycle. This is partially why developers conceived of the Agile approach. But waterfall can, in many situations, work just as well, including within the context of software as layered technology, which includes four key facets:
Here’s how they intersect:
The key to making waterfall and the layered aspect of software development play well together is to use layered principles to evaluate and design each phase of the waterfall process. In other words, you use the four elements of software as layered technology as a set of checks and balances to ensure your waterfall dev is meeting core objectives. Here’s an example of what that may look like.
Suppose your organization wants to develop a mobile customer relationship management system, specifically for remote workers who want to use their mobile devices while supporting the sales process. The CIO has decided to use a waterfall framework.
Step 1: Establish How Layered Technology Principles Will Be Applied
The product manager sits down with stakeholders, and they work together to specify:
Step 2: Frame the Waterfall Structure Using the Layered Technology Principles
As the project manager decides which team members will be included in waterfall development and what they will be doing, they build all decisions around the layered principles.
For example:
In the end, the team uses waterfall to produce and maintain an app that conforms to the principles of software as layered technology. In this way, you can maintain the logical, sequential approach that makes waterfall effective while still ensuring the process and product conform to software as layered technology principles. You not only get the best of both worlds, but the two worlds complement, support, and improve each other.
To keep your finger on the pulse of technology, you can depend on the IEEE Computer Society. Whether you want information on the latest development standards and technologies or to connect with other professionals, the Society has you covered. Subscribe to the newsletter today.