IEEE Computer Society Team
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!
How Does Waterfall Development Work?
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:
- Requirements. Product teams and C-level executives decide what the application needs to accomplish.
- Design. Software designers map out how to meet core objectives with code.
- Development. Dev teams build an iteration of the software.
- Testing. Internal teams test the software to see how well it works — sometimes referred to as an alpha test. If it fails to perform, the process reverts back to either the design or development phase.
- Deployment. After passing an extensive testing process, the application gets deployed to the public.
- Maintenance. The solution is updated as the public, and internal team members, discover issues. The team releases new versions and patches that address functionality and security concerns.
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:
- A focus on quality
Here’s how they intersect:
How Waterfall and the Concept of Software as Layered Technology Can Work Together
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.
Software as Layered Tech and Waterfall Example
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:
- Quality: the objectives of the app as well as how it will produce an effective user experience (UX)
- Process: the coding languages, tools, and frameworks used to build the user interface (UI) as well as the databases and other dependencies that will power the app
- Method: the steps that will be used to communicate, assess requirements and their fulfillment, design the application, test, and support it
- Tools: the technologies used to execute Process and Method while maintaining Quality
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.
- The product manager’s team evaluates the result of each waterfall phase using the layered technology quality standards.
- The process and frameworks driving the design, development, testing, deployment, and maintenance phases are periodically checked against what was decided in step 1 using the layered tech principles
- The methods used during all phases are built on those chosen while applying the layered tech principles
- The tools implemented are chosen based on those identified in the layered technology assessment process
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.