Sie sind auf Seite 1von 22

Excuses 1/99 mid-line 2/1/99 1:41 PM Page 1

to
much
n s a dd tooment.
tio p
Inspec st of develo
th e c o

We p
la
ting n to sta
r rt i
year isk mana mple
men- THE LITTLE BOOK
, ge
proc after we ment nex
ess defi t
and
trai n e OF
n th the
e st
aff. BAD EXCUSES

The project is doing fine. We


nded
estimated we would have expe
milli on by this date and our
$11.3
million.
actual expenditure is $10.937

For additional information please contact the


SOFTWARE PROGRAM MANAGERS NETWORK
(703) 521-5231 • FAX (703) 521-2603
E-MAIL: BEST@SPMN.COM
HTTP://WWW.SPMN.COM
JUNE 1998
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 3

PREFACE

This publication was prepared for the

Software Program Managers Network We have all heard excuses for not doing what really
4600 North Fairfax Drive, Suite 302 should be done. When essential software disciplines and
Arlington, VA 22203 practices are not implemented on large-scale projects,
complexity snowballs into chaos and cripples or kills
programs. Since the Airlie Software Council members
The ideas and findings in this publication should not be construed as have heard lots of excuses for not effecting these disciplines
an official DoD position. It is published in the interest of scientific
and practices, we thought a selective list of excuses could
and technical information exchange.
serve to spotlight when these practices are not being
employed—and stimulate dialogue about them.
If an excuse is still used to deprive the project of an
effective discipline or practice, then considerable discussion
Norm Brown
Director, Software Program Managers Network time can be saved by simply referring to the excuse’s
Software Standard Intolerable Nonsense Number, or
Copyright © 1998 by Computers & Concepts Associates Software SIN Number.

This work was created by Computers & Concepts Associates in the In the interest of improving software, we will also
performance of Space and Naval Warfare Systems Command provide you with other copies of this book upon request.
(SPAWAR) Contract Number N00039-94-C-0153 for the operation We welcome any additional excuses, comments, or
of the Software Program Managers suggestions you have, and look forward to hearing from you
Network (SPMN). at best@spmn.com.

Norm Brown
Executive Director
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 5

INTRODUCTION

Failed software projects are usually easy enough to


analyze after the fact. You can almost always spot some
fundamental sound practice that wasn’t followed; if it had
been followed, the project would have succeeded, or at
least failed less completely. Often the good practices that
weren’t followed are basic ones that practically everyone
knows are essential. When that happens, project
management can always cite a reason why the practice
wasn’t followed—an excuse or rationalization.
To save everyone a lot of time, we have collected some
of the most common bad excuses for not using good
practices and published them in this book. The next time
you’re considering managing a project without a careful
Work Breakdown Structure (WBS), for example, or with
no risk management, you needn’t wrack your brain for an
excuse. Just consult this book.
However, this book is not meant to suggest that there
are NO valid excuses for proceeding without a given
“good” practice. Tailoring the life cycle to fit the project’s
special circumstances is at the heart of good management.
But there are good excuses and bad ones. What follows is
a list of the bad ones.

Tom DeMarco
5
Fall 1996
1
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 7

BAD EXCUSES RELATED TO RISK


MANAGEMENT

1. We have no risk. 16. If I gave a realistic assessment, no one would listen.


2. Give us an hour and we’ll tell you our top ten risk 17. That external interface is not in our risk management
items. program because the interface is not our responsibility.
3. Making risks public will kill the program. 18. Using that tool is not a risk. The vendor’s salesman
4. The customer goes ballistic whenever he/she hears of a said so.
potential problem. 19. That method is proven and therefore not a risk. The
5. We deal with problems as they arise. speaker at the conference said so.
6. My customer doesn't want to hear that he/she is the 20. People outside the project who don’t understand the
source of risk. context will invent worst-case scenarios.
7. Identifying risks is bad for my career. 21. The program is too small to do risk management.
8. This is development—why should we worry about 22. Corporate management won't buy in.
supportability and maintainability risks? 23. My tech people will rebel if we identify as a risk
9. How can you predict what will happen a year from betting our success on an unproven new technology.
now? 24. My tech people will rebel if we identify as a risk a lack
10. Our planning horizon is six months. of skills needed to do development.
11. No one on the staff knows how to do risk 25. We have no cost or schedule risk because new
management. technology will enormously increase our
12. We plan to start implementing risk management next productivity—by five to ten times.
year, after we define the process and train the staff. 26. New technology we have never used before will
13. Our job is to develop software, not fill out mitigate the risk.
bureaucratic forms. 27. We have to bid the lowest cost to win; we'll worry
14. The commercial software industry doesn’t waste time about doing the job when we get it.
on risk management. 28. If we bid everything we do, we would lose the project.
15. We don't need a separate risk management program It’s a delivery-order contract.
because we have frequent technical interchange and 29. We can’t identify risks based on industry metrics
Integrated Product Team (IPT) meetings. because our process is different.

