Document 11072541

advertisement
\
*\
ifT'Tvi
n ^1*5
1S88
•FB 5
L!'r>p
ALFRED
NEC:
P.
WORKING PAPER
SLOAN SCHOOL OF MANAGEMENT
Standardization Strategy for a Distributed
"Software Factory" Structure
Michael
November 1987
A.
Cusumano
WP //1954-87
MASSACHUSETTS
INSTITUTE OF TECHNOLOGY
50 MEMORIAL DRIVE
CAMBRIDGE, MASSACHUSETTS 02139
f^rr
\
^
NEC:
Standardization Strategy for a Distributed
"Software Factory" Structure
Michael A. Cusumano
November 1987
WP //1954-87
ir'EB
5 1988
RECEiVEO
Michael A. Cusumano
Sloan School of Management
8
November 1987
Software Project Paper #5
NEC: STANDARDIZATION STRATEGY FOR A DISTRIBUTED
"SOFTWARE FACTORY" STRUCTURE
INTRODUCTION
This paper
is
part of
a
larger study examining the question of whether or
not companies are choosing to
manage
large-scale software development with
organizational
as
as
well
a
complex engineering activity such as
a
range of strategic considerations and
approaches that corresponds
technological
spectrum usually associated with "hard" manufacturing,
i.e.
job shops,
organizations, and factories exhibiting various degrees of flexibility
mixes
The research
and technologies.
project
technology and policy criteria defining what
might look
like;
a
survey
the
includes
a factory
in
relation
in
the
batch
product
proposal
of
environment for software
of major software facilities in the U.S.
determine where firms stand
to
to these criteria;
and Japan to
and detailed case
studies examining the technology and policy implementation process followed at
firms identified as being close to the factory model.'
There are several interrelated conclusions:
"factory" approaches,
the U.S. and Japan.
is
(2)
(1)
This spectrum, including
clearly observable in the sample of software facilities
There appears
to
be nothing inherent
in
software as
in
a
technology that prevents some firms from creating strategies and organizational
structures to manage product and process development more effectively, even
with a relatively new and complex technology such as software.
technological
infrastructures
to
aid
software
process
(3)
The
basic
management are not
significantly different between Japanese and U.S. firms. (4) But, Japanese firms
-- led
by the NEC group and Toshiba, and followed by Hitachi and Fujitsu--
1
significantly
are
ahead of most
U.S.
competitors
implementing
in
"flexible
factory" type of strategies focused on reusing standardized components (modules
of code)
and then customizing end products.
This paper extends the survey approach to analyze what
--
most difficult aspect of the software factory
is
probably the
the implementation process and
the benefits or disadvantages this environment might offer
in
NEC
adopted
case
significant for the following reasons.
is
One,
it
operation.
The
software
a
factory strategy around 1976, but, unlike Hitachi or Toshiba, did not attempt to
construct
single major facility and use this as the main site for developing
a
Rather, top management at
factory tools and methods.
committee
and then
laboratory
organization
to
NEC used
the
direct
a
centralized
development
and
dissemination of factory-like software tools, standards, procedures, and control
methods among
all
the divisions and subsidiaries writing programs.
This approach appears to have reflected NEC's organization around product
divisions rather than factories, as
Toshiba.
It
has also led to a
in
the case of Hitachi and, to some extent,
remarkably high
level
of
standardization and
consensus regarding software development despite NEC's production
types of software,
of various
including telephone switching and transmissions systems,
computer operating systems, and business applications programs.
The organization
of
NEC and
detail
top
its
of this
is
as follows:
Part
I
presents an overview
development of the computer business, and then discusses
management's
organization
paper
factory
implementation
in
strategy
terms
of
for
software
divisional
development
structures,
in
and
committee
programs, R&D organization, corporate-wide programs, and subsidiaries
.
Part
II
focuses on the tools, methodologies, and management-control systems developed
to
support the factory
comparisons of
NEC
strategy.
to other
The conclusion makes some preliminary
Japanese and U.S. firms, as
well as offers several
suggestions about the general lessons regarding technology management that can
be drawn from this study.
I.
SOFTWARE-DEVELOPMENT STRATEGY AND ORGANIZATION
Corporate History
NEC was founded
1899 as
in
a
venture between two independent
joint
Japanese businessmen and AT&T's Western Electric subsidiary,
and import telephone equipment.
It
later
of electronic
and electric components and products.
multinational
corporation
organized
electronic
within
a
nine
systems
in
(including
1987
groups
(41%
of
1986
covering
sales),
As
a
consolidated
range of product divisions.
operating
manufacture
became an independent company
Sumitomo group and, over time, expanded
affiliated with Japan's
revenues came from
to
into a variety
$16.8 billion dollar
subsidiaries),
Each was
computers
communications
a
NEC
profit center
and
industrial
(switching
and
transmission systems as well as radio and microwave) products and services
(29%),
semiconductors and other electron devices (17%), and home electronics
(8%). 2
NEC OPERATING AND MARKETING GROUPS.
Operating Groups
Research and Development
Production Engineering Development
Switching
Transmission and Terminals
Radio
Information Processing
Marketing Groups
NT&T
Sales
Government Sales
Domestic Sales
International Operations
Advertising
Electron Devices
Home Electronics
Special Projects
Source:
NEC
Corporation, "This
is
1986
NEC, 1986,"
p.
9.
Toshiba, and Fujitsu,
Like Hitachi,
and software development,
earliest
producers
scientific-use model
of
computer technology, NEC entered
in
1962, through which
NEC
cooperate
1970s as
By
1986,
NEC
in
a
long history of computer
NEC was one
in
the world,
into a licensing
its
of
completing
sale
under the
hardware and software design technology.
relationship continued
1979 and the two companies
until
started supplying mainframe hardware to
manufacturers, ranking, among Japanese firms,
sales,
and second
its
in
the
American partner."^
largest computer and software
clearly one of the world's
and data communications
a
arrangement with Honeywell
marketing, the technology transfer situation reversed
NEC was
the
to the United States in commercial
manufactured Honeywell computers for
Japan and upgraded
label in
While this technical
still
it
computer
To catch up
1958.
in
has
dating back to the 1950s.
transistorized
a
NEC
first in software,
microcomputer,
mainframe sales, behind Fujitsu.
in
Early Learning and Technology Transfer
NEC's history
of
computer development
in-house efforts, beginning
in
is
a
combination of independent,
the mid-1950s, with hardware design and some
software technology acquired from Honeywell
in
The key figure
the 1960s.
in
software development from NEC's very earliest efforts has been Mizuno Yukio,
who entered the company
in
1953 after graduating from the
Tokyo
Technology, where he also received an engineering doctorate
Mizuno was
The
1956,
a
first
senior vice-president
programming efforts
in
in
charge
message and accounting data sorter for
to Mizuno,
built an analog
a
1960.
In
1987
of software strategy.
NEC, according
when he and several other engineers
in
Institute of
were
in
1955-
computer and then
non-stored program machine
--
a
a
.
computer that was,
programs for storage
NEC completed
commercial sale
in
memory
NEAC
the
The NEAC
1959.
in
--
and the 2203,
1958,
in
an
2201,
a
required
transistorized computer
enlarged version
2201 and 2203 prompted
establish a programming section in 1959,
and
Their next project
"hard-wired."
essentially
introduced for
NEC managers
including Mizuno
with 26 engineers,
who had
leading Japanese computer experts at that time, Okazaki Bunji,
a
joined
NEC
after
Film.
One
of their first
to
building one of Japan's first electronic computers for Fuji
accomplishments was the completion of Japan's first
compiler."'
Honeywell machines supplanted the
Several
These gave way after 1965
repackaged versions
to
NEAC
the
of three small
NEAC
2200
models
in
which
series,
1962-1963.
contained
and medium-size mainframes Honeywell had
designed to compete with the IBM 1400, as well as several larger machines NEC
designed independently to compete more directly with the IBM 360 family.
ACOS
beginning
series
mainframes
NEC's basic product
remained as
2200 series
in
1974,
to
line
compete
NEC introduced
until
with
IBM's
a
decision
of
led
NEC
in
1965 to
dubbed the NEAC
build a large-scale computer for the Japanese market -- later
--
family
the
c
Despite the technical arrangement with Honeywell,
2200-500
370
The
not only to use integrated circuits (ICs), printed circuit
boards, and large-capacity core memory for the first time, but also to develop
independently an advanced operating system capable of on-line processing and
time
sharing
similar
to
Institute of Technology.'
technical
and
the
Multics
system developed
at
the Massachusetts
The hardware and software tasks presented major
organizational
challenges
to
NEC
engineers,
who had never
tackled such extensive projects, and did much to advance the technical skills of
company personnel
in
both areas.
°
^
The 2200-500 machine was based on
1964
in
NEC's
at
research
central
a
computer factory
Fuchu,
at
laboratories.
commercial model,
processing unit into
in
hardware design project completed
a
in
To develop the central
NEC management
1964
the outskirts of Tokyo, and
established
1965
in
a
computer
development group with about 30 engineers, including Mizuno as head
arguing that
its
models were adequate and that the software for
the proposed 500 would be too difficult to write.
Honeywell executives,
in
of the
Honeywell managers tried to dissuade NEC from taking on
programming section.
this project,
a
NEC completed
Much
the surprise of
to
the machine and operating system on time
1968 -- delivering the 2200-500 to Osaka University and receiving an award
from the Nikkan Kogyo Newspaper for having developed Japan's
system and entered into
machines.
NEC
Honeywell thereafter brought
computer.
a
formally into
its
first
IC-based
product planning
NEC
cooperative development program with
for future
Q
The operating system
for the 2200-500,
named MODE
NEC provided about
directly after the IBM 360.
NEC patterned
IV,
90% of the engineers working
on the system; Honeywell contributed some 10%, who came to Japan and worked
under Mizuno
how
Tokyo.
in
to plan for
Honeywell was quite helpful
and control such
a
in
teaching
NEC managers
large software project, although Mizuno was
disappointed to find that the Americans' level of technology regarding bug,
and productivity estimation was
cost,
forecasting led
models
during
control at
NEC
NEC managers
the
in
A major step
1970s,
low.
to collect their
which
1971
for
improvement
in
own data and devise new planning
became the basis for software production
the 1980s.
in
standardization of control methods as well as of tools and
development procedures was the creation of
in
The need
and then the decision
to build a
a
new computer development group
new operating system
for the
ACOS
This decision led to the separation of basic software (operating systems
series.
and related programs)
Fuchu
into an
From
plant.
1974,
independent division
Fuchu
the
plant,
hardware and operating systems, was referred
1974,
in
centered
at
the
produced mainframe
which
NEC
to within
"software
as a
factory," and became the center of software technology development until the
establishment of
a
separate laboratory for this purpose
At this point
1980.
in
the information processing group contained separate divisions for basic software
centered
at
Fuchu, and,
the Mita section of Tokyo, near
in
large-scale customized
for
software
NEC headquarters,
and user
(system engineering projects)
(business) applications software.
Unlike
Hitachi
and Fujitsu,
NEC's software development tasks did not
NEC thus continued
include trying to be compatible with IBM.
Mizuno
IBM compatible Honeywell operating system.
in
and Unidata
the U.S.
machines and then failed
NEC
to
still
customers.
a
limit to
Thus, even though he was head
of
IBM-compatible
of
its
machines to attract
product planning,
NEC headquarters
in
1974 Mizuno
Fuchu plant and spent
to the
three years directing the new operating system development effort.
IBM's 370 operating system did not have
was not well set up
to handle data bases,
add these functions
machine capability.
to
It
their
language, HPL,
was
still
a
the
new system,
difficult,
as
NEC managers decided
as
well
^"^
a
a
in
to try to
"task-level"
virtual
sophisticated operating
although they succeeded, using
PL/I subset, to write the system,
using assembler.
Because
strong time-sharing capability and
a
turned out that developing such
system was extraordinarily
RCA
the compatible" approach.
had to offer competitive performance with
moved from the comforts
build
to
because
match IBM's subsequent 370 models, he and other
executives decided "there had to be
But NEC
recalls that
Europe had both tried
in
with the non-
a
high-level
contrast to IBM, which
For
future
product development,
One was the
significance.
programming methods and
two events
decision
to
to
and
tools
methodology for newly written application and system programs.
the
decision
to
create
NEC
beginning with
President
of
NEC's
Mizuno),
centered
Software
in
Parts
addition
in
to
Company
being
each division.^''
thus became the basis of
"software factory"
technology,
that
structured
in
based
on
this
Another was
"^
development,
software
in
long-term
Software, Ltd., and to recruit software houses to serve as
procurement departments
NEC Software
specialized
Subsidiaries and affiliated
subcontractors.
members
subsidiaries
had
programmers
train
standards
design
1975
in
scheme,
Mizuno and
Association
subject
to
(headed
controls
by Vice-
imposed
by
The Fuchu Software Factory and
geographically distributed, product-
a
based around structured programming
NEC manager,
another
promoting more aggressively from 1976.
software houses also became
1
c
"
Fujino
Kiichi,
began
NEC SOFTWARE ORGANIZATION AND SUBSIDIARIES,
Information Processing
Basic Software
Group
Main Factories
Fuchu
System Engineering
Mita
Other Divisions
Transmission
Tamagawa
Switching
Abiko
Domestic Software Subsidiaries
NEC Software
NEC Information Service
Nippon Electronics Development
Nihon Computer Systems
NEC Communication Systems
NEC Engineering Information Systems
Kansai NEC Software
Chubu NEC Software
Kyushu NEC Software
Tohoku NEC Software
Hokuriku NEC Software
Chugoku NEC Software
Hokkaido NEC Software
Shikoku NEC Software
NEC Security Systems
Shizuoka NEC Software
Okinawa NEC Software
NEC Microcomputer Technology
NEC Engineering
NEC
NEC
NEC
NEC
NEC
IC-MicroComputer Systems
Telecom Systems
Koku-Uchu (Aerospace) Systems
Robot Engineering
Ocean Engineering
Note:
ca.
1986-87
Software Employees
2,000
2,500
1,500
1,500
2,100
900
1,000
800
800
150
500
300
200
100
na
na
na
na
na
na
na
na
na
na
na
na
na
na
employee figures are estimates by the author. An approximate
for the number of software engineers and programmers in
the NEC facilities and subsidiaries noted above is 16,000.
All
total
Sources:
NEC, Konpyuta sangyo no qeniyo to NEC (1985); Joho shori:
sofutouea kaisha roku (1985); Kiriu Hiroshi, Sofutouea sanqvo no
iitsuzo (1986); Nikkei konpyuta, 13 October 1986, p. 89; company
data; author estimates.
Software Factory Strategy
Mizuno began discussing
NEC's software strategy evolved gradually.
publicly his view of the software factory as early as an October 1975 article
in
Then the manager
of
a
leading Japanese journal on information processing.
NEC's
Software
Basic
had
industry
therefore,
he
evolved
felt
Development Division,
to
he
stressed
where cost and quality mattered
producers
had
move beyond
to
the
that
to
"individual
"
software
customers,
or
"craft"
approaches to production, and develop "modern" engineering and manufacturing
practices and tools:
As the use of computers has become more diverse and at higher levels,
software -- quantitatively and qualitatively -- has become increasingly
Thus, software is no longer the individualistic, craft-like
important.
once
was; there is evidence that it has become a modern
product it
Accordingly, we
product with a market value and market distribution.
have reached the point where the development process for software must
move beyond the individual or craft stage to a more rational, modern
Namely, we have reached the age where there is a
production system.
.
.
strong demand for high quality, maintainable software as
software cost reduction and productivity improvement...
well
as
for
consciousness of software as a highly modern and major
extremely low among both software producers and users.
The result is a tendency to pay too little attention to software inspection
or quality assurance, and not to invest enough time and resources in the
software development and production process...
In
general,
product
is
still
It seems we have reached the stage where current methods for software
production, which resemble a cottage industry, may be moving toward
'manufacture' (factory-method industry)... [But] the tools used at the
present for software development -- paper, pencils, machines, basic
language processors -- are extremely primitive.
To improve productivity in
software development, to produce software of higher quality, it is
necessary to go beyond cottage-industry type production methods. This
higher level of technology for the software production process can be
referred to by the term 'software engineering.' ''
.
This 1975 article, published only
Corporation
in
a
.
few months after System Development
the U.S. released information describing
its
"Software Factory"
project, elaborated on the concept of a physically distributed software factory
system using standardized procedures, tools, and components, with time-sharing
10
capabilities
link several
such as Fuchu, Tamachi/Mita, and Shinjuku
sites,
in
Mizuno estimated that, with factory-type standardized methods and
Tokyo.
productivity should rise from 2 to 5 times.
tools,
Several
basic
and
concepts,
tools,
systems,
necessary to support successful implementation of
First,
was the development
of
a
Mizuno's
in
view,
were
software factory system.
expandable, versatile high-level languages suitable
for system description using structured
programming methods.
Second, was the
use of structured programming techniques such as the top-down approach,
abstraction
reduction
of
techniques,
GO TO
standardization
standardization
statements
the
of
segmented
coding,
in
subroutine
of
of
introduction
listing
input/output
production
process,
industries, to improve productivity and quality:
process,
increases
through Taylor's methods,
in
productivity.
structures,
program modules,
Third,
been
achieved
in
or
was
other
"In the average production
standardization of tasks led to dramatic
the same way,
In
of
layers
interfaces.
had
as
and
standardization
in
the software
development process of the construction flow and documentation should make
possible to improve productivity.
development-process control.
claimed
checkpoints
table).
add
would
and
Fifth,
system for
some
reviews
Mizuno
quality
felt
Fourth, was
Mizuno offered
visibility
of
standardization should help reduce
In addition,
careless mistakes and increase reliability."
to
the
a
system for software
"phase-plan" system, which he
a
development
standardized documentation
In
addition,
he
process
each
for
the software factory should have
assurance.
it
a
identified
through
step
(see
comprehensive
nine
elements
fundamental to the technological infrastructure of an effective software factory
(see tables).
""S
11
MIZUNO'S INITIAL SOFTWARE FACTORY CONCEPT
METHODOLOGY AND MANAGEMENT
1.
High-level structured programming language for system description
2.
Disciplined structured programming and top-down modularization techniques
3.
Standardization of the development process
4.
System for process control
5.
System for quality assurance
TECHNOLOGY
1.
(High-Level) Language processing
2.
Program and data commonality
3.
On-line memory and control of program components and information units
4.
Simple system for integrating parts of programs being developed separately
5.
High-reliability
6.
High-level virtual
7.
Suitable development language and program control function
8.
"Boot-strap" function (capability of testing software developed in the
factory in the actual mode or o.i the actual machine it will run on, to
ease transfer)
9.
Tools for debugging,
continuous operation.
file
system
memory
dynamic
link
Source: Mizuno 1975, pp. 837-838.
12
functions,
project
control,
and
PHASE-PLAN SYSTEM
Phase
0:
PLANNING
Determination of product based on market
development costs, and technical capabilities
Definition:
Documentation
:
I:
BASIC DESIGN
Analysis of the objective of the planned project and
establishment of programming objectives
Definition:
Documentation
:
II:
Basic Design Specifications
Performance, Cost
Review:
Phase
Planning Specifications
Schedule, Cost
Review:
Phase
needs,
DETAILED DESIGN
Design of detailed functions and structure based on the
Definition:
programming objectives
Documentation
:
Cost,
Review:
Phase
III:
Functional Specifications (Language Specifications)
Logic Specifications
Manual Draft
Functions
IMPLEMENTATION
Coding and debugging
Definition:
of each
component based on the
detailed design
Documentation:
Programming Completion Document
User Manual
Review:
Schedule, Cost, Functions
Phase IV:
SYSTEM INTEGRATION
Test of debugged modules
Definition:
Documentation
combination
System Integration Test Document
Performance
Review:
Phase V:
:
in
INSPECTION
Definition:
Examination of whether the completed system meets the
planned specifications
13
:
Inspection Completion Document
Release Announcement
Documentation
MAINTENANCE
Phase VI:
Definition:
Support and Improvement
Documentation:
Program
Lists
Internal
Documents
of
completed system
Source: Mizuno 1975, p. 838.
As they made progress
changed emphasis
to quality
NEC managers
process standardization,
in
and reusability
control
improve overall productivity.
This shift
code as key ways to
of
thinking can be seen
in
where Mizuno discussed the two components
interview,
achieving continuous increases
in
productivity:
gradually
of
his
in
a
1986
strategy for
(1) a rigorous quality control
program
to
prevent errors, which become
program
is
released to the customer; and (2) "accumulation of knowledge" about
software
and
engineering
passing
this
difficult
on
to
and expensive
others
through
to fix after a
reusable
(a)
software modules, (b) reusable program patterns, and (c) bug or failure analysis
and the development of better test rules and check points.
known
as "Software Engineer's
Mizuno considered
programming
tool
a
"first
SEA/I (alternately
Arms" and "System Engineering Architecture")
step"
in
the
development
of
an
Mizuno
Thus,
using this "accumulation of knowledge" concept.
building upon process standardization and control as the foundation of
approach,
automatic
now explained the software factory
as
a
a
factory
"concept"
for
maximizing the "accumulation of experience" and capturing this experience
in
control systems, tools, and process inputs (reusable code or designs):
The term
'software factory' does not indicate a physical building.
method of producing software, or the tools used in
example a control system. The software factory refers
14
It
is
a
this method, for
to the integration
of these types of things.
It
must be understood as
concept.
a
Another point that should be emphasized is that it is important for a
software factory to be a place where systems are introduced that
incorporate the experience of people who have made software in the past
with new methods or particularly effective techniques.
It
is
an
Even if it doesn't go as far as a knowledge
accumulation of knowledge.
data base, it should be something where there is an accumulation of
knowledge.
For example, in coding inspection, a particular group keeps making
mistakes in register manipulation. Or they forget to close a table.
In a
software factory, it would be important to have a system for developmentprocess control that, reiving on a history of these mistakes, would prevent
them from reoccurring ^^
.
During the 1980s, the manager most responsible for implementing NEC's
software factory strategy has been Fujino Kiichi,
a vice
president under Mizuno
who headed the Software Product Engineering Laboratory
NEC
entered
1968
in
after
working
years
eleven
for
the
in
Fujino
1987.
in
Production
Engineering Laboratory of Waseda University, and had been one of Waseda's
first
graduates
degree
later
in
computer science, receiving
in
addition to a doctorate
in
a
B.S. degree
1973. ^'
In
in
1955 and
NEC
a
M.S.
he joined and
headed the Computer Science Research Laboratory, founded under the
R&D
central
Basic
1957,
in
labs to
Software
study software engineering, and subsequently managed the
Development
established
Division
in
1974.
^•^
He became
a
particularly avid proponent of the distributed, product-centered factory concept.
In
a
1984
article,
for
example,
Fujino
noted
that,
communications and computer businesses, NEC managers
in
in
programs were "fundamental"
needs of their customers:
software for
systems
application
software;
on-line
real-time
host
to serve the
computers;
control
distributed
software;
industry-
oriented application software; and built-in microcomputer software."'^
also concluded that,
"NEC must meet
different customer needs, so
15
its
the mid-1970s came
to the conclusion that five types of
"basic
reviewing
it
is
They
difficult
really desirable to standardize completely
and not
NEC managers
Fujino and other
"to
view
the
strategy
factory
The
production environments.""^
computers."
of
terms
in
At
the
same time,
factory-type rationalization was essential
felt
accommodate the expanding use
"-^^
.
This led to the decision to
and
"global
of
distributed
software
"modern software factory" system Fujino
attempted to implement consisted of five elements, with
a
centralized laboratory
directing tool and method development for closely linked operating divisions and
including subsidiaries. °
"satellite offices,"
SOFTWARE FACTORY CONCEPT
FUJINO'S
Central
Laboratory
for
Development
Standardized
of
Tools
and
Methodologies
Software Work Stations
Communications
Utilities
Appropriate Physical Environment
Management Engineering Techniques
Productivity Metrics
b) Quality Metrics
a)
c)
Cost Control System
d)
Management
Visibility
A key manager responsible
Motoei,
who
joined
NEC
engineering department
joining
Waseda University
software
as
an
Azuma
1963 and was manager of the software management
in
in
for developing tools and methods was
the Software Product Engineering Laboratory before
in
R&D-type
1987.
of
Azuma supported the view
only
activity
would
not
lead
to
substantial
NEC managers
improvements
in
have tried
develop "factory-like" systems, while recognizing that aspects of
software
to
productivity or quality.
development
which
are
Therefore, he and other
that treating
unique
16
make
it
inappropriate
to
transfer
manufacturing practices too directly from hardware plants.
Azuma's
environments
work focused on devising standards,
--
types of software
in
essence,
different factory structures
NEC produced.
relatively flexible environments.
closely resembled
be controlled more precisely.
--
tools,
and
for the different
For example, he believed that development of
large operating systems was more like
PBX software
methods,
R&D than manufacturing and
But smaller software products
required
like facsimile or
hardware design projects and, he thought, could
Business applications programs were often very
similar across different projects and, therefore, contained modules that could be
reused and offered possibilities for an automated production process.
Following
the standardization and structured methodology efforts of the 1970s, and the
quality control program of the early 1980s, process development at the Software
Product Engineering Laboratory during the mid-1980s thus pursued the dual
goals of automation
tools such as
and reusability,
leading to automated program-generator
SEA/I for applications software and
DECA
(Detailed Design and
Coding Assistant) for systems software.^'
Implementation of the Factory Strategy
Implementation of
factory strategy to meet diverse product needs began
a
with the founding of the Basic Software Development Division
centralization of operating systems development in the
efforts centered not on
any single
facility
Fuchu
in
Plant.
1974 and the
Subsequent
but were company- and even group-
wide, with the participation of corporate staff, operating-group line personnel,
and subsidiaries personnel.
system developed located
Tamagawa, and switching
lack of physical space
There was centralization, with most operating-
at Fi'chu, applications at Mita,
at
transmission systems at
the Abiko plant northwest of Tokyo.
and other factors, some groups as
17
But, due to
well as the
work
of
subsidiaries and software houses continued to be distributed
What was perhaps most important, however,
is
that,
in
in
different areas.
contrast to the System
Development Corporation's Software Factory, NEC created permanent centers
development managed by departments and not projects.
steadily through the
new
facilities,
of
Work, therefore, flowed
and provided managers with
a
rationale for
continued development of the factory's technological and management systems.
NEC implemented
the concept of standardized but distributed development
through the use of several sets
of
common techniques and
tools,
as well as
linking physically separated sites through communication networks,
under continual development.
File
in
process
transfers among different sites even made
no
reuse of the same code possible
a
by
more than one
facility.-^"
The
following
table presents an overview of key projects and dates in the factory-strategy
effort:
18
IMPLEMENTATION OF NEC'S SOFTWARE FACTORY STRATEGY
Year
Project/ Designation
Focus
1974
Basic Software Development
Division
Organizational separation of
software
from
hardware
development
1976-1979
Software Strategy Project
Standardization of data collection,
and
structured-programming
for basic and
applications software throughout
the NEC group, with the objectives
of raising productivity and quality
tool
methodology
1980
1981
Software Product
Engineering Laboratory
Centralization of process and
tool
R&D for dissemination
divisions and subsidiaries
Software Quality Control
Establishment of a group-wide
methodology, training program, and
control measures for improving
software quality, including quality
(SWQC)
to
circle activities
1982-1985
Software Problem Strategy
1)
Project
2)
3)
"Mapping" of software
development activities
Subcontracting management
Software
productivity
improvement
Source:
Interviews with Fujino Kiichi and
19
Azuma
Motoei, 7/28/86
SOFTWARE STRATEGY PROJECT,
The Software Strategy
1976-1979
Project was organized
in
1976 on
group-wide
a
basis (including in-house divisions and subsidiaries) rather than in the computer
group because NEC had large numbers
of
programmers
as switching systems, as well as In subsidiaries.
overseeing
applications
the
3-year project.
in
other divisions, such
Mizuno headed the committee
There were two sub-projects
software and one for systems
software,
the
latter
--
one for
by
directed
Fujino.
The
project resembled manufacturing initiatives taken at nearly
Japanese companies after the 1950s
"eliminating
waste."
In
in
practice,
the explicit focus on,
this
meant
all
phases of software production
--
tools,
large
Fujino's words,
and
collecting
performance data, and then developing standardized
methodologies for
in
all
analyzing
procedures, and
dealing with customers
(requirements analysis), as well as design, programming, documentation, testing,
installation,
maintenance, and user service and support.
The major thrust
of
the project turned out to be standardization and tool development to support
structured programming techniques. Among the systems developed,
opinion, most important
in
facilitating division of labor
large numbers of programmers has been
Engineering
for
follow in a
Fujino's
and cooperation among
STEPS (Standardized Technology and
Programming Support) for applications software. •^^
detailed discussion of
will
in
STEPS and other
tool
and methodology systems
(More
at
NEC
subsequent section.)
SOFTWARE PRODUCT ENGINEERING LABORATORY, EST.
1980
A problem that Azuma identified with the Software Strategy Project was
20
:
the lack of permanent manpower staff.
when they had
Mizuno
a
chance, but meetings were infrequent and progress was slow.
at the
felt
end
of the project that
productivity and
raise
reasons,
Members worked on the tasks assigned
quality
as
NEC managers decided
well
in
as
"we had to be more systematic" to
to
improve control. "^^
1980 to establish
the
For these
Software
Product
Engineering Laboratory to head the software development effort, organizing this
as part of NEC's central research laboratories.
Mizuno launched the new laboratory then delegated the post of director
Fujino
in
1981.
researchers
and
to
This made Fujino responsible for managing about 30 full-time
another 30
By
members.
affiliated
1986,
the
number
of
researchers had grown to about 170 full-time members (out of about 900 total
assigned to the central research labs),
including those
laboratory for microcomputer software development.
Fujino
interpretation,
management techniques.
was
to
link
software
To accomplish
this
in
newly-separated
The mission
production
they
a
of the lab,
technology
organized
it
into
in
with
three
departments covering software technology, management methods, and interface
architectures
NEC SOFTWARE PRODUCT ENGINEERING LABORATORY
Departments
Areas of Research
Software Engineering
methodologies and tools for
production, and maintenance
Software Management
Engineering
methodologies and tools for software production
and products management
Interface Architecture
network architecture, information portability
Source:
Fujino and
Azuma interview, 7/28/87.
21
software
design,
Funding
R&D funds
projects,
of tool
well
as
and method development
as
was often
as
NEC
from internal
the
in
rather than from specific
users,
software
case for
the lab came from corporate
tool
Management policy considered research on
companies.
development
tools that could
with computer hardware as part of product development,
funds assigned
to the lab
covered their expenses.
U.S.
in
be sold
and corporate R&D
Tools that would not be sold
outside the company as products but had specific in-house applications
funded partially by R&D expenses and partially by costs charged
NEC
to in-house
divisions that eventually used the tools. "^^
Transferring technology developed
One was
ways.
engineers from
to
plan
and develop
line divisions.
in
tools
and methods
Another was for
and then teach division employees how
lectures
at the lab to divisions
to use them.*^-^
in
two
conjunction with
lab researchers to
large groups and through quality circles.
Education Department assisted the lab
in
was done
develop tools
This was done through
A
staff-level Software
education planning and implementation,
in
•JO
especially
In
areas such as quality control. "^"^
in
addition to tools and methods,
identifying
optimal
studies done
in
laboratory researchers also worked on
"software factory environments."
hardware factories, but took
This effort
resembled
into account the greater "mental
effort" required in software development:
The work environment has been considered
to be an important factor for
productivity and quality improvement in hardware production. This field of
research is called Industrial Engineering or Plant Engineering... The same
approach is expected to increase software productivity. However, the
mental work utilization rate in software work is greater than in hardware
work because of the difficulty of machine utilization in software work.
Therefore, not only is the same approach taken, but the effects on
programmer mentality must be taken into account."^
Particularly
important
were motion factors,
22
such
as
the
layout
of
equipment (desks, chairs,
movements;
physical
contributed
motivation,
filing cabinets, terminals),
and
fatigue;
to
such
noise
as
furniture
including
factors,
mental
in
worked on separate parts
might desire partitioned spaces.
software
common
factories,"
in
NEC
concentration
color
coordination
a
although
of a
program independently, and therefore
Both were considered "work environments for
team-oriented
the
approach
NEC's
of
SWQC program
much QC training
in
date
back
software and Japanese firms,
study of software QC, and enlisted as
Professor Moriguchi
from Tokyo University,
knowledgeable about software.
Fujino the sub-leader,
to
in
an
a
related
staff.
a
at this
Azuma's estimation,
of this
study group,
The group remained
As with the original
full-time activity for the committee
Meetings lasted
although they managed to cover
problems,
NEC
expert on quality who was
and Azuma the chief secretary.
Software Strategy Project, this was not
month,
when
consultant the help of
active for 3 years, and included hardware people as well.
a
1978,
There was not
Mizuno was the leader
members and there was no regular
1981
NEC Chairman Kobayashi proposed they
were considerably behind the U.S.
twice
proved most
has
facilities. "^^
origins
initiate a formal
surroundings.
"individual oriented work style," where
established a software quality control (QC) study group.
time
of
and
"team oriented work style,"
SOFTWARE QUALITY CONTROL (SWQC) PROGRAM, EST.
The
which
lighting,
team are constrained to develop software through
a
close mutual communication," and an
individuals
or
affecting
Researchers designed work environments both for
where "programmers
layout
factors
or
levels
which required unnecessary
a
a
few hours once or
wide variety of quality-
and began drawing up better guidelines for procedures
,
23
required
in
software development, for example, on how to write documentation
properly.
Several conclusions came out of this study.
that there appeared to be a
close connection
One, according to Fujino, was
between software quality and
software productivity, and that any "revolution"
require equally revolutionary improvements
While similar observations had come
productivity,
this
software productivity would
software quality control practices.
other studies of software quality and
in
type of thinking
in
in
had
pervaded
NEC's
QC
activities
hardware, which dated back to 1945 (under U.S. Army guidance).
strategy as
Fujino
productivity
will
Second,
hardware
in
interpreted
was
it
to
"pursue quality
in
The best
and
software,
follow."
group concluded that software was
the
that
it
quite
different
required more intellectual activity and "desk work."
led to a decision not to rely on
hardware QC experts but
quality evaluation and design review.
Third, they
felt
it
from
This
work with several
to
U.S. software quality experts such as Gerald Weinberg to develop
to "inspect out
in
a
system for
was impossible simply
bugs," and that quality had to be "built
in
development," with department-level managers fully involved
at
in
each phase of
any
QC
effort,
as well as lower-level employees."^'
was the observation that "human factors"
Fourth,
important
in
achieving Innovations
in
software development, determined through
surveys of in-house software projects (see table).
to develop automation
techniques,
it
before
automation,"
clearly was
they
decided
the
development groups should develop automation
program focused on motivation,
While they believed
NEC had
not possible to automate
all
Therefore, since human "motivation [should
phases of software development.
come]
seemed to be most
laboratory
tools,
tool-
while a quality control
teamwork methodologies,
24
and other
and other "human
philosophy was clearly
factors."^"
This
published
Computer
in
reflected
in
a
1983
article
Mizuno
:
Software projects tend to overemphasize technical aspects.
After all,
For projects to proceed
people organized into teams do the work.
smoothly, the human factor must receive adequate consideration.
The
capability of those involved in software work varies remarkably.
Many
claim that the relative abilities of programmers can vary by as much as 30
become ever more vital to structure projects so that
It will
to one.
software quality and productivity do not directly reflect these differences.
Training can develop skills, and we can produce tools that yield quality
and productivity within given ranges regardless of the worker. We can
also assemble teams and assign work in ways that compensate for
.
.
individual differences.
We need
to develop better techniques for software production, but we must
carefully study our organizational frameworks for software
development and maintenance. We must devise control methods that match
the frameworks.
also
People are at the heart of software work; obviously, human error cannot
be allowed to lead to major bugs or malfunctions. Here, teamwork will be
the key. Team members working together are, in their collective wisdom,
far more effective than individuals working alone. "^^
PRODUCTIVITY FACTORS (NEC APPLICATIONS SOFTWARE)
Key: Scale of
to 2,
with 2 indicating highest impact
SCALE
Human Factor [Programmer
1.80
1.48
1.42
1.28
1.23
1.22
1.13
Quality
Generality
Hardware
Contract [with Customer]
l.n
Specification Volatility
0.98
Development Methods
Source:
Mizuno 1983,
Fifth, since
how
Capability]
User [Program] Complexity
Development Tools
it
p.
69.
seemed that getting
to solve quality problems
all
workers
was the best way
25
to think together in
to try to
groups
make progress
in
software quality control, they decided to adopt the manufacturing practice of
quality circles. ^
In
a
6-month
trial
applying other techniques used
control and studies of
Finally,
needed
a
in
during 1980, NEC also experimented with
hardware QC, including
1981
quality
worker behavior. ^^
the study group determined that to continue their efforts they
formal,
company-wide program covering
all
production, management, services, sales, and training.
in
statistical
as the
"SWQC" (Software
aspects
of
The program took form
SWQC Group
Fujino the Administration Committee.
the educational
programs.
This was
Quality Control) organization.^^
incorporated into NEC's zero-defect (ZD) structure, as indicated
below, with Mizuno heading the
software
in
the table
Activity Steering Committee and
The SWQC Information Center directed
Quality circles,
meeting once per week for two
hours, were the chief vehicles used to carry out
QC
training and functions. ^^
(More detailed discussion of the quality control system
at
NEC
follow
will
in
a
subsequent section.)
NEC'S SWQC ORGANIZATIONAL STRUCTURE. 1986
Focus
General
Structure
Zero-Defect Steering Committee
Quality
Hardware and Software
Policy Formation,
Corporate-Director Level
Software QC Policy Formation,
Division-Manager Level
Company-Wide SWQC Group Activity
Steering Committee
Administration Committee
Planning for Training and Education
SWQC
Training and Education
Information Center
Study Group
SWQC Group
Activity
Research and Recommendations
Management
Policy and Implementation,
Department- Level and Suppliers
Committee
SWQC Groups
Quality Circle
Employees
26
Activities,
All
Source: Mizuno 1983, p. 71;
Fujino interview, 7/28/86.
SOFTWARE PROBLEM STRATEGY PROJECT,
Unlike the
NEC,
within
SWQC program, which
but
similar
to
the
1982-1985
has remained a permanent organization
1976-1979
Software
Software Problem Strategy Project (SPSP) launched
The
effort.
on
heavily
programming techniques,
structured
standardization.
The follow-up attempted
on
involved
divisions
all
quality
formally
control,
and
designate
product divisions.
to impose
productivity-improvement
NEC
and
1982 was
a
of
software
began
enforce
relying
process
of
to
standardization,
and
measures,
factories
three-year
tools,
the
the
more top-down organization
software development,
in
series
a
Project,
had developed new methods and
project
earlier
in
Strategy
serve
establish
or
NEC's different
President Sekimoto was the formal head of the project,
with Mizuno as the sub-leader.^''
The 1982-1985
NEC
called
organizational
project focused on three major activities.
"software
layout of
production
mapping."
information
processing
This
involved
activities
First,
a
was what
logical
and
by product (basic
software, system engineering programs, user applications, transmission, switching
systems, microcomputers) to determine which software houses divisions were
using, or which subsidiaries
to assist divisions in
NEC should
create to serve as "software factories"
program development.
to systematize procedures for
Second, was
a
more formal attempt
managing software subcontractors.
Third, was
another effort to improve and link software productivity and quality assurance
measures.
The
last
element
included
the
establishment
of
a
Software
Productivity Committee, which worked on documentation control, quality control,
27
software productivity and quality measurements,
and software production environments.
project management, tools,
the results from these efforts
The project
that Mizuno,
be discussed
education,
(Some
^
two specific trends
development and
--
of.
subsequent sections.)
in
software development
in
Azuma, and other NEC managers believed they had
"decentralization"
confront:
will
also dealt with
Fujino,
cost estimation,
support of
programs
to
by
geographically distributed groups; and "asynchronism" -- development of parts of
programs
at different times.
"
For example, due to the cost of physical space,
the shortage of programmers living or willing to live
to service
became
customers from
increasingly
all
spread
the city, and the need
NEC's software operations
parts of the country,
around Japan
in
after
rather
1980,
than
being
centralized.
NEC
did
implementation
Software
not
emphasize the
(detailed
Factory),
Software Factory).
Hitachi
and coding)
(Omori
Nonetheless,
divide up work between
houses. ^°
design
NEC
separation
it
was
design
formally
as
Software
of
Factory),
a
still
program
from
as
Fujitsu
(Kamata
or
Toshiba
(Fuchu
common practice
in
NEC
to
divisions and subsidiaries or affiliated software
Implementation of this type of factory concept whereby design was
performed
one location and programming
in
programs were developed
at different times
another,
in
and
in
or where parts of
different places, depending
on manpower availability and expertise, clearly required methods of ensuring
that groups
tools.
in
different places followed the same procedures and used the same
Tools used throughout the
NEC group, such
as
STEPS, SEA/I, and SPD
(Structured Program Diagram) for applications software, and
Engineering
for
Advanced
Reliability
Engineering)
and
HEART
(Hopeful
SDMS (Software
Development and Maintenance System) for systems software, were designed
support
a
distributed but standardized approach to development.
28
to
II.
TOOLS. METHODS. AND MANAGEMENT SYSTEMS
Product Technology and Process Choice
Characteristic of
all
the software factory approaches
development of specific process techniques and tools
factories
--
established
initially
for different types of software.
software factory
a
done
the
in
same
in
case,
although
facility,
it
separate
tools,
product
technology they
Two
a single set
types
felt
which
and
methods,
relatively easy to divide the factory
one for systems software and another for applications.
standardize around
specific
effect,
in
the case of Hitachi,
managers did not centralize software development
different
Japan was the
1969, systems and applications programs were
standards evolved gradually and made
into two,
In
--
in
in
a
In
single
NEC's
site
or
or tools or procedures, but tended to emphasize
and the constraints or opportunities
in
process
these different products (and markets) offered.
main kinds of programs are general purpose systems software, and
user software.
Azuma and Mizuno adopted the
systems software,
compact, use
Therefore,
little
it
like control
programs for operating systems, usually had
memory, and offer
seemed
to
position that general purpose
a
to be
variety of functions for different users.
them that programmers writing
tliis
type of software
"are required to have a high degree of skill," and that reuse of standardized
modules or patterns was not an appropriate process choice, although they
emphasized
factory-type
techniques
assurance, and project control.
processors
and applications
for
process
standardization,
On the other hand, they noted
software
contained
more
still
quality
that language
similarities
and
less
functional constraints, and thus offered more opportunities for using software
29
engineering methods such as modularization and structured programming, and
even manufacturing-type techniques such as assembly of standardized program
i
49^
components.
Azuma and Mizuno provided several examples
how process R&D
in
NEC
has taken into account the characteristics of different types of programs.
For
of
example, one application area they called "Large-Scale and/or Complex Software
Used Repeatedly," including train seat reservation systems, process control
programs
for
steel
These had
banking programs.
operate
a
systems,
control
common primary requirement,
NEC
But
accurately."
production
factory
mills,
did
on
focus
not
tools
and on-line
i.e.
that "they
verify
to
logical
correctness or to reuse code, but concentrated on "techniques, documentation,
nomenclature,
[which
etc.
are]
important
for
harmonizing
work
by many
programmers."
complex applications software such as for scientific and
Medium-scale,
engineering calculations required accuracy and
implemented by the code were complex,
area of
a
NEC
felt
Used Only Once,"
engineering
application
of
such
calculations.
as
Unlike
is
not
a
significant factor."
program was "Small-Scale,
management
complex
was the main
that "Programs of this type have
character close to the arts, and standardization
A third type
Since the algorithms
verification technology
Azuma and Mizuno
research.
reliability.
reports
from
applications,
Simple Software
databases
or
simple
Azuma and Mizuno
considered these easy and inexpensive to write and, therefore, not
in
need of
factory-type tools or standards.
A fourth type
Used Repeatedly"
applied
STEPS
--
of
applications software --
"Small-Scale,
Simple Software
was the focus of the STEPS system, although NEC also
to other applications
programs.
Small-scale software of this
fourth type included batch processing programs such as for inventory updates
30
and common business applications generally averaging about 500
steps
COBOL, ranging
in
to as high as 3000.
"When these program are
classified
lines of
code or
Azuma and Mizuno noted
according to process
patterns
that,
such
as
updating and inquiries, about 90% of them belong to any one of about 20 types
of patterns.
Programs involving entirely new patterns are few."
was so much
similarity,
the
NEC managers found
it
Since there
relatively easy to develop
standardized techniques, nomenclature, and documents, as well as standardized
components
For
.
types of software, since 1980 or so
all
NEC
has followed a relatively
consistent strategy for process development, according to Fujino, by focusing on
computer-aided design and manufacturing techniques
existing software to build
(CAD/CAM);
reuse of
new programs; cross-product planning, and better
requirement definition techniques, to reduce duplication and wasted effort; as
well as standardization, quality assurance,
and education programs directed
at
raising both quality and productivity:
THE NEC APPROACH TO SOFTWARE PRODUCTIVITY AND QUALITY
METHOD
GOAL
improvement
Reuse
in
development
of existing software
CAD/CAM,
Standardization
Reuse technology
Waste prevention
Cross-product planning
Elimination of excess
Methodology and tools for
requirement definition
functions
Product quality improvement
Software
quality
metrics,
tools
for
new and
old
quality assurance
Personnel quality improvement
Source:
Education programs for
employees and managers
Fujino 1984, p. 58.
31
Applications Software Standardization and Reuse
Most important for standardizing work procedures and documentation
in
order to promote division of labor for general applications software written
in
COBOL
Azuma and Mizuno,
Support).
stemmed from
to develop this
can
STEPS (Standard Technology and Engineering
has been
in a 1981
Programming
paper, described how their motivation
desire to standardize practices so that people
a
work together effectively
incompatible
for
teams,
in
software-engineering tools
communication among engineers:
with
or
methods,
as
due
problems
minimal
well
as
to
restricted
"Regardless of how excellent these [software
engineering] technologies are, the desired objective cannot be accomplished
each member of
his
own
will.
a
team or an organization developing software adopts them
at
This problem occurs because some technologies conflict with each
communication
other and
if
between
engineers
is
Hence there
restricted.
is
necessity for standardization of software."'''
After development began
for in-house use
in
1972.
in
1971,
NEC
released an
Azuma and Mizuno
recall,
version of
initial
STEPS
however, that "The
version was intended to be comprehensive, fool proof and was compiled
form of
led
to
a
manual 30 cm thick.
Therefore
another effort to produce
completed
in
1974.
Revision
was never used."
system easier to use,
a
of
it
the
sites using
STEPS by
STEPS was due
component
of
to
1984.
their
standardized
^'^
NEC engineers
tools,
procedures,
program" modules accessible through
a
32
the
which
NEC
tools
staff
has
NEC and NEC-customer
claim that the recent success of
approach:
two-fold
in
This experience
STEPS methodologies and
continued every year since, with approximately 1200
first
offering
and
of
a
technological
"prefabricated
standard
program library; and emphasis on
a
.
philosophy outlining how programs should be developed through each stage of
the software
cycle.
life
The philosophy underlying STEPS, according
on the historical experience of companies
in
to
Azuma and Mizuno, drew
"hardware" manufacturing industries
which had found ways to improve productivity through standardization and
division of labor,
materials,"
as
well
as process
"intermediate products,"
"product utilization."
counterparts
in
All of
through analysis of "raw
rationalization
final
"products,"
"work methods," and
these process inputs, they insisted, had conceptual
software:
The productivity
Revolution. The
of industry has greatly increased after the Industrial
basic concept of the Industrial Revolution was to achieve
.drastically reducing the
high volume production of standardized products
manufacturing cost ... by thoroughly incorporating standardization not only
of the final products but also their parts...
.
.
In spite of essential differences between software and hardware, a
of similarities can be found where standardization is concerned.
(1)
Program language, macros, subroutines,
in producing software...
etc.
number
which correspond to raw
materials
(2) Documents and specification documents corresponding
Their standardization facilitates division
products.
to intermediate
of labor and
automation.
Mass production of
(3) Programs and documents correspond to products.
standard products are [sic] similar to general purpose applications of
computer manufacturers and software houses. The needs and circumstances
of users are identical to other examples were production of orders are
tailored to the customer.
Products should perfectly be made with parts in
units which are as large as possible, that is, by combining standard
modules
(4) Tools correspond to the software used for software production.
Compilers, test data generators, etc. are examples of these.
(5) Work methods represent standardization of methods such as application
system designs, software designs, and coding.
(6) The product utilization method concerns which data is processed by the
software.
To efficiently design individual items of software and to
eliminate contradictions among them, standardization of data will be
important. In other words, this concerns standards of languages, modules,
program structures, tools, methods, documentation, and data, and
standardization must be conducted systematically under a consistent
33
philosophy.^"'
The STEPS procedures required program development
five distinct "phases," with subsets of "activities" and then
activity,
to be divided into
"work sets" for each
consisting of specific procedures and "basic work elements,"
which managers monitor as part of scheduling and progress control.
standardization
came from
standardizing
each
work
set
and
documents, using form sheets or simple headings for "work of
type."
NEC managers considered
degree essential for communication
maintenance
separation
in
of
particular
design
of
Process
accompanying
more creative
standardization and documentation of this
in
general and division of labor and program
(see table)."*''
from
a
all
production
Division of labor also included the
to
the
extent
that
NEC
divisions
sometimes "handed off" high-level design documents to subsidiaries, which then
did detailed design,
coding, and testing. ^^
34
P^ojer^ file
.-cr-3
shec:
Wcrxset
.-ora
sheet
>crR
Wcrhse;
/
sheet
/
Worxse:
doc-jmer.l
Dc-^t-.tjt^=" vrrx
STEPS PROGRAMMING STANDARDS
Programming Standards
Work
Outputs
Standard Patterns
General System
Design
Processing Flow
Standard Specifications
(Structured Program
Diagrams)
Detailed System
Program
Design
Specifications
Program Standards
(Structured Program
Coding)
Manufacture
COBOL
Source:
Source
Coding
Azuma and Mizuno
1984,
p.
88.
Reusability stemmed from the similarity of business applications; the ability
code to suit new users
to modify existing
possible
by
modularization,
standardization
programming language (COBOL),
Mizuno also
program
should
felt
--
semi-customization -- was made
of
design
techniques
confident they could construct almost any type of business
easily from standard patterns modified for individual customers:
be
able
possible
apply
to
Modifications
of
the
Azuma and
and extensive documentation.
to
modify
standard
patterns
to
suit
every
modification of standard divisions for every program should be easy
be
and
standard
standard
patterns
divisions
to
for
a
larger
every
number
of
program should
user,
in
"It
and
order to
programs.
be
easy."
Accomplishing this required several techniques and procedures:
1)
clear
classification
of
standard
source codings
patterns
2)
easily understandable lists of
program patterns
36
intrinsic
to
common
3)
short documentation accompanying
4)
clear
5)
COBOL
6)
structured programming techniques sufficiently versatile to handle complex
lists
program structures designed for easy maintenance and modification
as the standard coding language
programs
as well as simple
standards for design, documentation, coding, module nomenclature, work
7)
"
(see figure).
areas, etc.
There were various ways
One was
considered.
strategy for
to locate
STEPS because
were time consuming and
and
code that Azuma
reuse
to
utilize similar
and Mizuno had
programs; they rejected this
was not versatile, and modifications
it
led
Another was for programmers
errors.
to
programs
of
memorize recurring, specific patterns; experienced personnel seemed
as
a
matter of course,
although
engineering techniques.
was not
it
A third way was
applications, with parameters entered
useful for simple patterns such as
for
more complex
parameters
however,
COBOL.
A
from
or
the
all
approach was
into
do this
a
set of
programs for common
place of specific data.
A fourth
was
to
descriptions;
to place frequently
This they found
generate
for
programs
from
programs,
complex
near to the complexity of
used modules
in
macros; this
types of coding divisions, however.
The technique STEPS promoted was
program patterns," written
in
and maintenance (see figure).
customer involved writing
pattern,
fit
to
medium conversion and extraction, but not
language
simple
to prefabricate
language needed to do this came
fifth
did not cover
functions.
in
practice that
a
to
examining
the
a
structured
to create
COBOL
Development of
a
what NEC called "standard
for relatively easy modification
"new" product for
general outline that corresponded to
more detailed program specifications,
37
a
a
particular
standard
and then
identifying
eliminations
or additions as
needed
in
the detailed design
phase
before coding:
A program developer
first writes a process flow to match a standard
general system design phase.
There is a standard program
specification corresponding to each standard pattern.
Program Designer
compares it with a requirement specification in detailed system design
This eliminates unnecessary functions, and defines processing
phase.
intrinsic to business that is to be added and inserted.
Next, in the
programming phase, standard programs are modified if necessary, and
additions aJid insertions of processes intrinsic to application are
pattern
in
performed.
^'
38
.
t^wmmt
BaccA ^rvc» M.n^
fo»
c^
Mvca
C<y»*'^Oi
u
CZj
Oa.,.t,jn
HP
I
I
Q
c5^
\
CollAtiO^
u
Lacai.n*
;
-u
c=i
IP;
'^
k—
[13
^^
'
®
f
^
en
ru
c:^
.^^^^
p-
I
,
LJ
('irr»r»n for
[:::j
uc^ u
c^
6
=
CP
Om"'««
Qill
Q
t
s
U
:-<:i
1^6 U
Fig. 7
S"PS Stancard Patterns
Unlike
Toshiba's
requirements on designers to register
month.
The STEPS system
such as SEA/I and DECA.
itself
NEC
certain
a
facilitate the
to
PAD,
Hitachi's
of reusable
to
SWQC program,
°
YAC-II,
flow of control, with diagrams written
its
first
version
--
who preferred
The
programs."
notations,
earlier
This
in
called
STEPS, NEC
SPD
(similar
HCP diagrams).
NT&T's
and
of
diagramming
this
SPD
of
technique
-- usually,
to write sophisticated
versions
SPD
in
Japanese or any other language.
in
considerable resistance from software personnel
engineers
who
'^^
represented program modules hierarchically and showed interrelationships
introduced
tools
which also gave out awards
programming diagram technique
Fujitsu's
modules per
be frequently used.
design and production process outlined
also developed a structured
impose formal
not
did, however, provide bonuses to designers
procedure was formally part of the
for quality and productivity.
number
did
promoted reuse, as did program-generator
produced software modules that turned out
To
NEC
Fuchu Software Factory,
also
in
1974,
the
NEC
with
the more experienced
but unstructured "spaghetti
had only
simple
lines
and
and thus lacked representations such as symbols for node control
(input/output paths) and module names.
Additions to the system, as well as the
use of "logic tables" to describe process specifications, significantly increased
acceptance of
STEPS,
according
to
Azuma and other NEC engineers
figures). 60
40
(see
S*Cw»r«»|
Oi*gr»^ Sv^boJ
N*
Fl0w Chjri Synbo^
Pr«c»u funnoni of tU
^McnCwd
1
at
V<« rigM
Prow* 3
H
-^
"=
rrvijNi
ttVIEl
<r>
CASc
lC« Co^^•^<»<
II
—
•^1
©i
If
Ca
&
UNTIL NCT 3v<faan
r-'fH'LE)
CCSCL
CamanoM
of
ll.N.UNS)
WtTH TeST APTErt UNTIL
CtfW^noAolCCSOL tl^M.iNe1
(O^mu
Fig.
9
Symbols Used in SPD
I
U"I003
I
1\
Co'iAoon %r S(Mor>of*on
V
to
J.
1
OfvtPd- G'EUOI
L^«4
3
ClSUOt
— Cp«n .npwi
C13C2
r.i*
ClSSOJ
1
n v*d eouMt
ctf Uiion
CISS04M
—
nart
CISS04
fiiu inoMt
ft"« 2.
— S«( owa>u(
>>•
— S«( Ot^CPwI
M«
— C?^ (Xir>ji
— S«t Output
1
2
M«
r<i«
in
2
3
CISU13
-crcsoi(Input
k»T
fit«
fil«
1
-
S*l i««pwl Rl« 2 ruo. ariUtMvt k»r
IT
uxlat'on
^
fro**! w'^Dl iMput
2 oc'^i-on krrt
"
<^x
c;».
^^•
1
\cj\ and rr**1 h«aOi
b
<
.
cinoi
r<i«
I
e9iii«>n
ni« }
C2r*02—
pnomm
0>«ou(
o.exi
b^ ^
.
cirsoa.
-ten
"!• 3
ClE'.Ol
f^'
Com
nouf
an
ru
2
tot* '^jf»«iw
OLSoa
Fig.
10
Example of Collation 2? Specification
(ii.i
flv>««fTtai»
LOGIC TA2LE
„
Carv
T« «i iwnd
(M9U1
i>t«
«tfkia
•!
N%
otf
''/v
w«a«^
pa^ eoi^Mr
2
Inpwi 9 'Km
I
0«T»
•CuMv*«« Cm
Cm*
Inpvi f •* 2
f»«i»^
To *a«c\«a
C7AC«
To
••!
•
ua'B^a
<
C9'«r*an
i
*T
UQM*
~~M«flOa/^
cO-nM^ ^IWtH^
'MfO't «««jum aO-C
rvulw EDIT —
.
1
standard program codings or procedures corresponded to SPD and were
divided into 5 levels.
The
first
three treated
as
"black boxes" processing
divisions, conditions for selecting the primary processing functions (modules),
and
processing
specific
The
subroutines.
Another
functions.
fifth
was the
procedures unique to their needs.
"users
level
level,"
consisted
of
common
where customers defined
Programmers using the STEPS methodology
only had to write specifications and code for this fifth level."'
STEPS STANDARD CODINGS
Identification Division
Environment Division
Data Division
File Selection
Working Storage
Section
Procedure Division
Level
1
(Process Division)
Level 2 (Primary Process Function)
Level 3 (Specific Processing of the Primary Process Function)
Subroutines
Users Level
Source:
Azuma and Mizuno
1984, p.
Despite some resistance
introduction of
STEPS
in
91.
the mid-1970s,
as a major success.
in-house and customer sites
in
NEC managers considered
Among programmers surveyed
1981, according to
43
the
at 88
Azuma and Mizuno, about 88%
found STEPS "very easy" or "easy"
debugging "very easy"; and 81%
felt
to
it
55% found
learn;
had
it
made coding and
"considerable" or "big" effect on
a
Productivity improvements measured by man-days required for
productivity.
programs developed with and without STEPS ranged from 26%
similar
in
the
specification phase, 91% in coding, 35% in compile time for debugging, and 53%
for man-days.
overall
longer than average
was generally
phases, and
non-STEPS programs by about 6% more
Offsetting this, according to 1984 data on
(see table).
sites,
The average STEPS program, however, was
a
a
20 to 50 percent cost reduction
50 to 80 percent reduction
in
Key:
s
PHASE:
=
source code lines;
md
STEPS user
=
man-days;
source code
STEPS users
phases.'''^
(1981)
sites
t
=
at 1200
analysis and design
program manufacturing
STEPS PRODUCTIVITY COMPARISON
Sample: Project data from 1200
in
lines of
slightly
compile time for debug
Automated Production of Business Applications Programs
The most important automation
programs
COBOL was
in
used
business
applications
SEA/I (System Engineering Architecture).
Development
tool
for
began around 1980, when NEC established the Software Product Engineering
and
Laboratory,
$10,000 and
1984
in
The
Base (EIB),
a "tool
tool consists of
testing,
and
programming experience by providing
system definitions,
a
tool
from
proposal
formation
set formats
at
support for up to 10
an Empirical Information
prototyping
and ready access
to
capture
to previously
system and program structures,
layout designs,
and
product priced
EIB attempted
installation.
programs, and test data.
of tested
provided specific software to aid
set
with
a
work methodology, covering proposal,
program modules ("source parts"), number
The
SEA/I as
three subsystems:
machine" set, and
implementation,
written
offering
NEC minicomputer,
running on an
engineers.
design,
NEC began
in
through
all
phases of development,
The work
maintenance.
methodology was based on STEPS.
SEA/I
served as
a
program generator
called
"auto synthesizing."
COBOL
through
parts" from
a
a
One method NEC
This produced complete programs
in
structured
Source Parts Library and put the parts together automatically.
called "interactive synthesizing."
of the tool to specify parts to be
they were to be located
in
two ways.
menu system which pulled out software modules or "assembly
The second method NEC
anywhere
in
between.
In
in
This allowed the user
recalled from the parts
the program,
library and
where
and to insert newly written code
both cases, the synthesizer function of SEA/i checked
syntax validity, data-name consistency, and attribute consistency, to make sure
the modules would work together. °^
45
PtOOOCTKX
&
StSICm SuF^OtT ToOllOIH
Svii«m PrepoKM
Mo
Dolo Flow C'oonn
R«CO/d Dci'ffn
jporii
Mo
l.b(Om« 0«f /Proc)
Co'^o'otvd T*^ Do'o
r«il Molr.i
|C|ftmorioA
i«M*inM
S'oro^a Sooca Ewimotot
An example
included
storage
in
file
SEA/I
is
shown
in
(Item Master File)
enters data.
too!
developing
of
data entry program with the various tools
the figure below.
This example requires one
and one screen form through which the user
The program designer uses the Data Record Design Aid (DDA/1)
to create a
hand corner.
a
record structure and screen format shown
The Data
which
"implementor"
are
tool
put
called
extract test data, while
is
the upper
left-
Definition Source Parts Generator (IMA/2) analyzes the
design and then generates two sets of source codings
format),
in
a
together
IMA/3.
into
a
single
A testing
tool
(file
structure and screen
COBOL program
analyzes
the
by
program
an
to
configuration tool calculates how much storage space
needed and generates job control commands
other types of business applications,
a
to allocate the file space.
menu-based
Tool (PDA/1) performs similar functions.
47
tool called
For
Program Design
s
a
Q)
C
>.
w
E
o
t
:
r-
.z-itt
a
o
•
i •
.
1-
c c
oc
» 1
:
-f t£.:::.iii:
£ft==t5^f5;
il?:£?;S
c
cr
<^
.
I.
a.
<
1
«
c
o
w
<
r
m
Of particular significance,
and Masao Matsumoto (the
tool),
is
that SEA/I
the view of
in
latter has
"learns"
NEC managers such
been directly involved
in
as
developing the
the sense that the number of elements
in
Fujino
in
its
Empirical Information Base -- system designs, documentation, code -- increase
every time
a
new program
importantly,
become accessible automatically
thus
documentation
designed on the system.
is
and
procedures
the
standardized, making
it
Improved designs and
future
to
accompanying
tools
users.
More
SEA are completely
possible to divide labor among the different development
stages or have different individuals up-date programs
in
the future without,
according to Fujino, the usual problems that come with changes
Users have reported as much as
a
in
personnel.
7-foId increase in productivity due to the
fi7
automated functions."'
Another
automation
tool
used
primarily
requirements definition and documentation was
Software Product Engineering Laboratory.
diagramming functions linked
design
programs
through
to a
SPECDOQ,
software
also developed at the
This provides graphics, menus, and
relational
standardized
applications
for
database that allow engineers to
documents,
and then
change these
documents easily for different applications.
The
tool
the Unix operating system and, according to
NEC
developers, was also able to
was designed
to run on
CO
process the STEPS documentation.""
Systems Software Development and Process Control
A major issue
in
NEC's basic software development was standardization.
Because the company supported 4 incompatible operating systems, including one
inherited
from
Toshiba
in
the
late
1970s,
managers
had to think
about
standardization even more deliberately than other divisions to get any economies
49
of
these different
across
scale
merged gradually), planning and standardization allowed
different (despite being
NEC
to reuse
code across the different systems, especially for language
and data base programs.
the
Even though the architectures were
lines.
CO
But the incompatibility of different machines and
^
software
presence of old
utilities
and documentation made
it
necessary
to
(1)
formally recognize and try to improve existing tools and procedures; and (2)
delay the introduction of more advanced design-support and process control
tools.
All of
NEC's systems software divisions, subsidiaries, and
developed along with different operating systems. Most important
relied on tools
was
HEART
(Hopeful Engineering for Advanced Reliability Engineering), used for
The procedures, standards, concepts, and
operating systems development.
associated with
the
SWQC
compile
a
affiliated firms
HEART
activities
formal
had been used for several years
at
Fuchu
the
manual
and
The
subsidiaries
and
has
as
a
NEC
until, as part of
managers decided
Factory,
HEART
promote
production and quality control.
software facility
Software
in
to
system for
"scientific"
quality assurance department at the Fuchu
been the formal promoter and continues
affiliated
tools
software
houses
in
adopting
assist
to
the
NEC
recommended
techniques and standards.'^
The philosophy behind HEART was
collection
This
was
and analysis to
based
productivity.
on
the
efforts
link
notion
To implement
that
in
that
was
it
possible
to
data
process control to quality control.
improving
this concept,
quality
HEART
will
lead
to
higher
relied on 5 basic elements:
1.
Process Control System (Standardization, Team Methodologies)
2.
Design Techniques and Tools (SPD, DECA)
3.
Program Analysis System
4.
Modularization Methodology for Reuse
50
use
5.
Testing Technology.'-^
HEART
collection
defined 7 phases of development and testing, and required data
during each:
detailed design,
requirement analysis and definition; functional design;
which used the SPD charts; coding, mainly done
subset, HPL, with some also
integration;
from
and system
requirement
in
test.
analysis
C and assembler;
through
coding;
accounting
quality
The kinds
of
data
sheets
required
all
of
the data went
managers through
for
concentrated on scheduling and productivity (man power) (table).
51
were
NEC automated some
into a central process/quality control data base accessible to
(figure).
PL/I
Development item history sheets were required
the data input; other data entry was done manually, although
terminals
a
unit and function test; system
required from unit/function test through system test.
on-line
in
each
'"^
phase
PROCESS-CONTROL DATA COLLECTION
1.
ReQuirements Analysis/Definition Process
estimated date of completion of each process
estimated program size
estimated man power
person in charge of development and years of experience
language in use
development form (new development/modification/division transplant)
difficulty level of development [type of program]
2.
Functional Design Process
completion date
actual
man power used and break-down by persons
in
charge
difference between the standard times and the man power used
quantity of functional specifications and revision history
scale of design review (number of workers/times) and the number of
corrections
3.
Detailed Design Process
completion data
actual man power used and break-down by persons in charge
difference between the standard times and the man power used
quantity of design specifications and revision history
scale of logic inspection (number of workers/times) and the number of
corrections
4.
Coding Process
completion data
actual
man power used and break-down by persons
in
charge
difference between the standard times and the man power used
the development size
detailed information for each program to realize functions
scale of code inspection (number of workers/times) and the number of
corrections
5.
Unit Test/Function Test Process
number of test cases to be executed
target bugs to be detected
required man power
number of test cases executed previously in a certain period of time
number of bugs detected previously in a certain period of time
man power used in the past
6.
System Test Process
number of test cases to be executed
target bugs to be detected
required man power
number of test cases executed previously in a certain period of time
number of bugs detected previously in a certain period of time
man power used in the past
52
c
O
U
H
tH
O
CT3
CO
CO
o
u
o
u
C14
iJ
c
E
c
>
QJ
to
An SPD translator
SPD diagrams
translated
This
diagrams.
coding
and
in
tool called
DECA
(Detailed Design and Coding Assistant)
program source codes, or program codes
into
eliminated
much
the tedium
of
(and
COBOL
(for
applications
automated" (compared to SEA-I)
interfaces between different
in
that users
modules.^ By
still
had
NEC
all
software
producing systems software as well as applications programs
of
SPD and DECA
--
used versions
management meetings"
called for "process
to be held
adherence to the promised delivery
(release) date; and quality of the final product.
Analysis for this included data
from several "process management models," primarily
12-factor cost model.
a
Differences between estimated and actual man-power figures required
managers
in
charge.''
Assurance Department
NEC
NEC was
generally able
the Basic Software Division,,
a
month
of
planned release dates;
included some "buffer time" to allow for slippage of schedules, this
over the past five years.
the
review
of the Quality
represented an improvement of approximately 20 to 30%
with
a
According to Hirai Yozo, Manager
system software products within
to deliver
while
in
facilities
designs and code. "
periodically to discuss primarily two issues:
of the
"semi-
code to create
to write
--
HEART procedures
only
1987, with the exception of specific
programs following different customer specifications,
to write detailed
of
(similar to PL/I),
DECA was
although
software),
SPD
errors)
potential
HPL
variety of languages, including C, Fortran,
a
into
different
phases
in
planning accuracy
There was no organizational division
of
development,
as
might
occur
of labor along
in
applications
software development, although less-experienced programmers did detailed design
and coding,
and the more experienced personnel focused on
requirements
analysis. '°
With regard to project control,
follow
the advice of
Frederick
it
is
Brooks
54
interesting to note that
at
IBM,
who had found
NEC
did not
that adding
people to an already late project made
NEC was
Hirai claims that
required.
it
to
communication time
although managers tried not to add
meant they were
because this
testing,
to the
able to add people to any stage of the
process and effectively reduce lateness,
people
due
later,
not
catching
bugs and
development.^
eliminating them during
SDMS (Software Development and Maintenance System) was
advanced and integrated
set of tools
and techniques originally intended
as a software factory infrastructure for
NEC
problems,
has limited
its
all
basic software.
Due
a
more
to
serve
to introduction
use to new switching systems and communications
on
portions of operating systems. ^
planning
Basic
SDMS
for
started
1975,
in
at
about
the
same time
information was becoming available on SDC's Software Factory experiment.
many ways, NEC managers intended
to use
SDMS
system for the development and maintenance
In
fact,
1979
a
processing compared
tools
developed
published
article
SDMS
at Mitre
to the
in
of
Japan's
as a total,
In
factory support
modularized systems software.
leading journal
SDC Software
on
information
Factory, as well as to other
(Simon), Softech (Software Engineering Facility),
TRW
According to the NEC authors,
(SREP), Fujitsu (SDSS), and Toshiba (SWB).
these other tools concentrated either on design support or project management.
SDMS was
The
NEC
superior
in
its
attempt to integrate both functions. °^
first practical version of
SDMS was
released for in-house use
in
1980;
has continued to introduce improved versions every year or two.
The
basic system remains the same, consisting of
and three subsystems:
(SDL) and
a
a
software development data base
(1) for design, including a
standardized design language
methodology emphasizing modularization and sophisticated data flow
and abstraction techniques, with
error checking,
facilities for
design modifications, automated
and automatic design document generation;
55
(2)
for product
management (configuration, updating,
retrieval)
;
and
including progress control and productivity data.
considered the most important part of SDMS.
56
-^
(3) for project
management,
The design subsystem
is
SDMS
Several experimental projects have reported significant improvements
productivity and quality.
with
a
data
base,
For example,
engineers
in
the design of
SDMS showed
using
in
comptroller system
a
twice the output
rates
of
comparable projects, including the discovery of 90% of the design errors before
programming phase,
the
and automatic generation
more than 90%
of
design documents, which previously were written by hand.
an overseas switching system,
of
the
maintenance of
In
SDMS helped reduce man-hours
producing
in
upgrades and revisions by 90%.°^
Despite these results,
or problems
Therefore,
in
adopting the standardization and tools
in
NEC
has restricted
the switching division.
development
Laboratory."'^
NEC developers have acknowledged
projects
its
SDMS
done
serious resistance
required by SDMS.
use to new selected new programs, especially
also the
is
within
the
for
new software
Product
Engineering
tool
Software
SDMS
But examination of why
required
has not quite fulfilled the early
goal of serving as a comprehensive "software factory" infrastructure provides
several lessons regarding the introduction of
new standards and
tools into
any
existing development and production system.
One problem has been the time required
methodology.
This
learning
projects, as well as slow
familiar with the
tended to delay the start
of
the
new design
actual
work on
down design progress because programmers were
new methodology.
to the suspension of
learn
to
SDMS
In
some cases,
introduction plans.
new design techniques did not work
not
type of experience led
this
A second problem was that the
well with existing
code written using
emphasis on concepts such as data-flow and abstraction.
The need
to
less
upgrade
previous systems and the difficulty of replacing existing software entirely has
also
to
reduced the successful transfer to SDMS even
adopt the system.
A
third,
related
58
difficulty
in
divisions that would like
has
been that SDMS was
developed to run on NEC's large-scale ACOS-6 operating system.
writing software for different computers found
machine.
their
own
HEART].
it
Fourth, was the general problem that
tools
difficult to mix
NEC
Programmers
more than one
divisions had developed
and standards over the years [such as those now included
Getting them to change over to
particularly difficult
SDMS standards
divisions were engaged
if
in joint
in
took time and was
development efforts with
other firms. ^^
Process. Cost, and Quality Control
Because Honeywell had been particularly successful developing software for
its
in
MODE
200-model computer series, for the
IV project NEC's control section
the computer division decided to copy Honeywell's process-control system,
which consisted
of
PERT network
a
"We were very influenced by
model.
Honeywell," Mizuno admits, but they soon realized that the PERT charts were
almost useless.
The
initial
planning parameters were so inaccurate that none of
the schedules came out close to estimates.
This prompted
adopt another planning and forecasting model used
Corporation (SDC)
in
a
System Development
model for the U.S. Navy during the 1960s that broke
down the development process
into phases such as specifications design, detailed
design, coding, and component test.
but, according to Mizuno, the
It
was superior to Honeywell's technique,
SDC system
SDC had
also had serious deficiencies.
its
NEC managers decided they needed
59
a
in
engineers; users
to take into account different experience levels of
changes over time.
The
fixed the parameters and coefficients used
the model, basing them on the average performance level of
were unable
to
Santa Monica, California.
SDC had designed
main problem was that
at the
NEC managers
programmers or
more dynamic model
that could accommodate different experience levels, as well as additional factors
they
had an impact on software costs and personnel performance.
felt
was
It
data
begin
to
NEC had enough
point -- around 1967 -- that
at this
calculating
rough
standard
times
for
development activities and different types of programs.
MODE
IV
completed
programming experience,
Mizuno's view,
and did
came
this
because they lacked
we had
software productivity," he recalls,
precise distinctions
in
led
to
a
software
a
planning model
still
primitive,
in
good metric for measuring productivity
in
to introduce
and
a
given period of time.
more
scientific
this conviction
"We
measures for
gradually led to more
the productivity data collected between different types of
programs and languages used, as
This work
a
own
This data, based on the
used were
times
simply by lines of code (steps)
to the conclusion that
different
became the basis for
The standard
1969-1970.
in
of its
totally
new
well as the
cost
amount
estimation
of
documentation required.
system
in
1977,
based on
a
multi-factor regression model derived from the "meta model" developed at the
University of Maryland by J.W. Bailey and V.R. Basili, which consists of several
standard model expressions that allow users to select from their own data
different factors that appear to impact cost.
Users can also make adjustments
for productivity improvements. °° Accordingly,
NEC
revises standard-times data
annually and has used comparisons of estimates and actual data for projects to
improve the model continuously."'
the
NEC model
and
his staff at
follows the popular
To make
COCOMO
it
easier to use, the expression of
format proposed by Barry Boehm
TRW.^^
NEC COST ESTIMATION FACTORS AND MEASUREMENT SCALES
Man Power (man-hours)
Program Size (1000 lines
of code,
excluding comments and macros)
Development Tools (%)
Development Technologies/Methodologies
60
(%)
OS/Hardware Interface (%)
Member Experience (years)
Outside-Order Dependency (%)
Specifications Change Frequency
(scale of -2
"
+2)
User Characteristics (-2 " *2)
Product Flexibility (-2 ~ *2)
Novelty/Complexity (-2 ~ +2)
Quality Requirements (-2 ' *2)
Team
"
Ability (-2
*2)
Mizuno 1985,
Source:
NEC used
productivity
its
5.
p.
regression
multiple
model
By establishing
analysis.
a
productivity coefficient value for each factor,
effect
of
each
factor
on
improvement was possible
that
with
factors
the
productivity
each area.
in
"most
both
for
productivity
it
was possible
and,
therefore,
For example,
estimation
range
and
and
mean
to determine the
to
what extent
recent data suggested
room for improvement" were development
tools
dependency (procurement)
(52.6%), quality requirements (43.7%), outside-order
(36.1%),
cost
product flexibility (25.0%), and frequency
of
specifications changes
(22.3%).S9
In
a
the early 1980s, the Software Product Engineering Laboratory developed
version of the cost model to be used on
10 to 20 programmers. This system, called
Tool), used
a
a
personal computer, for groups of
TOMATO
(Table-Oriented Manager's
LOTUS
1-2-3 to allow managers to
relational database format like
track schedule progress, compare actual times to estimates, and do some simple
productivity factor analysis. ^^
NEC used
in
conjunction with these cost and planning tools
a
"quality
accounting system," developed by the Quality Assurance Department at the
Fuchu software factory.
Depsrtment literature explained
which bugs generated into
a
through bugs detected with
program are regarded
a test
as a debt, this debt
and the shipment
61
this as a "system in
Is
Is
repaid
performed when the debt
becomes 0.""'
number
predictions of the
procedures called for
the accounting
More specifically,
of potential
bugs;
(2)
establishment of
a
(1)
bug control
curve; and (3) execution of tests and quality evaluations.
the number of bugs likely to be
data on
This estimated
utilized a simple "reliability prediction model."
Bug control
the number of bugs
factors: (1)
program
corrections
in
size;
(2)
in
a
certain type of software based on past
generated
degree
in
similar
of inspection
programs,
adjusted for 8
and design review (number
of
functional specification, detailed design, and coding, divided by
the number of documentation
pages or program size);
(3)
development form
(new, modified, or transplanted code); (4) language of development and degree
of difficulty;
type of operating system/hardware interface;
(5)
experience of development team members;
and
(8)
sufficiency of
man power.
program, NEC substituted these
in
(7)
frequency
(6)
years of
of specification
changes;
As test data accumulated for
a
the model for the estimated figures.
current
A bug
control curve determined whether or not the detection of bugs through testing
was going according
growth model.
levels,
If
to predicted levels,
test results
based on
a
Gompertz curve
were significantly different from predicted bug
causes of the discrepancy had to be analyzed.
only "[w]hen
all
reliability
predicted bugs are detected."
62
Testing was completed
O
:^
o
M
M
Q
i::q
CM
II
>^
H
M
M.
H
Cd
cd
o
M
<d
pq
o
While the Quality Assurance Department
Division tended to direct
NEC group, much
of
QC
in
the Basic Software Development
activities for software
development throughout the
directives were channelled through the
its
Quality Control) program and quality circles established
in
1981
SWQC
(Software
(see discussion
above) .^^
NEC
gradually extended the
First, the
SWQC
Higher
Once formed, groups
usually once
conducted
in
"^
in
were
development,
in
addition
allow
to
week for two hours,
the
to this
and analyzed data, reported
the establishment of measures to prevent
in
similar errors from recurring (see table).
reviews of programs
a
set targets, collected
on their results, and participated
reviews
series of steps.
managers were then asked
level
employees to devote some time,
these
a
Information Center staff determined which low-level managers
should form groups.
activity.
SWQC program through
in
SWQC
order to catch mistakes early., although
formal
to
teams even performed internal
later stages of development.
"third-party"
To guide group
technical
reviews
activities, the
SWQC
Information Center held training workshops for group leaders and published
various handbooks and manuals, such as "The Seven Tools of
based on convention
QC
techniques used
to use data sorting,
control charts,
then brainstorming,
cause-effect
in
SWQC." This was
other industries, and outlined how
and Pareto charts for data analysis, and
diagrams,
solutions.
SWQC PROGRAM
1)
SWQC grouping
2)
Target setting
3)
4)
5)
6)
7)
8)
Orientation
Data collection
Cause analysis
Consideration of radical measures
Filling in the SWQC report
Proposal and implementation
64
and other methods
to
implement
Reporting
9)
10)
11)
12)
Publication of excellent results
Management evaluation and awards
Repetitive enforcement
Mizuno 1983,
Source:
70.
p.
NEC programmers
According to Mizuno,
control was
a
blue-collar problem."
differences
skills
in
weaker members.
minimize
to
of
Eventually,
idea
in
of
a
however, he and other NEC
NEC's software developers
of
NEC managers, such
teams
the
"They're white-collar workers and they protested that quality
managers persuaded 95%
essentially
resisted
first
"Every programmer was against me," he recalled
joining quality circles.
recent interview.
at
Azuma,
as
people
studying
to join the
promoted the use
together
--
as
a
groups.^
quality
of
means
circles--
reducing
of
among programmers and improving the performance
The groups were only part
differences
among
of this effort, however.
of
Also used
programmers were extensive training
in
structured programming techniques, encouragement of proofreading, program
standardization, and use of software tools. ^^
Mizuno devoted
circles
also
so
much
attention
the
to
SWQC program and
quality
because he considered them essential not only for quality control but
for
individual
communicate and
and team motivation.
cooperate
in
teams,
recognition for achievement through
In
the
well as
SWQC
improving quality and productivity
activities in
through
a
people
considerable
a
year
series of prizes
Mizuno reported significant results from
In
1983 article,
helping
conferences held twice
given to teams.
a
to
program provided
SWQC group
and an awards conference held annually, as
addition
developing software:
65
in
each of NEC's divisions
SWQC PROGRAM RESULTS
GROUP DIVISION
Switching
1
TARGET
RESULTS
Machine time
Down
Transmission
2
1/3
debug
for
Bug
ratio
1.37/KS to 0.41/KS
Bug
Ratio
0.35/KS
Bug
ratio
Source Size
6/Month to 0.9/Month
20KS to 8KS
Object Size
72KB
Spec changes
Down 40%
control
3
Minicomputers
4
Large OS
Large Appli-
to
to
0.20/KS
26KB
cations
Source:
Mizuno 1983,
p.
71
QC
Along with conventional
techniques,
NEC
trained
its
programmers
in a
standardized set of metrics, methods, and tools for quantitative software quality
control
it
called
Technology).
SQMAT
(Software
Quality
This was based on the
developed by Gerald Murine,
a
SQM
Measurement and Assessment
(Software Quality Metrics) system
U.S. consultant.
Developing
SQMAT was
the responsibility of the Quality Assurance Task Group organized
in
formally
1982, which
worked under the previously established Software Productivity Committee.
SQMAT
phase
for
of
procedures called for the determination of quality targets before each
development; planning meetings to discuss quality criteria; checkpoints
measuring
quality;
and
action
proceeding on to the next phase.
of
"Software Quality
Design
plans
for
corrective
measures
before
Factors analyze included an interrelated set
Criteria"
(SQDC)
Requirements Criteria" (SQRC), as noted below.
and
SQRC
"Software
Quality
factors were ranked
order of importance, and measured through several quantitative methods. 97
66
in
RELATIONSHIP BETWEEN SOFTWARE QUALITY REQUIREMENTS CRITERIA
AND SOFTWARE QUALITY DESIGN CRITERIA
M = Maintainability; F = Flexibility;
= Interdependability
S = Security;
Key: C = Correctness; R = Reliability;
U
= Usability;
E =
Efficiency;
SQRC:
C
R
I
M
F
U
SQDC:
Traceability
Completeness
Consistency
Simplicity
Accuracy
Error Tolerance
Modularity
Self-Descriptiveness
Conciseness
Instrumentation
Generality
Expandability
Training
Communicativeness
Operability
Machine Independence
Software System Independence
Execution Efficiency
Storage Efficiency
Access Control
Access Audit
Data Commonality
Communication Commonality
Source: Sunazuka, Azuma, and Yamagishi 1985, p.
67
5.
CONCLUSION
Despite
as
its
early reliance on U.S. computer and software producers, such
NEC managers
and SDC,
Honeywell
insisted
traditional factory models
was strong, seen
automation,
of
productivity.
developing
components,
in
and
Mizuno and other managers also
or art-like approaches often followed
evolution of software engineering
distinctive
in
and
the emphasis on standardization,
linking
felt
of
quality
in
control
to
there were better process-
management and control techniques possible for software,
craft-
a
Influence from hardware production
approach to software production.
reusability
on
in
contrast to the
the industry.
NEC proceeded roughly
The
historical
as follows:
data collection and process analysis
formulation of standard times to improve estimation and cost control
centralization of development for different product groups
factories,
in
permanent
rather than management by projects
processes (procedures and tools) optimized for different product groups
standardization of factory procedures and tools
training of workers
gradual
in
standardized procedures and tools
decentralization
of
development through
establishment
subsidiaries, satellite offices, and subcontracting
formalization and centralization of process
R&D
formal quality assurance training and control program
development of automated tools
promotion of reuse of standardized components
flexible customization
continual evolution of tools,
procedures, management systems
continual improvement of quality and productivity.
68
of
NEC
try
not
did
model
to
software
development
around
hardware
engineering and manufacturing processes as closely as firms such as Hitachi and
Rather, the company developed different factory strategies and
Toshiba did.
structures for different types of software produced
result
was several factory-like systems for
for applications
programs,
in
HEART
STEPS
general,
for operating
in
numerous
STEPS
main product groups --
its
The
locations.
SEA-I for well-understood business
with
systems,
and SDMS for switching systems.
Distinctive about NEC's approach was also top-down direction from executive
committees,
a
central laboratory, and the quality assurance department
basic software development division.
distribution
of
development
in
the
Progress occurred steadily even though
across
activities
so
many
different
sites
and
subsidiaries, as well as the tendency of departments to prefer established tools
and methods, made
it
difficult for the central
committee and Software Product
Engineering Laboratory to impose new systems such as SDMS.
The pattern
of process
development
in
NEC
also occurred,
other Japanese firms that built software factories.
distributed
management preceding advances such
development,
automation,
components, and flexible customization
quality
--
is
assurance,
still
centralization,
"
standardization
to
of
any firm that
the engineering and
retain flexibility in product development.
69
and
as standardization,
perhaps applicable
wants to move beyond job-shop approaches and "rationalize
production process, but
less, at
Furthermore, this type of
strategic and organizational evolution -- process analysis,
elimination of project
more or
REFERENCES
The current version
A. Cusumano,
paper from this research project is titled
Factory Approach to Large-Scale Software
Development: Implications for Strategy, Technology, and Structure," Sloan
1987 Working Paper #1885-87 Revised.
School of Management
Other
completed papers are "A U.S. 'Software Factory' Experiment: System
Development Corporation," Sloan School of Management 1987 Working Paper
#1887-87 Revised; "Hitachi:
Pioneering a 'Factory' Strategy and Structure
1987
for Large-Scale Software Development," Sloan School of Management
Working Paper #1886-87 Revised; and "Toshiba's Fuchu Software Factory:
Strategy, Technology, and Organization, " Sloan School of Management 1987
Working Paper #1939-87.
1.
of the main
"The
Michael
,
.
.
,
2.
NEC
Corporation Annual Report 1987.
Japan Economic Journal, 13 December 1986, p. 22; interview with Kaneda
Hiromu, former NEC managing director and current corporate advisor,
3.
9/26/85.
June 1987, pp. 30-32.
4.
Datamation
5.
Interview with Mizuno Yukio, 9/26/85; and Usui Kenji, "NEAC kaihatsu
(2)" (History of the development of the NEAC), Computopia September
shi
.
15
,
1975,
p.
17.
Usui, p. 21; Nippon Denki Kabushiki Kaisha, "Konpyuta sangyo no genjyo
NEC" (The current state of the computer industry and NEC), NEC
Information Processing Planning Office, July 1985. The initial ACOS models
were designed in cooperation with Toshiba.
6.
to
7.
Usui, pp. 22-23.
Usui, pp. 22-23; Nippon Denki Kabushiki Kaisha, Nippon Denshi saikin 10
nen shi (A history of the last 10 years of Nippon Denki), NE$C, 1980, p. 86.
8.
9.
Mizuno interview, 9/26/85.
10.
Kaneda interview, 9/26/85.
11.
Fujino interview, 9/8/87.
12. Mizuno Yukio and Mitsugu Mamoru, "Sofutouea bijinesu no mirai" (Future
of the software business), Konpyuta
April 1986, pp. 85-86.
.
70
13.
Mizuno interview, 9/26/85.
14.
Nippon Denshi saikin 10 nen shi
15.
Fujino interview, 9/8/87.
16.
Fujino interview, 7/28/86.
pp. 230-231; annual report, 1976.
,
"Sofutouea enjiniaringu no hitsuyosei" (The need for
17. Mizuno Yukio,
software engineering", Joho shori Vol. 16, No. 10 (October 1975), pp. 836.
837.
18.
Mizuno 1975, pp. 838-839.
19.
Mizuno 1986, p. 91.
20.
Mizuno 1986, p. 92.
21.
at
Kiichi Fujino,
"Software Development for Computers and Communications
NEC," Computer
November
.
22.
Fujino interview, 7/28/86.
23.
Fujino 1984,
24.
Fujino interview, 9/8/87.
25.
Fujino,
26.
Fujino interview, 7/28/86.
27.
Azuma interview, 10/1/86.
28.
Hirai
p.
1984,
62.
57.
pp. 57, 62.
interview;
also,
NobuyoshI
Management System for the C&C
Development
"C&C
p.
No. 81
Satellite Office
,
(April 1986),
(April 1986), pp.
and Networks,"
Tsuchiya
Satellite
et
al.,
Office,"
"A
Control
and
NEC Research and
19-23; and Sen Nakabayashi et al.,
No. 81
NEC Research and Development
,
pp. 8-18.
7/28/86; Mizuno interview, 9/26/85.
29.
Fujino interview,
30.
Azuma interview, 7/28/86; Mizuno interview, 9/26/85.
31.
Azuma interview, 9/26/85.
32.
Fujino interview, 7/28/86.
Motoei Azuma interview, V/28/87.
Azuma at the time was manager of
the Software Management Engineering Department in the Software Product
Engineering Laboratory.
33.
71
(NEC Software Product Engineering Laboratory),
K. Honda et al.
"Research on Work Environment for Software Productivity Improvement,"
34.
COMPSAC'85
.
1985.
pp.
1-2.
35.
Honda 1985, pp. 3-8.
36.
Azuma interview, 7/28/86.
37.
Fujino interview, 7/28/86; Mizuno 1983,
38.
Fujino interview, 7/28/86.
39.
68.
Yukio Mizuno, "Software Quality Improvement." Computer March 1983,
40.
Fujino interview, 7/28/86.
41.
Azuma interview, 7/28/87.
42.
Azuma interview, 7/28/86.
43.
Mizuno 1983,
44.
Interviews with Fujino and Azuma, 7/28/86.
45.
Interviews with
46.
Fujino interview, 7/29/86.
p.
69.
.
p.
p.
69.
Azuma and
Fujino,
7/28/86.
Interviews with Horie Susumu, Engineering Section Manager, Basic
Software Division, NEC Software Ltd., and Yamaguchi Hiroshi, General
Manager, Basic Software and Application Software Development Division, NEC
Software Ltd., 9/2/87.
47.
Interviews with Horie and Yamaguchi (NEC Software) and Akira Yamada,
Manager, Software Education Dept., NEC, 9/2/87.
48.
49.
Azuma and Mizuno
1984,
p.
50.
Azuma and Mizuno
1984,
pp. 88-89.
51.
Its
M. Azuma and Y. Mizuno, "STEPS:
Integrated Software Standards and
Productivity Impact," Proceedings of COMPCON 1981
IEEE, p. 83.
52.
Fujino 1984, p. 59.
53.
Azuma and Mizuno
1981,
pp. 85-86.
54.
Azuma and Mizuno
1984,
p.
86.
55.
Fujino interview, 9/8/87.
56.
Azuma and Mizuno
p.
87-88.
88.
.
1984,
72
57.
Azuma and Mizuno
1984,
91.
p.
Interviews with Hirai Yozo, Manager. Quality Assurance Dept.,
Software Development Division, NEC, 9/8/87.
58.
59.
Basic
Hirai interview.
A Humanized Documentation Technology,"
M. Azuma et al., "SPD:
IEEE
Computer
Society's International Computer Software
of
the
Proceedings
and Applications Conference (COMPSAC) November 7-11, 1983, p. 308.
60.
.
61.
Azuma and Mizuno
62.
Fujino 1984,
"NE Probes
February 1985,
63.
1984,
91.
p.
59.
p.
AD System
for Software," Electronic Engineering Times
Masao Matsumoto, "SEA/I
IEEE SoftFair '83 Proceedings
64.
,
Application
p. 378.
65.
Masao Matsumoto, pp. 376-377.
66.
M. Matsumoto, pp. 378-379.
"NE Probes
February 1985,
67.
.
11
66.
p.
AD System
Software Productivity System,"
for Software," Electronic Engineering Times
.
11
66.
p.
68. Hiroyuki Kitagawa et al., "Form Document Management System SPEDOQ
-- Its Architecture and
Implementation," Proceedings 2nd ACM-SIGOA
Conference on Office Information Systems
.
June 1984 (Toronto).
69.
Hirai interview.
70.
Interviews with Hirai and Fujino, 9/8/87.
71.
Fujino interview, 9/8/87.
72.
Hirai
Interview.
NEC Corporation, "QA System in NEC: Scientific Control of Production
and Quality in NEC -- Basic Software," unpublished internal document,
September 8, 1987, pp. 3-9.
73.
NEC Corporation, Software Product Engineering Laboratory,
(Structured Programming Diagram)," undated manuscript.
74.
75.
Hirai interview.
76.
Fujino interview, 9/8/87.
77.
78.
"QA System
in
NEC," pp. 10-12.
Hirai interview.
73
"SPD
.
79.
Hirai interview.
80.
Hirai interview.
Kanji and
(Project control tools),"
724.
Iwamoto
81.
Okada Tadashi (NEC), "Purojekuto kanri tsuru"
Joho shori Vol. 20, No. 8 (August 1979), pp. 719.
Uenohara Michiyuki (NEC) et al., "Development of Software Production
and Maintenance System," Research and Development in Japan Awarded the
Okochi Memorial Prize (Okochi Memorial Foundation, 1984), pp. 26-32.
82.
Uenohara
83.
et al.,
p.
32.
Hirai interview; Fujino interview, 9/8/87; Kanji Iwamoto (NEC), et al.,
"Early Experiences Regarding SDMS Introduction into Software Production
Sites," NEC Research and Development January 1983, p. 54.
84.
.
Iwamoto 1983, pp. 54-59.
85.
SeeJ.W. Bailey and V. R Basili, "A Meta Model for Software Development
Resource Expenditures, " Proceedings ICSE, Vol 5, pp. 107-1 16 (March 1981 )
86.
.
.
87.
Mizuno interview, 9/26/85.
Yukio Mizuno, "A Quantitative Approach to Software Quality and
Productivity Improvement," NEC Corporation, ca. 1985, pp. 2-3. See also B.
W. Boehm. Software Engineering Economics Englewood Cliffs, N.J., Prentice88.
.
Hall,
89.
1981.
Mizuno 1985,
p.
6.
Mizuno interview, 9/26/85; Software Product Engineering Laboratory,
"Sofutouea kanrisha shien tsuru TOMATO" (Software managers' support tool,
TOMATO), undated manuscript.
90.
based on "QA System
91.
This section
92.
Fujino interview, 9/8/87.
93. This section
is
is
in
NEC," pp.
14-25.
based on Mizuno 1983, pp. 69-71.
94. Bro Uttal, "Japan's Persistent Software
p. 154.
95.
Azuma interview, 9/26/85.
96.
Fujino interview, 9/8/87.
Gap," Fortune
,
15 October 1984,
Toshihiko Sunazuka, Motoei Azuma, and Noriko Yamagishi, "Software
Quality Assessment Technology," Proceedings ICSE 1985, pp. 1-7.
97.
.
k53k 062
74
Date Due
^^i^
r^5
.9^
%\w
HB2
DEC 2?
DEC 23
JAM.
^'^li^
1991
8 iBm
Lib-26-(57
MIT LTBRflRTFS
3
TDSD DDS 13D
fibb
Download