Introduction

This module covers the physical aspects of Waterfall-based development practices. The Waterfall development methodology has been a traditional approach for managing the software development life cycle (SDLC) for several decades, and is still a viable and recommended approach today for projects that require significant up-front analysis, design, planning and/or involving large, geographically disparate teams.

Concepts

Waterfall teams differ from Agile teams

  • Waterfall teams work on particular phases and aspects of the SDLC (e.g., Requirements, Design, Implementation, Test, and Maintenance will typically involve separate teams)
  • Teams are generally not cross-functional
  • Teams do not need to be co-located
  • Meetings are frequent, requiring corresponding meeting spaces and/or virtualized meeting environments

Projects are Managed by Managers

  • The different teams in a Waterfall project are typically managed by one or more managers (may or may not have technical expertise)
  • Project managers may also be used (may or may not have technical expertise)
  • A large project may include multiple management levels

Large Waterfall Projects May Require Multiple Environments

  • Development
  • Test
  • Production
  • Combinations of Dev/Test/Production

Workspaces

Since Waterfall teams do not need to be co-located, Waterfall offers greater flexibility in the layout of workspaces. Moreover, different teams can work in workspaces having entirely different structures.

Examples of Different Workspaces and Environments are discussed:

  • Cubicles

  • Open Spaces

  • Mixed WorkSpace Design

enter image description here

Example of a modern cubicle workspace with high walls

Source: Millerab.com


enter image description here

Example of an open workspace at Microsoft

Source: A tour of my Microsoft workspace

Mixed WorkSpace Designs

Workspaces may also have a mixture of open spaces, invidual workspaces, and collaborative workspaces.

enter image description here

Example of a mixed workspace

Source: www.hok.com

Patterns

Requirements Team

Requirements teams work frequently with project stakeholders/product owners

  • For development of Enterprise systems (i.e., software to be used within an enterprise), requirement team members, often called business analysts, work closely with members of the business unit for which the software is being developed

  • These same benefits apply to a design workshop . In contrast to a requirements workshop it does not include customers, but it does include all members of the feature team–the people with skill in programming, system engineering, architecture, testing, UI design, database design, and so forth.

enter image description here

Requirements Gathering

Source: Requirements Gathering Techniques for IT Business Analysts


Requirements may be gathered at a meeting using large, movable sheets, enabling the BA to save the requirement data and keep it nearby.

Example of Gathering Requirements using movable sheets

Example of Gathering Requirements using movable sheets

Source: How to run a user-centered, requirements gathering workshop


Design Team

The design team includes software architectures, data architects and data models, and other software developers. Software design teams also may be divided, such as using separate teams for data modeling and back-end design work and front-end (UX) design. Design team member workstations are generally similar to those used for developers (see below). Dependent on the design tools used, a design team may need a one or more separate servers to host the design tools and the models they generate. For example, and example of a design tool typically run on a separate server is DigitalML Ignite.

Since many aspects of software design is visual, it is common to have large diagrams displayed in designer workspaces. Such diagrams may include data model diagrams, software architecture diagrams, and user experience (UX) diagrams.

enter image description here

UX team Collaborative Design Space (Walmart)

Source: uxpamagazine.org


Development Team

Software developers may use a wide variety of workspaces, including open workspaces and individual cubicles, or even individual offices (for lead developers). Developers also may telecommute or be part of a remote or offshore team. Under the Waterfall model, collaboration among team member is less important that for Agile approaches, and does not (generally) require use of shared workspaces to facilitate pair programming or the like.

enter image description here

A typical software developer workstation including all of the essentials (dual monitors, phone, Starbucks, and bottled water)

Source https://peoplesofttipster.com/category/how-i-work/


Test Teams

Software testers are often described as their own breed, and have there own preferences for work environments. Such environments include test “caves,” test labs, open space test environments. It is also becoming more common to have offshore or otherwise remote test teams.

Test teams using work in with a test environment, as opposed to the production environment used for operations. As a result, the physical environment requires facilities for both test and production environments.

enter image description here

Internet Explorer Performance Lab at Microsoft

Source: http://www.extremetech.com/extreme/118549-microsoft-creates-mini-internet-to-reliably-test-and-improve-internet-explorer


Testing may also involve multiple test environments, such as shown below.

enter image description here

Separate equipment required for multiple development, test and production environments

Source: testyantra.co.uk


Operations/Maintenance Teams

The operations team is responsible for operating the software system. This may include maintenance aspects as well, or the maintenance team may be separate. There is also a movement towards “DevOps,” which combines the roles of development and operation into a single role. The operations team works in the production environment, which has its own set of production equipment (e.g., servers, software, storage, networking, etc.).

Software as a Service (SaaS) is typically deployed in a data center. All or a portion of the operation team members may work in the data center, or may work remotely using APIs that facilitate interaction with data center equipment. For example, a large number of SaaS deployments are implemented using Amazon Web Services (AWS), which provides various API’s that enable operations engineers to install and deploy Web services remotely.

Meetings, Meetings, Meetings

Meetings are a central communication pillar in Waterfall. For example, a senior designer or architect on a large development project may participate in multiple meetings a day. Generally, the meetings may be any of in-person, on-line virtual meetings, via teleconference, or a combination (some participants meet in person, while others are either on-line, or via teleconference). It is common for companies to have conference rooms for conducting the meetings, and large companies will typically have conference rooms of different sizes. A conference room may include a projector and/or one or more large wall monitors.

There are also situations under which “all-hands” meetings are conducted. Depending on the company, it facilities, and its practices, an all-hands meeting may be conducted on premises or off-premises (for larger companies).

enter image description here

Example of All-hands meeting on company premises

Source: Pure Storage Office Photos

References

[1] International Facility Management Association