3
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 9

BAD EXCUSES RELATED TO RISK BAD EXCUSES RELATED TO


MANAGEMENT (cont.) FORMAL INSPECTIONS

30. You have to cut corners to win the program. 1. We have formal reviews to find problems.
31. We don’t mitigate software risk in systems engineering 2. We do formal inspections, starting with code walk-
trade studies for embedded systems because software is throughs followed by unit test.
only a component of subsystems. 3. How can you inspect an architecture?
32. Our methodology is Rapid Application Development 4. We are using advanced software technology that is
(RAD), so we have no schedule risk. iterative and evolutionary, so inspections are not
33. Our methodology is evolutionary development, so applicable.
requirements volatility is not a risk. 5. Inspections add too much to the cost of development.
34. We don’t include anyone from our hands-on software 6. Our formal inspections are audits of compliance with
development staff in risk identification because we process by our corporate Quality Assurance (QA)
have hired an outside consultant as a risk expert. organization.
35. We don’t include anyone from our hands-on software 7. Our inspections are done by an Independent
development staff in risk identification because our Verification and Validation (IV&V) contractor who
managers are using a generic risk database to identify won the contract by bidding the lowest staff costs.
risk. 8. We don't have a formal inspection program because
36. We don’t include anyone from our hands-on software we have a number of IPTs.
development staff in risk identification because they 9. This project is not big enough to need formal
don’t have the big picture. inspections.
37. A prime contractor is not behaving like a prime if 10. Formal inspections aren't done during the
people from a subcontractor organization participate in Demonstration and Validation Phase.
risk identification. 11. We don't need formal inspections because we are
38. There is no risk in the planned big increase in our developing our software with Computer-Aided
software staff because of the large layoffs by defense Software Engineering (CASE) tools that automatically
contractors during the past few years. generate source code.
12. If users are allowed to get involved in verifying
system/operational requirements, we will never get
closure on those requirements.
5
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 11

BAD EXCUSES RELATED TO


BAD EXCUSES RELATED TO
CONFIGURATION MANAGEMENT
FORMAL INSPECTIONS (cont.)
(CM)

13. Inspections threaten my people. 1. CM only applies to documents.


14. Inspections are a waste of time because requirements 2. CM only applies to source code.
will change. 3. CM is not appropriate during development because we
15. Execution test is the most effective way to find errors. are using the latest iterative and concurrent
16. Inspections are only warranted for safety-critical engineering and evolutionary process models.
systems like nuclear weapons and medical systems. 4. CM is not appropriate during development because
17. Formal inspections are 20-year-old technology. We our development approach is rapid prototyping.
only use leading-edge technology. 5. It's not that big a project.
18. Formal inspections are too rigid. 6. You can't stop the technical people from making a
quick patch when they find a problem in integration
test or in the field.
7. We made the change without bothering to submit an
Engineering Change Proposal (ECP) because the
customer's technical manager asked us to and we want
a satisfied customer.
8. We don’t need a separate CM effort because CM is
automatically done by the Upper and Lower CASE
tools we will use.
9. It's too hard to go back to the CASE tool and change
the design, so we change the design with changes to
the source code generated by the CASE tool.
10. We have de-emphasized CM because MIL-STD-973
has been superseded by MIL-STD-498, which puts
much less emphasis on CM.
11. We don't have CM on several of our external
interfaces because they are the responsibilities of
other organizations.
7
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 13

BAD EXCUSES RELATED TO


CONFIGURATION MANAGEMENT
(cont.)

