"Design products not to fail in the field; you will
simultaneously reduce defectives in the factory."
-Genichi Taguchi

Software is the most treacherous component of any
information system. The other two components, namely
hardware and communications networks by themselves,
have attained a far higher level of performance and
reliability over the past fifty years. Microprocessor
performance, for example, has increased by a factor of
some 200 million times faster than software during this
period.  Modern communications networks, on the other
hand, now provide means to move and access colossal
volumes of data, images, and voice across an organization
and globally. But it’s the design weaknesses in software for
the most part that make information system vulnerable and
unreliable. Even while hardware performance has attained
amazing performance levels, the ultimate promise of any
information system depends on the dependability of its
software.

Currently, the crucial software quality issue is software
dependability, which encompasses various user
requirements including reliability, safety, security, and
availability.  This is close to our concept of trustworthy
software except that we add and emphasize the capability
of meeting customer trust, as well as stated, unstated
and unanticipated needs. These together constitute the
five major challenges of trustworthy software as follows:

1. Reliability: Ability of software to perform under specified
conditions.

2. Safety: Freedom from those conditions that can cause
death, injury, illness, damage to or loss of access and
control of data, privacy, equipment or property or
environmental harm.

3. Security: Resilient to attack, and providing protection of
confidentiality, data integrity, and availability of the system.

4. Maintainability: Relative ease with which the software
can be modified to correct faults, improve performance, or
adapt to a changed environment.

5. Customer Responsiveness: The capability of the
software developer to solicit, interpret and respond to
above customer requirements. It implies possessing
corresponding software design capabilities, ability to train
and transfer knowledge, helping with integration with
existing systems, providing post-implementation support,
providing upgradeable software and systems, and
observing cost and implementation-time requirements of
the customers.

The above constitute the primary aspects of trustworthy
software, but are required to varying degrees depending
on the software category and its application. For example,
Customer responsiveness is particularly critical element in
enterprise software
.
DFTS Process in Practice

Software, compared to other engineered
products, is a case of pure design. Software
unreliability is always the result of design
faults and human intellectual failures. It is
therefore critical that that’s where the
quality issues are addressed. Agilenty’s
Robust Software Development Model
(RSDM) recognizes the design
predominance of the development process
and addresses quality issues upstream.

The model is not meant to be used as a tool
but as part of a software development
process with supporting management
infrastructure, systems and methodologies
consisting of the following key elements:

1. Appropriate infrastructure that provides
required leadership
2. A reliable data collection system that’s
capable of identifying VOC
3. Deployment of Taguchi Methods to
address reliability, cost, and cycle-time
4. Establishing a concurrent coding and
testing practice
5. Providing for adequate debugging time
6. Using an N-version programming in case
redundant software is required
7. Benchmarking appropriate best such as
QFD, TRIZ, and Pugh
8. Using innovative software development
tools
Benefits of Robust Software
Development Model

RSDM is a management system to deliver
trustworthy software. We interchangeably call it
Design for Trustworthy Software (DFTS). It’s a
major organizational intervention with potential for
huge benefits for the organization as a whole.
Conceived, planned and executed well, it delivers
the following benefits:
1. Improved customer focus and satisfaction
2. Improved software development process
3. Major cost savings across the software life-cycle
4. Improved cycle-time
5. Leadership development through Black Belt and
Master Black Belt
6. Improved bottom-line, cash-flow, and growth
potential

© Bijay Jayaswal and Peter Patton

What's trustworthy software?
agilenty
Trustworthy Software> Web Design> Internet Security



>