SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS
Dr. Winston W. Rovce
INTRODUCTION
l am going to describe my pe,-.~onalviews about managing large software developments. I have had
various assignments during the past nit,.: years, mostly concerned with the development of software packages
for spacecraft mission planning, commanding and post-flight analysis. In these assignments I have experienced
different degrees of successwith respect to arriving at an operational state, on-time, and within costs. I have
become prejudiced by my experiences and I am going to relate some of these prejudices in this presentation.
COMPUTER PROGRAM DEVELOPMENT FUNCTIONS
There are two essential steps common to all computer program developments, regardless of size or
complexity. There is first an analysis step, followed second by a coding step as depicted in Figure 1. This sort
of very simple implementation concept is in fact all that is required if the effort is sufficiently small and if the
final product is to be operated by those who built it - as is typically done with computer programs for internal
use. It is also the kind of development effort for which most customers are happy to pay, since both steps
involve genuinely creative work which directly contributes to the usefulness of the final product. An
implementation plan to manufacture 13rger software systems, and keyed only to these steps, however, is doomed
• tofailure. Many additional development steps are required, none contribute as directly to the final product as
analysis and coding, and all drive up the development costs. Customer personnel typically would rather not pay
for them, and development personnel would rather not implement them. The prime function of management
is to sell these concepts to both groups and then enforce compliance on the part of development personnel.
ANALYSIS
CODING
Figure 1. Implementation steps to deliver a small computer program for internal operations.
A more grandiose approach to software development is illustrated in Figure 2. The analysis and coding
steps are still in the picture, but they are preceded by two levels of requirements analysis, are separated by a
program design step, and followed by a testing step. These additions are treated separately from analysis and
coding because they are distinctly different in the way they are executed. They must be planned and staffed
differently for best utilization of program resources.
Figure 3 portrays the iterative relationship between successive development phases for this scheme.
The ordering of steps is based on the following concept: that as each step progresses and the design is further
detailed, there is an iteration with the preceding and succeeding steps but rarely with the more remote steps in
the sequence. The virtue of all of this is that as the design proceeds the change process is scoped down to
manageable limits. At any point in the design process after the requirements analysis is completed there exists
a firm and c~seup~ moving baseline to whi(:h to ~turn in the event of unforeseen design difficulties. What we
have is an effective fallback position that tends to maximize the extent of early work that is salvageable and
preserved.
Reprinted from Proceedings, IEEE WESCON, August 1970, pages 1-9.
Co_pyright©1_9_70by The Institute of Electrical and Electronics Et)gineers,, .328
Inc. Originally published by TRW.
I SYSTE
M
I ANALYSIS
PROGRAM
DESIGN
I coo,.o
TESTING
I OPERATIONS
Figure 2. Implementation steps to develop a large computer program for delivery to a customer.
I believe in this concept, but the implementation described above is risky and invites failure. The
problem is illustrated in Figure 4. The testing phase which occurs at the end of the development cycle is the
first event for which timing, storage, input/output transfers, etc., are experienced as distinguished from
analyzed. These phenomena are not precisely analyzable. They are not the solutions to the standard partial
differential equations of mathematical physics for instance. Yet if these phenomena fail to satisfy the various
external constraints, then invariably a major redesign is required. A simple octal patch or redo of some isolated
code will not fix these kinds of difficulties. The required design changes are likely to be so disruptive that the
software requirements upon which the design is based and which provides the rationale for everything are
violated. Either the requirements must be modified, or a substantial change in the design is required. In effect
the development process has returned to the origin and one can expect up to a lO0-percent overrun in schedule
and/or costs.
One might note that there has been a skipping-over of the analysis and code phases. One cannot, of
course, produce software without these steps, but generally these phases are managed with relative ease and
have little impact on requirements, design, and testing. In my experience there are whole departments
consumed with the analysis of orbit mechanics, spacecraft attitude determination, mathematical optimization
of payload activity and so forth, but when these departments have completed their difficult and complex work,
the resultant program steps involvea few lines of serial arithmetic code. If in the execution of their difficult
and complex work the analysts have made a mistake, the correction is invariably implemented by a minor
change in the code with no disruptive feedback into the other development bases.
However, I believe the illustrated approach to be fundamentally sound. The remainder of this
discussion presents five additional features that must be added to this basic approach to eliminate most of the
development risks.
329
I SYSTEM !
REQUIREMENTSIBI~
~"'i so,w.,~ I
ANALYSIS
~1111~
II pRI~OGRAM
~lll I CODING Ii
TESTING
OPERATIONS
Figure3. Hopefully,the ~terat=veinteract=onbetweenthevariousphasesisconfinedto successivesteps.
I SYSTEM "1
.~oo,.~-,..Sl.,~
I so,w..~ !.
I ANALYSIS
PROGRAM
DESIGN
I coo,.G I,~
! TESTING I
IO.ATO.S!
Figure4. Unfortunately,for theprocessillustrated,thedesigniterationsareneverconfinedto thesuccessivesteps.
330
STEP 1: PROGRAM DESIGN COMES FIRST
The first step towards a fix is illustrated in Figure 5. A preliminary program design phase has been
inserted between the software requirements generation phase and the analysis phase. This procedure can be
criticized on the basis that the program designer is forced to design in the relative vacuum of initial software
requirements without any existing analysis..As a result, his preliminary design may be substantially in error as
compared to his design if he were to wait until the analysis was complete. This criticism is correct but it misses
the point. By this technique the program designer assures that the software will not fail because of storage,
timing, and data flux reasons. As the analysis proceeds in the succeeding phase the program designer must
impose on the analyst the storage, timing, and operational constraints in such a way that he senses the
consequences. When he justifiably requires more of this kind of resource in order to implement his equations
it must be simultaneously snatched from his analyst compatriots. In this way all the analysts and all the
program designers will contribute to a meaningful design process which will culminate in the proper allocation
of execution time and storage resources. If the total resources to be applied are insufficient or if the embryo
operational design is wrong it will be recognized at this earlier stage and the iteration with requhements and
preliminary design can be redone before final design, coding and test commences.
How is this procedure implemented? The following steps are required.
1) Begin the design process with program designers, not analysts or programmers.
2) Design, define and allocate the data processing modes even at the risk of being wrong. Allocate
processing, functions, design the data base, define data base processing, allocate execution time, define
interfaces and processing modes with the operating system, describe input and output processing, and define
preliminary operating procedures.
3) Write an overview document that is understandable, informative and current. Each and every
worker must have an elemental understanding of the system. At least one person must have a deep understand-
ing of the system which comes partially from having had to write an overview document.
/ ALLOCATE ~ A DESCRIBE
/ sO..oOO,,./ c %
I
Figure 5. Step 1: Insure that a preliminary program design is complete before analysis begins.
331
STEP2: DOCUMENT THE DESIGN
At this point it is appropriate to raise the issue of - "how much documentation?" My own view is
"quite a lot;" certainly more than most programmers, analysts, or program designers are willing to do if left to
their own devices. The first rule of managing software development is ruthless enforcement of documentation
requirements.
Occasionally I am called upon to review the progress of other software design efforts. My first step is
to investigate the state of the documentation, If the documentation is in serious default my first
recommendation is simple. Replace project management. Stop all activities not related to documentation.
Bring the documentation up to acceptable standards. Management of software is simply impossible withouta
very high degree of documentation. As an example, let me offer the following estimates for comparison. In
order to procure a 5 million dollar hardware device, I would expect that a 30 page specification would provide
adequate detail to control the procurement. In order to procure5 million dollars of software Iwould estimate
~ 1[,00 pa~e specification is about right in order to achieve comparable control,
Why so much documentation?
1) Each designer must communicate with interfacing designers, with his management and possibly
with thecustorner. A verbal record is too intangible to provide an adequate basis for an interface or manage-
mentdecision. An acceptable written description forces the designer to take an unequivocal position and
provide tangible evidence of completion. It prevents the designer from hiding behind the-"l am90-percent
finished" - syndrome month after month.
2) During the early phase of software development the documentationi.sthe specification andi._~.s
the
design. Until coding begins these three nouns (documentation, specification, design) denoteasingtething. If
the documentation is bad the design is bad. If the documentation does not yet exist there is as yet no design,
only people thinking and talking about the design which is of some value, but not much.
3) The real monetary value of good documentation begins downstream in the development process
during the testing phase and continues through operations and redesign. The value of documentation can be
described in terms of three concrete, tangible situations that every program manager faces.
a) During the testing phase, with good documentation the manager can concentrate personnel on the
mistakes in the program. Without good documentation every mistake, large or small, is analyzed by one man
who probably made the mistake in the first place because he is the only man who understands the program area.
b) During the operational phase, with good documentation the manager can use operation-oriented
personnel to operate the program and to do a better job, cheaper. Without good documentation the software
must be operated by those who built it. Generally these people are relatively disinterested in operations and do
not do as effective a job as operations-oriented personnel. It should be pointed out in this connection that in
an operational situation, if there is some hangup the software is always blamed first. In order either to absolve
the software or to fix the blame, the software documentation must speak clearly.
c) Following initial operations, when system improvements are in order, good documentation permits
effective redesign, updating, and retrofitting in the field. If documentation does not exist, generally the entire
existing framework of operating software must be junked, even for relatively modest changes.
Figure 6 shows a documentation plan which is keyed to the steps previously shown. Note that six
documents are produced, and at the time of delivery of the final product, Documents No, 1, No. 3, No. 4,
No. 5, and No. 6 are updated and current.
332
/,
I0:
wZ
/oo i ,~
g ~
Irl. .
o i0 . i
IIII~,- ,,*,1 =
• . ~
illl ~$~ m
z~_~ u,
E
X
E
8
"0
Ill N
~, .~-
r"
.2
/ "
z_ ,,,. ~ ~ E
~OLU
a. .~
N
N
I Z
,
~
,
- w
i-,<~
t-
LL
333
STEP3: DO IT TWICE
After documentation, the second most important criterion for success revolves around whether the
product is totally original. If the computer program in question is being developed for the first time, arrange
matters so that the version finally delivered to the customer for operational deployment is actually the second
version insofar as critical design/operations areas are concerned. Figure 7 iltustrates how this might be carried
out by means of a simulation. Note that it is simply the entire process done in miniature, toatime scale that
is relatively small with respect to the overall effort. The nature of this effort can vary widely depending
primarily on the overall time scale and the nature of the critical problem areas to be modeled. If the effort runs
30 months then this early development ofapilot model might be scheduled for 10 months. For this schedule,
fairly formal controls, documentation procedures, etc., can be utilized. If, however, the overall effort were
reduced to 12 months, then the pilot effort could be compressed to three months perhaps, in order to gain
sufficient leverage on the mainline development. In this case a very special kind of broad competence is
required on the part of the personnel involved. They must have an intuitive feel for analysis, coding, and
program design. They must quickly sensethe trouble spots in the design, model them, model their alternatives,
forget the straightforward aspects of the design which aren't worth studying at this early point, and finally
arrive at an error-free program. In either case the point of all this, as with a simulation, is that questions of
timing, storage, etc. which are otherwise matters of judgment, can now be studied with precision. Without
this simulation the project manager is at the mercy of human judgment. With the simulation he can at least
perform experimental tests of some key hypotheses and scope down what remains for human judgment, which
in the area of computer program design (as in the estimation of takeoff gross weight, costs to complete, or the
daily double) is invariably and seriously optimistic.
I I,,,
1 I
ANALYSIS I
! PROGRAM I
I DES,GN I
-U coo,.o I
LI .,s.,.o
USAGE
PRELIMINARYI%
PROGRAM
DESIGN
ANALYSIS
i PROGRAM
DESIGN
TESTING
[OPERATIONS
Figure 7. Step 3: Attempt to do the job twice - the first result provides an early simulation of the final product.
334
STEP 4: PLAN, CONTROL AND MONITOR TESTING
Without question the biggest user of project resources, whether it be manpower, computer time, or
management judgment, is the test phase. It is the phase of greatest risk in terms of dollars and schedule. It
occurs at the latest point in the schedule when backup alternatives are least available, if at all.
The previous three recommendations to design the program before beginning analysis and coding, to
document it completely, and to build a pilot model are all aimed at uncovering and solving problems before
entering the test phase. However, even after doing these things there is stillatest phase and there are still
important things to be done. Figure 81ists some additional aspects to testing. In planning for testing, Iwould
suggest the following for consideration.
1) Many parts of the test process are best handled by test specialists who did not necessarily
contribute to the original design. If it is argued that only the designer can perform a thorough test because
only he understands the area he built, this is a sure sign of a failure to document properly. With good
documentation it is feasible to use specialists in software product assurance who will, in my judgment, do a
better job of testing than the designer.
2) Most errors are of an obvious nature that carl be easily spotted by visual inspection. Every bit
of an analysis and every bit of code should be subjected to a simple visual scan by a second party who did not
do the original analysis or code but who would spot things like dropped minus signs, missing factors of two,
jumps to wrong addresses, etc., which are in the nature of proofrea0ing the analysis and code. Do not use the
computer to detect this kind of thing - it is too expensive.
3) Test every logic path in the computer program at least once with some kind of numerical check. If
Iwereacustomer, Iwould not accept delivery until this procedure was completed and certified. This step will
uncover the majority of coding errors.
While this test procedure sounds simple, for a large, complex computer program it is relatively difficult
to plow through every logic path with controlled values of input. In fact there are those who will argue that it
is very nearly impossible. In spite of this Iwould persist in my recommendation that every logic path be
subjected to at least one authentic check.
4) After the simple errors (which are in the majority, and which obscure the big mistakes) are removed,
then it is time to turn over the software to the test area for checkout purposes. At the proper time during the
course of development and in the hands of the proper person the computer itself is the best device for
checkout. Key management decisions are: when is the time and who is the person to do final checkout?
STEP 5: INVOLVE THE CUSTOMER
For some reason what a software design is going to do is subject to wide interpretation even after
previous agreement. It is important to involve the customer ina formal way so that he has committed
himself at earlier points before final delivery. To give the contractor free rein between requirement
definition and operation is inviting trouble. Figure g indicates three points following requirementsdefinition
where the insight, judgment, and commitment of the customer carl bolster the development effort.
SUMMARY
Figure 10 summarizes the five steps that I feel necessary to transform a risky development process
into one that will provide the desired product. I would emphasize that each item costs some additional sum
of money. If the relatively simpler process without the five complexities described here would work
successfully, then of course the additional money is not well spent. Ii, my experience, however, the simpler
method has never worked on large software development efforts and the costs to recover far exceeded those
required to finance the five-step process listed.
335
l ~
~m~ I T
_~ L_ ~.L
I wSig
I ~o_~E,
_ I " o ~ .~
O..va W
r
/,
336
r-
E
2
o
'1
E
8
t-
O
E
"O
E
o
E
8
t-
e,.
Q..
,m
LL
C
l
Q.
/
(/)
I--
z~
i,,. ua ,~L
r.n rr n
In .J
ii1
,<
z
<
E
337
Z
o_
I.-
<
r,-
ill
Q.
o
/'L__J
(.-
r-
0
(J
f-
t.-
0
.E
~n
E
E
>o
+.~
I
E
o
E
4..,
o
r-
Q.
c~
ii
I |
I '
I I
:i] . ~ '
l l
e ~$ ~ ~ i
n |~ ~ u
8(
I I .. I s""
O00@'
0O° ~
d
p@@@@@@~S.
I w
R
I.L.
338

Más contenido relacionado

Similar a Managing Develop of Large Systems

THE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENT
THE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENTTHE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENT
THE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENTijseajournal
 
Lect2 conventional software management
Lect2 conventional software managementLect2 conventional software management
Lect2 conventional software managementmeena466141
 
3Audit Software & Tools.pptx
3Audit Software & Tools.pptx3Audit Software & Tools.pptx
3Audit Software & Tools.pptxjack952975
 
How Should We Estimate Agile Software Development Projects and What Data Do W...
How Should We Estimate Agile Software Development Projects and What Data Do W...How Should We Estimate Agile Software Development Projects and What Data Do W...
How Should We Estimate Agile Software Development Projects and What Data Do W...Glen Alleman
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineeringsmumbahelp
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineeringsmumbahelp
 
Sen2 Software Processes
Sen2 Software ProcessesSen2 Software Processes
Sen2 Software ProcessesMatzeAtFontys
 
System analsis and design
System analsis and designSystem analsis and design
System analsis and designRizwan Kabir
 
Software Engineering
Software Engineering Software Engineering
Software Engineering JayaKamal
 
software project management
software project managementsoftware project management
software project managementJassir4
 
Successful Software Projects - What you need to consider
Successful Software Projects - What you need to considerSuccessful Software Projects - What you need to consider
Successful Software Projects - What you need to considerLloydMoore
 
IRJET- Development Operations for Continuous Delivery
IRJET- Development Operations for Continuous DeliveryIRJET- Development Operations for Continuous Delivery
IRJET- Development Operations for Continuous DeliveryIRJET Journal
 
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISONSTATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISONijseajournal
 
Chapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfChapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfVikasRai405977
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceArti Parab Academics
 
Some Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software TestingSome Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software TestingKumari Warsha Goel
 
Software process methodologies and a comparative study of various models
Software process methodologies and a comparative study of various modelsSoftware process methodologies and a comparative study of various models
Software process methodologies and a comparative study of various modelsiaemedu
 
Pm soln9416141129710
Pm soln9416141129710Pm soln9416141129710
Pm soln9416141129710Nikhil Todkar
 

Similar a Managing Develop of Large Systems (20)

THE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENT
THE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENTTHE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENT
THE UNIFIED APPROACH FOR ORGANIZATIONAL NETWORK VULNERABILITY ASSESSMENT
 
Lect2 conventional software management
Lect2 conventional software managementLect2 conventional software management
Lect2 conventional software management
 
3Audit Software & Tools.pptx
3Audit Software & Tools.pptx3Audit Software & Tools.pptx
3Audit Software & Tools.pptx
 
How Should We Estimate Agile Software Development Projects and What Data Do W...
How Should We Estimate Agile Software Development Projects and What Data Do W...How Should We Estimate Agile Software Development Projects and What Data Do W...
How Should We Estimate Agile Software Development Projects and What Data Do W...
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 
Mi0033 software engineering
Mi0033  software engineeringMi0033  software engineering
Mi0033 software engineering
 
Sen2 Software Processes
Sen2 Software ProcessesSen2 Software Processes
Sen2 Software Processes
 
System analsis and design
System analsis and designSystem analsis and design
System analsis and design
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
software project management
software project managementsoftware project management
software project management
 
The process
The processThe process
The process
 
Successful Software Projects - What you need to consider
Successful Software Projects - What you need to considerSuccessful Software Projects - What you need to consider
Successful Software Projects - What you need to consider
 
IRJET- Development Operations for Continuous Delivery
IRJET- Development Operations for Continuous DeliveryIRJET- Development Operations for Continuous Delivery
IRJET- Development Operations for Continuous Delivery
 
Unit 1
Unit 1Unit 1
Unit 1
 
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISONSTATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
 
Chapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdfChapter-2 ppt for the MBA 4rh seme6y.pdf
Chapter-2 ppt for the MBA 4rh seme6y.pdf
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer Science
 
Some Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software TestingSome Commonly Asked Question For Software Testing
Some Commonly Asked Question For Software Testing
 
Software process methodologies and a comparative study of various models
Software process methodologies and a comparative study of various modelsSoftware process methodologies and a comparative study of various models
Software process methodologies and a comparative study of various models
 
Pm soln9416141129710
Pm soln9416141129710Pm soln9416141129710
Pm soln9416141129710
 

Más de DaniloPereira341965

Más de DaniloPereira341965 (7)

03 - Placa-Mãe.pdf
03 - Placa-Mãe.pdf03 - Placa-Mãe.pdf
03 - Placa-Mãe.pdf
 
Aula 03 - Metodologias Ágeis.pdf
Aula 03 - Metodologias Ágeis.pdfAula 03 - Metodologias Ágeis.pdf
Aula 03 - Metodologias Ágeis.pdf
 
Aula 02 - Processo de Software I.pdf
Aula 02 - Processo de Software I.pdfAula 02 - Processo de Software I.pdf
Aula 02 - Processo de Software I.pdf
 
M_III_Livro_2_Gestao_EaD_FINAL.pdf
M_III_Livro_2_Gestao_EaD_FINAL.pdfM_III_Livro_2_Gestao_EaD_FINAL.pdf
M_III_Livro_2_Gestao_EaD_FINAL.pdf
 
03 - Conceitos de Software.pdf
03 - Conceitos de Software.pdf03 - Conceitos de Software.pdf
03 - Conceitos de Software.pdf
 
04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf
 
Aulas_SQL.pdf
Aulas_SQL.pdfAulas_SQL.pdf
Aulas_SQL.pdf
 

Último

New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 

Último (20)

New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 

Managing Develop of Large Systems

  • 1. MANAGING THE DEVELOPMENT OF LARGE SOFTWARE SYSTEMS Dr. Winston W. Rovce INTRODUCTION l am going to describe my pe,-.~onalviews about managing large software developments. I have had various assignments during the past nit,.: years, mostly concerned with the development of software packages for spacecraft mission planning, commanding and post-flight analysis. In these assignments I have experienced different degrees of successwith respect to arriving at an operational state, on-time, and within costs. I have become prejudiced by my experiences and I am going to relate some of these prejudices in this presentation. COMPUTER PROGRAM DEVELOPMENT FUNCTIONS There are two essential steps common to all computer program developments, regardless of size or complexity. There is first an analysis step, followed second by a coding step as depicted in Figure 1. This sort of very simple implementation concept is in fact all that is required if the effort is sufficiently small and if the final product is to be operated by those who built it - as is typically done with computer programs for internal use. It is also the kind of development effort for which most customers are happy to pay, since both steps involve genuinely creative work which directly contributes to the usefulness of the final product. An implementation plan to manufacture 13rger software systems, and keyed only to these steps, however, is doomed • tofailure. Many additional development steps are required, none contribute as directly to the final product as analysis and coding, and all drive up the development costs. Customer personnel typically would rather not pay for them, and development personnel would rather not implement them. The prime function of management is to sell these concepts to both groups and then enforce compliance on the part of development personnel. ANALYSIS CODING Figure 1. Implementation steps to deliver a small computer program for internal operations. A more grandiose approach to software development is illustrated in Figure 2. The analysis and coding steps are still in the picture, but they are preceded by two levels of requirements analysis, are separated by a program design step, and followed by a testing step. These additions are treated separately from analysis and coding because they are distinctly different in the way they are executed. They must be planned and staffed differently for best utilization of program resources. Figure 3 portrays the iterative relationship between successive development phases for this scheme. The ordering of steps is based on the following concept: that as each step progresses and the design is further detailed, there is an iteration with the preceding and succeeding steps but rarely with the more remote steps in the sequence. The virtue of all of this is that as the design proceeds the change process is scoped down to manageable limits. At any point in the design process after the requirements analysis is completed there exists a firm and c~seup~ moving baseline to whi(:h to ~turn in the event of unforeseen design difficulties. What we have is an effective fallback position that tends to maximize the extent of early work that is salvageable and preserved. Reprinted from Proceedings, IEEE WESCON, August 1970, pages 1-9. Co_pyright©1_9_70by The Institute of Electrical and Electronics Et)gineers,, .328 Inc. Originally published by TRW.
  • 2. I SYSTE M I ANALYSIS PROGRAM DESIGN I coo,.o TESTING I OPERATIONS Figure 2. Implementation steps to develop a large computer program for delivery to a customer. I believe in this concept, but the implementation described above is risky and invites failure. The problem is illustrated in Figure 4. The testing phase which occurs at the end of the development cycle is the first event for which timing, storage, input/output transfers, etc., are experienced as distinguished from analyzed. These phenomena are not precisely analyzable. They are not the solutions to the standard partial differential equations of mathematical physics for instance. Yet if these phenomena fail to satisfy the various external constraints, then invariably a major redesign is required. A simple octal patch or redo of some isolated code will not fix these kinds of difficulties. The required design changes are likely to be so disruptive that the software requirements upon which the design is based and which provides the rationale for everything are violated. Either the requirements must be modified, or a substantial change in the design is required. In effect the development process has returned to the origin and one can expect up to a lO0-percent overrun in schedule and/or costs. One might note that there has been a skipping-over of the analysis and code phases. One cannot, of course, produce software without these steps, but generally these phases are managed with relative ease and have little impact on requirements, design, and testing. In my experience there are whole departments consumed with the analysis of orbit mechanics, spacecraft attitude determination, mathematical optimization of payload activity and so forth, but when these departments have completed their difficult and complex work, the resultant program steps involvea few lines of serial arithmetic code. If in the execution of their difficult and complex work the analysts have made a mistake, the correction is invariably implemented by a minor change in the code with no disruptive feedback into the other development bases. However, I believe the illustrated approach to be fundamentally sound. The remainder of this discussion presents five additional features that must be added to this basic approach to eliminate most of the development risks. 329
  • 3. I SYSTEM ! REQUIREMENTSIBI~ ~"'i so,w.,~ I ANALYSIS ~1111~ II pRI~OGRAM ~lll I CODING Ii TESTING OPERATIONS Figure3. Hopefully,the ~terat=veinteract=onbetweenthevariousphasesisconfinedto successivesteps. I SYSTEM "1 .~oo,.~-,..Sl.,~ I so,w..~ !. I ANALYSIS PROGRAM DESIGN I coo,.G I,~ ! TESTING I IO.ATO.S! Figure4. Unfortunately,for theprocessillustrated,thedesigniterationsareneverconfinedto thesuccessivesteps. 330
  • 4. STEP 1: PROGRAM DESIGN COMES FIRST The first step towards a fix is illustrated in Figure 5. A preliminary program design phase has been inserted between the software requirements generation phase and the analysis phase. This procedure can be criticized on the basis that the program designer is forced to design in the relative vacuum of initial software requirements without any existing analysis..As a result, his preliminary design may be substantially in error as compared to his design if he were to wait until the analysis was complete. This criticism is correct but it misses the point. By this technique the program designer assures that the software will not fail because of storage, timing, and data flux reasons. As the analysis proceeds in the succeeding phase the program designer must impose on the analyst the storage, timing, and operational constraints in such a way that he senses the consequences. When he justifiably requires more of this kind of resource in order to implement his equations it must be simultaneously snatched from his analyst compatriots. In this way all the analysts and all the program designers will contribute to a meaningful design process which will culminate in the proper allocation of execution time and storage resources. If the total resources to be applied are insufficient or if the embryo operational design is wrong it will be recognized at this earlier stage and the iteration with requhements and preliminary design can be redone before final design, coding and test commences. How is this procedure implemented? The following steps are required. 1) Begin the design process with program designers, not analysts or programmers. 2) Design, define and allocate the data processing modes even at the risk of being wrong. Allocate processing, functions, design the data base, define data base processing, allocate execution time, define interfaces and processing modes with the operating system, describe input and output processing, and define preliminary operating procedures. 3) Write an overview document that is understandable, informative and current. Each and every worker must have an elemental understanding of the system. At least one person must have a deep understand- ing of the system which comes partially from having had to write an overview document. / ALLOCATE ~ A DESCRIBE / sO..oOO,,./ c % I Figure 5. Step 1: Insure that a preliminary program design is complete before analysis begins. 331
  • 5. STEP2: DOCUMENT THE DESIGN At this point it is appropriate to raise the issue of - "how much documentation?" My own view is "quite a lot;" certainly more than most programmers, analysts, or program designers are willing to do if left to their own devices. The first rule of managing software development is ruthless enforcement of documentation requirements. Occasionally I am called upon to review the progress of other software design efforts. My first step is to investigate the state of the documentation, If the documentation is in serious default my first recommendation is simple. Replace project management. Stop all activities not related to documentation. Bring the documentation up to acceptable standards. Management of software is simply impossible withouta very high degree of documentation. As an example, let me offer the following estimates for comparison. In order to procure a 5 million dollar hardware device, I would expect that a 30 page specification would provide adequate detail to control the procurement. In order to procure5 million dollars of software Iwould estimate ~ 1[,00 pa~e specification is about right in order to achieve comparable control, Why so much documentation? 1) Each designer must communicate with interfacing designers, with his management and possibly with thecustorner. A verbal record is too intangible to provide an adequate basis for an interface or manage- mentdecision. An acceptable written description forces the designer to take an unequivocal position and provide tangible evidence of completion. It prevents the designer from hiding behind the-"l am90-percent finished" - syndrome month after month. 2) During the early phase of software development the documentationi.sthe specification andi._~.s the design. Until coding begins these three nouns (documentation, specification, design) denoteasingtething. If the documentation is bad the design is bad. If the documentation does not yet exist there is as yet no design, only people thinking and talking about the design which is of some value, but not much. 3) The real monetary value of good documentation begins downstream in the development process during the testing phase and continues through operations and redesign. The value of documentation can be described in terms of three concrete, tangible situations that every program manager faces. a) During the testing phase, with good documentation the manager can concentrate personnel on the mistakes in the program. Without good documentation every mistake, large or small, is analyzed by one man who probably made the mistake in the first place because he is the only man who understands the program area. b) During the operational phase, with good documentation the manager can use operation-oriented personnel to operate the program and to do a better job, cheaper. Without good documentation the software must be operated by those who built it. Generally these people are relatively disinterested in operations and do not do as effective a job as operations-oriented personnel. It should be pointed out in this connection that in an operational situation, if there is some hangup the software is always blamed first. In order either to absolve the software or to fix the blame, the software documentation must speak clearly. c) Following initial operations, when system improvements are in order, good documentation permits effective redesign, updating, and retrofitting in the field. If documentation does not exist, generally the entire existing framework of operating software must be junked, even for relatively modest changes. Figure 6 shows a documentation plan which is keyed to the steps previously shown. Note that six documents are produced, and at the time of delivery of the final product, Documents No, 1, No. 3, No. 4, No. 5, and No. 6 are updated and current. 332
  • 6. /, I0: wZ /oo i ,~ g ~ Irl. . o i0 . i IIII~,- ,,*,1 = • . ~ illl ~$~ m z~_~ u, E X E 8 "0 Ill N ~, .~- r" .2 / " z_ ,,,. ~ ~ E ~OLU a. .~ N N I Z , ~ , - w i-,<~ t- LL 333
  • 7. STEP3: DO IT TWICE After documentation, the second most important criterion for success revolves around whether the product is totally original. If the computer program in question is being developed for the first time, arrange matters so that the version finally delivered to the customer for operational deployment is actually the second version insofar as critical design/operations areas are concerned. Figure 7 iltustrates how this might be carried out by means of a simulation. Note that it is simply the entire process done in miniature, toatime scale that is relatively small with respect to the overall effort. The nature of this effort can vary widely depending primarily on the overall time scale and the nature of the critical problem areas to be modeled. If the effort runs 30 months then this early development ofapilot model might be scheduled for 10 months. For this schedule, fairly formal controls, documentation procedures, etc., can be utilized. If, however, the overall effort were reduced to 12 months, then the pilot effort could be compressed to three months perhaps, in order to gain sufficient leverage on the mainline development. In this case a very special kind of broad competence is required on the part of the personnel involved. They must have an intuitive feel for analysis, coding, and program design. They must quickly sensethe trouble spots in the design, model them, model their alternatives, forget the straightforward aspects of the design which aren't worth studying at this early point, and finally arrive at an error-free program. In either case the point of all this, as with a simulation, is that questions of timing, storage, etc. which are otherwise matters of judgment, can now be studied with precision. Without this simulation the project manager is at the mercy of human judgment. With the simulation he can at least perform experimental tests of some key hypotheses and scope down what remains for human judgment, which in the area of computer program design (as in the estimation of takeoff gross weight, costs to complete, or the daily double) is invariably and seriously optimistic. I I,,, 1 I ANALYSIS I ! PROGRAM I I DES,GN I -U coo,.o I LI .,s.,.o USAGE PRELIMINARYI% PROGRAM DESIGN ANALYSIS i PROGRAM DESIGN TESTING [OPERATIONS Figure 7. Step 3: Attempt to do the job twice - the first result provides an early simulation of the final product. 334
  • 8. STEP 4: PLAN, CONTROL AND MONITOR TESTING Without question the biggest user of project resources, whether it be manpower, computer time, or management judgment, is the test phase. It is the phase of greatest risk in terms of dollars and schedule. It occurs at the latest point in the schedule when backup alternatives are least available, if at all. The previous three recommendations to design the program before beginning analysis and coding, to document it completely, and to build a pilot model are all aimed at uncovering and solving problems before entering the test phase. However, even after doing these things there is stillatest phase and there are still important things to be done. Figure 81ists some additional aspects to testing. In planning for testing, Iwould suggest the following for consideration. 1) Many parts of the test process are best handled by test specialists who did not necessarily contribute to the original design. If it is argued that only the designer can perform a thorough test because only he understands the area he built, this is a sure sign of a failure to document properly. With good documentation it is feasible to use specialists in software product assurance who will, in my judgment, do a better job of testing than the designer. 2) Most errors are of an obvious nature that carl be easily spotted by visual inspection. Every bit of an analysis and every bit of code should be subjected to a simple visual scan by a second party who did not do the original analysis or code but who would spot things like dropped minus signs, missing factors of two, jumps to wrong addresses, etc., which are in the nature of proofrea0ing the analysis and code. Do not use the computer to detect this kind of thing - it is too expensive. 3) Test every logic path in the computer program at least once with some kind of numerical check. If Iwereacustomer, Iwould not accept delivery until this procedure was completed and certified. This step will uncover the majority of coding errors. While this test procedure sounds simple, for a large, complex computer program it is relatively difficult to plow through every logic path with controlled values of input. In fact there are those who will argue that it is very nearly impossible. In spite of this Iwould persist in my recommendation that every logic path be subjected to at least one authentic check. 4) After the simple errors (which are in the majority, and which obscure the big mistakes) are removed, then it is time to turn over the software to the test area for checkout purposes. At the proper time during the course of development and in the hands of the proper person the computer itself is the best device for checkout. Key management decisions are: when is the time and who is the person to do final checkout? STEP 5: INVOLVE THE CUSTOMER For some reason what a software design is going to do is subject to wide interpretation even after previous agreement. It is important to involve the customer ina formal way so that he has committed himself at earlier points before final delivery. To give the contractor free rein between requirement definition and operation is inviting trouble. Figure g indicates three points following requirementsdefinition where the insight, judgment, and commitment of the customer carl bolster the development effort. SUMMARY Figure 10 summarizes the five steps that I feel necessary to transform a risky development process into one that will provide the desired product. I would emphasize that each item costs some additional sum of money. If the relatively simpler process without the five complexities described here would work successfully, then of course the additional money is not well spent. Ii, my experience, however, the simpler method has never worked on large software development efforts and the costs to recover far exceeded those required to finance the five-step process listed. 335
  • 9. l ~ ~m~ I T _~ L_ ~.L I wSig I ~o_~E, _ I " o ~ .~ O..va W r /, 336 r- E 2 o '1 E 8 t- O E "O E o E 8 t- e,. Q.. ,m LL
  • 10. C l Q. / (/) I-- z~ i,,. ua ,~L r.n rr n In .J ii1 ,< z < E 337 Z o_ I.- < r,- ill Q. o /'L__J (.- r- 0 (J f- t.- 0 .E ~n E E >o +.~ I E o E 4.., o r- Q. c~ ii
  • 11. I | I ' I I :i] . ~ ' l l e ~$ ~ ~ i n |~ ~ u 8( I I .. I s"" O00@' 0O° ~ d p@@@@@@~S. I w R I.L. 338