12. CM is a DoD-unique practice, and DoD now follows 21. We don’t put operating systems, middleware, run-time
commercial practices. libraries, and compilers under CM because CM only
13. Our developers do not turn source code units over to applies to the application software that is developed
CM because CM does not have the technical skill under this contract.
needed to build modules for integration test. 22. We don’t put software development files under CM
14. We don't do CM on internal interfaces because this because they are not contract deliverables.
limits technical team flexibility. 23. The only baselines controlled by the buyer are the
15. Our CM staff keeps all records manually because they functional, allocated, and product baselines. Therefore
are not experienced with software tools for CM. the buyer has no right to see any contractor data from
16. CM will be minimal on this project because most of the developmental baseline.
the software will be an integration of Government- 24. CM cannot control anything in the developmental
Off-the-Shelf (GOTS) and Commercial-Off-the-Shelf baseline other than source code because we are using
(COTS) software. CASE tools and CM tools that are not integrated.
17. We lower our cost by using only minimum-wage 25. CM can only control information stored in flat files
persons on our CM staff because CM does not require because our CM tool only manages flat files.
much skill.
18. We don’t use the same CM process and tools as our
subcontractors because they have a different corporate
process.
19. We don’t need functional and physical configuration
audits because we are using CASE tools.
20. We don’t put the software architecture and detailed
design under formal change control during
development because this limits the flexibility of the
developers.

9
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 15

BAD EXCUSES RELATED TO


PEOPLE

1. We don't need good people because we have good 12. We can't hire the needed lead software design engineer
process. because he/she demands a salary higher than the labor
2. The only thing my technical people want is to work rates we bid to win the project.
on a challenging technical problem. 13. We can't hire the needed lead software design engineer
3. Only business types care about the symbols of success because he/she demands a salary higher than our
such as offices and titles. generalist middle managers.
4. If the technical staff pulls off the delivery by working 14. It is not necessary for the manager of a large-scale
twenty hours a week unpaid overtime for months, we software development project to understand anything
will give the project manager a big bonus. about the technical issues of software development
5. We don't invest in training our technical staff because because a manager’s job is cost and schedule control
they are too busy. and interacting with the buyer.
6. We don't invest in training because it costs too much. 15. The way we make up for management mistakes is to
7. If we train our technical staff, their market value will require our technical staff to work sixty-plus-hour
increase and they will leave. weeks for an extended period.
8. Any kind of engineer can learn to develop software in 16. We can avoid capital cost for equipment for the
a few months. development team by requiring the technical staff to
9. With the new software technology such as 4GL, CASE work three shifts.
tools, and RAD, the users can develop the software as 17. We generate more revenue and profit by having ten
easily as professional software engineers. low-salary people on the project who collectively can't
10. That big jump in staff shown in our project plan is no do the task than by hiring two high-salary people who
risk because we will have no problem quickly hiring a can get the job done.
large number of software engineers to design databases 18. So what if he/she quits? We can quickly hire a
and client/server network applications. replacement.
11. There is no shortage of skilled software developers in 19. It is against corporate policy to give more than a
the U.S. Haven’t you heard about the massive layoffs 5 percent annual raise, so we are losing our network
in the defense industry? administrator. The replacement will be hired at a
20 percent higher salary.
11
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 17

BAD EXCUSES RELATED TO


PEOPLE (cont.)

20. He's not a team player if he objects to consistently three days of training per year, of which one day is
working overtime. feel-good training and another day is training on
21. We don’t allow people on our hands-on development corporate policies and business goals.
staff to talk directly to the customers because this will 30. There is nothing that we can do to keep people from
just result in troublemakers making alarmist statements. leaving the company other than giving them a big
22. We won’t meet the schedule because people are raise.
burned out. 31. We can’t give Sam/Sarah a promotion and expose
23. We can handle extreme schedule compression by him/her to the supplier because he/she dresses and acts
offering big bonuses to the staff. like a nerd.
24. We are behind schedule because the buyer’s
requirements result in 40 percent of our staff’s time
being spent in meetings.
25. Our corporate policy is to give poor performers and
outstanding performers essentially the same rewards to
avoid litigation.
26. It’s unrealistic to expect any personnel performance
better than 20 percent of the staff doing 80 percent of
the useful work.
27. We do not report project status or use disciplined
management practices because the technical staff
would not accept it.
28. We don’t involve the hands-on developers in cost
estimation because this is guaranteed to result in a
losing cost estimate.
29. Our corporate management is committed to training.
On average, every member of the technical staff gets

13
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 19

BAD EXCUSES RELATED TO


PROCESS

