Handshaking

Requirements Communication

Requirements communication is the process
of conveying needs from a given customer to a given supplier that
enables the supplier to implement a solution that is accepted by the
customer.

Requirements communication is challenging. How should a
given customer collaborate with a given supplier to achieve shared
requirements understanding? Traditional techniques for requirements push (e.g. requirements specification techniques) ignore the supplier. Requirements pull (e.g. the inquiry cycle) ignores the customer. Established balanced techniques
(e.g. Quality Function Deployment, QFD) that involve both customer and
supplier are unnecessarily rich and have scalability issues. Agile development
approaches the problem by reactive error correction and so far does not
address proactive agreement on requirements understanding before
development.

We propose a pragmatic approach to requirements communication.
When following the pragmatic maxim formulated by Charles Sanders Peirce
at the beginning of the last century, the meaning of requirements is
visible in the design that results from these requirements. It is risky
to pursue the idealistic idea of perfect requirements specifications.
Too much effort will be invested in uncritical requirements, while
acceptance of the intended solution cannot be guaranteed. Instead,
misinterpretations of given requirements should be caught by choosing
the right design from all possible alternatives.

Dialogue between Customer and Supplier

Can requirements be frozen before design, or does software design affect requirements?
The figure illustrates a case observed in industry that shows how
requirements are identified as an answer to proposed design. A product
manager asked a development team to support Cyrillic characters. The
team proposed to partially implement a GUI configurator that was planned
for a future project. The product manager felt that the proposal had a
negative effect on a so far unstated requirement that he did not think
he would have to specify: product reliability. The team answered by
deferring the initial proposal and proposed the alternative of using
unicode text fonts. The product manager accepted that proposal. In this
example, requirements were adjusted as an answer to proposed design, and
a seemingly valid but unacceptable design was replaced to account for
these requirements changes.

How much does design affect requirements?
In another case, we observed a 69% change of the requirements
specification when a product manager was confronted with proposed design
for the first time. The design was changed by 33% to account for these
requirements changes. The effort for identifying and negotiating these
changes corresponded to only 3% of the total effort invested in
requirements communication. As a consequence, the product manager
continued to study design proposals from other teams to even further
improve the intended product. In this example, negotiations of
implementation proposals were used to improve the value of the initially
intended product.

Handshaking with Implementation Proposals

We are using a negotiation process, called handshaking with implementation proposals,
to communicate requirements effectively—even in situations where almost
no written requirements exist and where distance separates the customer
from developers. Handshaking is an efficient technique that uses
architectural options as a way to understand requirements, to make
implementation decisions that create value, and to establish the
foundation for a stable project. The handshaking process supports the
communication between a company’s product management and its development
organization, with the former acting as a customer of the latter.

Using handshaking with implementation proposals to replace requirements handoffs led to recognized improvements in industry.
The development projects that we accompanied with our research targeted
new features for existing software products or product lines of
software-intensive systems. The projects lasted from three months to two
years with staffs ranging from four to more than 50 engineers. Seven
projects were collocated, and three were distributed over three
development sites in Europe and Asia.

Strengths: Customers
and suppliers established a win-win dialogue with improved requirements
and improved identification, analysis, and selection of alternatives.
Customers obtained more and better information for decision-making.
Suppliers achieved a deep, agreed understanding of requirements.
Handshaking practice correlated with planning accuracy.

Limitations:
Some requirements could not be communicated because they have not been
sufficiently justified. Writing implementation proposals required domain
knowledge. Requirements understandability did not improve for people
not involved in requirements communication.

Ongoing and Future Research

Government procurement is an important
economic factor. The countries that signed the agreement on Government
Procurement (GPA) have agreed to apply principles of transparency and
non-discrimination for the procurement of software and software
development of a given minimum size. Current research addresses the
question how the dialogue between customer and supplier can be supported
in such regulated tendering.

Calibration of the handshaking process affects
the pre-project planning effort. Not all requirements need to be
handshaked to achieve a good-enough requirements understanding. Current
research addresses the question how much design is needed for stable and
predictable project planning.

Adopting Pragmatic Requirements Communication

We encourage practitioners to test handshaking with implementation proposals for requirements communication.
Start writing and negotiating implementation proposals for customer
requirements that are vague or volatile or that are critical for mutual
understanding. Implementation proposals can be quick and dirty initially
and refined after reaching a first agreement. They helped our
industrial partners use domain knowledge and experience to reach an
agreed requirements understanding efficiently and became an important
input for robust project planning.

To seize the full benefits and
ensure consistent use of handshaking in your organization, the
technique must be properly institutionalized and managed. This requires initial effort, but the returns become rapidly evident.