1. If we follow the organizational process we will 10. It will take at least five years to get our software
automatically develop software with high productivity development organization to follow the latest process
and quality and low cycle time. model.
2. We do not measure whether use of our organizational 11. Rigidly following a process stifles creativity.
process improves productivity, quality, and user 12. Our process is so concurrent and rapid that cost and
satisfaction and lowers cycle time because that is not schedule control is not possible.
required. 13. The technical staff will not accept the discipline
3. QA people who audit compliance with process do not imposed by a process.
need to have any technical understanding. 14. Use of automated groupware to constrain the team to
4. I don’t need good process because I have good people. follow a process and activity network is intolerable Big
5. We are 75 percent complete because the auditors have Brother micromanagement.
determined that 750 out of 1,000 steps in the process 15. We’ll give every person on the staff a process manual
model have been completed. and training on how to answer the auditors, but we
6. It must be a good process because it takes five large don’t expect them to pay much attention to the
volumes to document. organizational process model when they are
7. The only reason our management is interested in the developing software.
Software Engineering Institute (SEI) Capability 16. This is a good process because it is repeatable.
Maturity Model (CMM) is because they feel Level 3 is 17. We will spend the first nine months of the project
necessary to win DoD contracts. doing nothing but defining the processes we will use to
8. We did not involve our experienced hands-on software develop the software because, by becoming an SEI
developers in developing our organizational process for Level 2 organization, we will be way ahead of the game
software development because they can’t be spared by the time we complete the project.
from developing software. 18. We have not bothered to define rigorous software
9. We do not verify architecture because that is not development processes because process is just the latest
included in the organizational process. software silver bullet which, like all silver bullets, will
be replaced by a new fad in a couple of years.

15
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 21

BAD EXCUSES RELATED TO


SCHEDULE PROBLEMS

1. We can always get out of schedule problems by adding 13. We thought we could do more things in parallel
people. because of the new technology we used for the first
2. We can always get out of schedule problems by time.
performing fewer tests. 14. This is incremental development. Any schedule slip
3. We can make schedule by working overtime. will be made up in subsequent releases.
4. It’s not our fault that a crucial external dependency was 15. We’re behind schedule because we spent too much
late and caused our delivery to slip. time on planning and architecture design.
5. What is schedule compression? 16. Quality of design will minimize testing.
6. We don’t have schedule problems because, when the 17. If I schedule to a level of great detail, I'll tie my hands.
calendar time allocated to a task is used up, we end the 18. We will deliver on schedule because we can fix it while
task and move on to the next task. they are using it.
7. It is a success-oriented schedule, but when you 19. What difference does it make if the schedule slips as
challenge people they do great things. long as we don’t have a large cost overrun?
8. How could we have known before integration test that 20. Our schedule slip was a vendor’s fault. The vendor of
the network did not have enough throughput? the Database Management System (DBMS) was late in
9. Our expectations for a highly compressed schedule delivering version 7.3.
didn’t work out, but we will meet the delivery date by 21. We were forced into a schedule we can’t possibly meet
delivering a prototype. because our buyer didn’t want to give bad news to the
10. We are behind schedule because the buyer can’t future users.
stabilize system requirements. 22. We didn’t meet the schedule because we didn’t know
11. The schedule problem is not requirements volatility; it about the poor quality of the software we planned to
is the contractor’s lack of management skill. use from the reuse library.
12. We don’t use the Budgeted Cost of Work Scheduled 23. Our schedule slipped because the buyer was slow in
(BCWS) and Budgeted Cost of Work Performed approving our intermediate products.
(BCWP) metrics because those are 1970s technology. 24. Our schedule slipped because another company raided
our technical staff.

17
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 23

BAD EXCUSES RELATED TO COST


AND SCHEDULE CONTROL

1. Formal cost and schedule control always ends up with 11. The project is doing fine. We estimated we would
variance reports being the primary product. have expended $11.3 million by this date and our
2. The technical staff will not accept the degree of control actual expenditure is $10.937 million.
that goes with Earned Value metrics. 12. The project will only experience a 6 percent overrun,
3. This is a level-of-effort, delivery-order contract for which is excellent. We originally estimated the cost at
software development, so we do not report Earned Value. completion to be $8 million, and the current estimate
4. We can't predict cost and schedule when requirements at completion is $8.5 million. The current value of
are always changing. BCWP is $5 million, and the corresponding actual
5. You can't schedule invention. cost is $7 million.
6. Five months is too short for a task. 13. Our actual expenditure has always been within
7. The cost we estimated for this project is based on a 5 percent of BCWP. We update our cost/schedule
productivity five times greater than anything our baseline to actuals once a month.
organization has done before because we are going to 14. We estimate that this software development project
use a new technology that we've never used before. will take 2,000 staff months of effort and be
8. The reason our cost per line of embedded code for this completed in seventeen months.
new embedded system is estimated to be ten times less 15. Our accounting system cannot collect costs by
than we've ever had before is that our software will be WBS tasks.
90 percent reuse of legacy Ada 83 code from a similar 16. Our proposed cost was a cost that management
system, which we will implement in an Object- thought would make us the lowest bidder.
Oriented (OO) design. 17. Now that the contract has been awarded, we need to
9. Our cost per line of code for this new system is negotiate what the real cost will be.
estimated to be ten times less than we have ever had 18. We can't provide visibility into the status of the software
before because this system will integrate GOTS and development because software is a single task at level 4
COTS software. Our first task under contract will be of the WBS for this embedded weapon system.
to identify this GOTS and COTS software. 19. You won't get visibility into software status because
10. Our cost estimate is good because we used a cost integrated hardware/software components are at level 3
estimation tool.
19
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 25

BAD EXCUSES RELATED TO


BAD EXCUSES RELATED TO COST
REQUIREMENTS DEFINITION AND
AND SCHEDULE CONTROL (cont.)
MANAGEMENT

in the WBS and the contract only requires us to report 1. The users don't know what they want.
status to level 2. 2. We don't need people from the field to be involved in
20. Yes, there are a number of our tasks that can't begin defining system requirements because we have people
before some government action, but we don't include in the program office with domain experience.
this dependency in our activity network because we can't 3. We won't do any prototyping of the user interface
control our customer. until we’ve finished design, because coding shouldn’t
21. We are going to overrun our cost estimate because some begin until design is finished.
risk items went wrong and DoD regulations will not allow 4. We can't ask the user; we're too far down the road.
setting aside a funding reserve for risks that go wrong. 5. We are at the leading edge of technology. We can
22. We can't have binary exit criteria for most of the tasks in certainly figure out how to run a mailroom better than
our activity network because they are level-of-effort tasks. the low-skilled people who work there.
23. We can't have binary exit criteria for many of our tasks 6. This is an OO project so we never stop iterating
because they are Time Boxes. among requirements analysis, design, and coding.
24. We don't plan for workarounds for risk items that go 7. Future users were involved in requirements
wrong—that would be a lot of work for nothing, since definition—they reviewed the A-spec written by the
most risk items will not go wrong. development contractor.
25. The new acquisition regulations for the federal 8. The system reliability and safety requirements were
government prohibit the government from closely allocated to software by the systems engineers because
monitoring the contractor's cost/schedule status on a software is very flexible, and these requirements would
development contract. be too hard to implement in hardware.
26. It was just bad luck that the workaround was on the critical 9. There are no software engineers on the systems
path when it became clear the risk would go wrong. engineering team for this embedded system because
27. We can’t accurately plan the date of project completion software engineers are not real engineers.
because this is incremental development and we only 10. This is evolutionary development. We'll define
prepare a detailed activity network for the increment on security and safety requirements after we field the
which we are currently working. tenth incremental release.

21
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 27

BAD EXCUSES RELATED TO


REQUIREMENTS DEFINITION AND
MANAGEMENT (cont.)

11. This is evolutionary development, so we won't have 20. We can’t use a rigorous methodology for systems
stable requirements until eighteen months after project requirements definition because functional people are
start. defining these requirements and they are not technical.
12. We have experienced a lot of requirements volatility 21. We award the Systems Engineering Technical
and it's all the government's fault. Assistance (SETA) contract to the lowest bidder
13. We only trace requirements to the Computer Software because that contractor only defines requirements.
Configuration Item (CSCI) level because the buyer 22. We are using leading-edge concurrent engineering
only requires functional, allocated, and product methods to define CSCI external interface
baselines to be under configuration control. requirements in parallel with designing the CSCI.
14. We can't do requirements traceability because the 23. There was no way to know for sure before integration
CASE tools we are using don't support it. test that the database stored all the data needed by the
15. Our requirements traceability information is not up to application software, because we used different CASE
date because it takes a lot of time to do this manually. tools to design the database and the application
16. How could we have known before integration test that software.
modifying this algorithm would have anything to do 24. There is no top-down requirements traceability
with the response time to that user request? because this is the Demonstration and Validation
17. We do exhaustive regression testing for every change to Phase.
the operational software because you can never know
everything the change might affect.
18. How could we have known that errors in that code
module would cause secure data to be transmitted in
the clear?
19. We can't be sure that system requirements are mapped
correctly into software requirements because we used
different CASE tools for systems engineering and
software design.

23
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 29

BAD EXCUSES RELATED TO DESIGN

1. The sooner we begin coding after contract award, the 12. We didn't waste time quantifying the future user load
more successful we are. on this network because this network was designed
2. The architecture will evolve over fifteen releases. This with more capacity than we'll ever need.
is evolutionary development. 13. We won't know the high-frequency queries on the new
3. We want a design from which 100 percent of the code database until the database becomes operational. This
can be automatically generated by a CASE tool. is low risk because we are using an industrial-strength
4. Pseudo-code is design. DBMS.
5. You can't test the architecture until integration test. 14. The cost savings are not in reuse of architecture; they
6. What is client/server network-capacity planning? are in reuse of code.
7. Since none of our software engineers have ever done 15. Our design is excellent because we devoted 10 percent
OO analysis and design, we have scheduled two days of schedule and 3 percent of cost to top-level and
of training to bring them up the learning curve. detailed designs.
8. We are doing OO design so our application can be 16. We don't have any time period during development
90 percent reuse of legacy software. dedicated to design because our method is RAD and
9. We don't need a person experienced in this design prototyping.
method because we are using a CASE tool. 17. Measuring design complexity is typical of the kind of
10. We have planned very little cost and schedule for idea a technologist would come up with. We're
design because this application will be an integration software developers, not technologists.
of COTS and GOTS software. 18. I can't devote a lot of resources to worrying about the
11. We don't need a person experienced in designing a cost of maintenance because I'm on a tight schedule.
client/server architecture because the network design 19. The components of the client/server network are
will implement the architecture described in the hardware, middleware, and operating system software,
Defense Information Systems Agency (DISA) so the network should be designed by systems engineers
Technical Architecture Framework for Information before the software developers come on board.
Management (TAFIM).

25
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 31

BAD EXCUSES RELATED TO


DESIGN (cont.)

20. This is a war-fighting machine with lots of metal, so the 27. There is not enough time for design. We are driven by
system architecture should be developed by hardware short cycle time.
systems engineers before the software developers come 28. Complexity management gives the theoreticians
on board to start developing the million-plus lines of something to write about, but this is the real world.
code that will control this machine. 29. If we put design under configuration control, the
21. We don't keep our design representation in the CASE programmers will quit.
tool consistent with the source code. It is too hard to 30. It is an OO design because it is programmed in C++
go back and change the design in the CASE tool after (Ada 95).
code has been manually added to the code that is 31. We are complying with the good practice of using Ada
automatically generated by the CASE tool. by using a code-translation tool that inputs
22. We can't keep our design representation in the CASE FORTRAN and outputs Ada.
tool consistent with the source code because we can't 32. We can’t trace requirements from the system
prevent the programmers from changing the source architecture to software components because the
code automatically generated by the CASE tool. system is partitioned into functions and the software is
23. Why should we develop our design around standard partitioned into classes and objects.
Application Program Interfaces (APIs)? We're not 33. It is not a risk that no one on the development team
going to be replacing software components after we has ever developed a large relational database. SQL is
deliver this system. a 4GL that is very simple and easy to learn.
24. What is a standard API?
25. We can't afford the additional cost of designing for reuse.
26. Our design isolates persistent data from applications
by storing the data in a relational database. Business
rules are coded in the application software because
the programming language is more flexible than
Structured Query Language (SQL).

27
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 33

BAD EXCUSES RELATED TO QUALITY

1. I don't worry about quality because my customer is 13. Code-complexity metrics have nothing to do
only interested in productivity, cost, and schedule, and with quality.
quality has nothing to do with those. 14. Quality is the number of bugs in the delivered software.
2. Who ever heard of a project specifying a quality goal? 15. We shouldn't do more than specified under the
3. You can't measure quality because you never can be contract. The contract doesn't say anything
sure how many bugs you have not found. about quality.
4. This is an information system, not the Space Shuttle 16. If it doesn't work, we'll fix it later.
or a nuclear weapon. 17. The customer isn't interested in quality.
5. You can only go for high productivity or high quality, 18. The quality of these 300,000 Source Lines of Code
not both. (SLOC) is very high. Our verification and testing of
6. We take quality very seriously. QA continuously this software found about 5,000 defects from the
audits compliance with the organizational process. inception of development through integration test.
7. We develop high-quality software by complying with 19. The bad news is that the development ended up being
MIL-STD-498 and the International Standards 75 percent over the nominal schedule from the cost
Organization (ISO) software standards. model. The good news is that, when projects take
8. We are a CMM Level 3 organization and therefore all much longer than the nominal schedule, the quality is
of our software is of high quality. much higher.
9. We must deliver software of exceptionally high quality, 20. We have a very tight schedule, so we don’t have time
so we are putting our resources into a very thorough for formal inspections.
test program instead of inspections. 21. We have to deliver software with exceptionally high
10. This project will develop high-quality software because quality; therefore, we are implementing a thorough
there is an IV&V contractor. code walkthrough process, because most code errors
11. This software will be high quality because it will be occur in source code and it is code errors that have the
90 percent reuse. most severe impact.
12. What is quality? How do we measure quality?

29
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 35

BAD EXCUSES RELATED TO


DOCUMENTATION

1. We don’t need to document the design because we put 11. We won’t document the design so the buyer will have
extensive comments in the source code. no choice but to give us the contract to maintain the
2. We are requiring the contractor to develop every system.
MIL-STD-498 document in full compliance with its 12. We don’t allow our domain experts or development
Data Item Description (DID) because this is required staff to write or review our documentation because all
by MIL-STD-498. technical people are terrible writers.
3. Our cost estimate includes no cost for generating 13. This is a great user’s manual. The first chapter is
documents because all the documentation we need will dedicated to a detailed explanation of how to use a
be automatically generated by CASE tools. mouse.
4. We only use documentation during development
because it costs too much during maintenance to keep
documentation consistent with the code.
5. Metrics show that DoD spends much more on
documentation than the commercial world.
Therefore, all documentation is a waste.
6. Our Software Development Plan is a contractor
format. It leaves out everything that pins us down.
7. The value of a document is directly proportionate to
its weight.
8. MIL-STD-498 is no longer mandatory. Therefore,
there is no need for any documentation.
9. The last thing we do before we deliver the software is
to develop the user’s manual to ensure that it reflects
the as-built system.
10. The document is excellent. It follows the format of
the MIL-STD-498 Data Item Description exactly.

31
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 37

BAD EXCUSES RELATED TO SURPRISE

1. You can’t blame the program manager. How could 9. We are going to have a six-month slip because the
he/she have known the security requirements were organization responsible for a crucial external interface
high risk? Security is technically complex. unexpectedly changed its network operating system.
2. How could we have known before integration test that 10. We can’t deliver the software as scheduled because the
the architecture would not have the required capacity? latest version of a COTS software product integrated
3. Who would have expected that our lead designer into our system has a different API.
would quit to take a job at a different company at
twice the salary? What has become of loyalty to
the company?
4. I could have done something about this disaster if
someone on the technical staff had told me when the
signs first appeared.
5. We’re scheduled to begin integration test and you are
telling me the design hasn’t been completed? We’ll
deliver the rapid prototype and declare success.
6. It’s not our fault that the software is failing integration
test because of bugs in the reuse software. We got this
software from a reuse library.
7. The software won’t execute on the target computer.
The vendor of the Graphical User Interface (GUI)
builder didn’t tell us that the needed run-time library
didn’t exist for that computer.
8. I can’t imagine why the order-processing people using
our new software are objecting to the new way of
doing things. They must not have the education
needed to appreciate the elegance of the new process.

33
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 39

BAD EXCUSES RELATED TO THE


CONTRACT

1. The buyer is claiming that we have not completed the 6. This is a time-and-materials, delivery-order contract.
Statement of Work (SOW) task because he is We can’t be held to delivering a product on a schedule.
interpreting an ambiguous SOW in an unreasonably 7. This is a fixed-labor-rate, delivery-order contract in
stringent way. which our cost estimate was based on the labor-mix
2. The cost model in the Request for Proposal (RFP) on model in the RFP. Our large cost overrun is due to the
which we made our cost proposal is unrealistic. This is fact that we have been constantly surprised with delivery
an evolutionary acquisition and implementation project orders and have had to staff heavily with our highest-
in which requirements will be changing for years. labor-rate people.
Therefore, there is no way to accurately estimate the cost 8. If the specification in the RFP had said you wanted
at completion now that we are performing on the wings on both sides of the airplane, we would have bid
contract. it. We're working on an ECP.
3. The schedule in the Software Development Plan, which 9. We have no risk.
we submitted with our proposal and which is 10. All of the problems we have been having for the past
incorporated into the contract, is not contractually year are Sam’s/Sarah’s fault.
binding because we cannot control when COTS 11. Trust me. We'll deliver on time.
vendors will release the needed versions and when the 12. The contractor is being unreasonable and just trying to
government will provide Government Furnished hold us up for more funding by telling us that the new
Equipment (GFE) and Government Furnished product we want him to produce is outside the scope of
Information (GFI). the SOW.
4. Seventy percent of the lead people listed in our proposal 13. The contract requires us to implement a Common
will not work on the project because of unexpected Operating Environment (COE), and one of the reuse
problems on their current projects. products in the COE is the reason we failed to meet
5. We overran our cost and schedule projections by contract requirements. Therefore the buyer is
100 percent because the government required us to responsible for our failure to meet requirements and our
program in Ada. large cost overrun and schedule slip.

35
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 41

BAD EXCUSES RELATED TO CODING


AND TESTING

1. Many of our code units are totally unstructured, with one of the “fixes” would introduce another error (source
several unrestricted GOTOs and cyclomatic updates when long periods of time have elapsed since
complexity greater than 100, because this is necessary the programmer wrote the code are, after all, the most
to optimize performance. error-prone processes in the development of complex
2. We don’t do white-box test in unit test because this systems). Any error in one of the fixes would scrub the
software is too large. test sessions for the day.
3. We meet the DoD requirements for Ada by using code 6. We thoroughly stress this client/server software. The
translation software that inputs COBOL source code specification calls for forty users on client workstations,
and outputs Ada source code. so we have forty client workstations logged on during
4. Our software is OO because the C source code is the stress test, with five of these being operated by
compiled with a C++ compiler. testers who use the workstations in any manner they
5. During system test on the target system, our practice is choose during the test.
to make patches to the object code when errors are 7. We can’t define specific loads on the system for the
encountered and then continue testing. It would take stress test because we can’t know the real peak loads on
too much time to send the analysis data back to the the system until it is fielded.
development organization to isolate and fix the 8. Thirty percent of our source code is assembly language
problems. Were we to fix these problems in source, because this is an optimization needed to meet
compile them, perform a build, and produce a performance requirements.
Software Version Document (SVD), we would be 9. We do not have coding standards because standards are
talking about ten hours (overnight) of wall-clock time. subjective and not all programmers have the same
If errors occurred in the compile or build process, the style. Also, not everyone can achieve the standards set
programmers wouldn’t be there to fix them until the by the best programmers.
next morning, in which case the new load files 10. Our programmers use text editors that allow them to
wouldn’t be ready for the next day’s test and the test modify source code automatically generated from
sessions for the day would probably be lost. If we had design by a CASE tool, because you can’t really
the programmers work a night shift and generate a understand how the software will work until you write
new baseline, there would be a substantial chance that the code.

37
Excuses 1/99 mid-line 2/1/99 1:41 PM Page 43

THE AIRLIE SOFTWARE COUNCIL

Victor Basili University of Maryland


Grady Booch Rational
Norm Brown Software Program Managers Network
Peter Chen Chen & Associates, Inc.
Christine Davis Texas Instruments
Tom DeMarco The Atlantic Systems Guild
Mike Dyer Lockheed Martin Corporation
Mike Evans Computers & Concepts Associates
Bill Hetzel Qware
Capers Jones Software Productivity Research, Inc.
Tim Lister The Atlantic Systems Guild
John Manzo 3Com
Lou Mazzucchelli Gerard Klauer Mattison & Co., Inc.
Tom McCabe McCabe & Associates
Frank McGrath Software Focus, Inc.
Roger Pressman R.S. Pressman & Associates, Inc.
Larry Putnam Quantitative Software Management
Howard Rubin Hunter College, CUNY
Ed Yourdon American Programmer

39

Das könnte Ihnen auch gefallen