Verified Document

No Silver Bullet Essence And Accidents Of Software Engineering Term Paper

¶ … Silver Bullet During the 1970's, companies had difficulty delivering software within the constraints of schedule, budget, and quality (Food for Thought, 2005). The problem grew worse over time. Many projects undertaken in the 1980's and 1990's were complete disasters, failing to deliver anything, grossly exceeding budget and schedule deadlines, and delivering poor quality. Also, during the 1980's a "software crisis" occurred in which the spending on software maintenance exceeded spending on creating new software products. So, why can't software be mass produced in a way that is reliable and consistent just as manufactured goods are delivered today? There are many theories regarding lack of software productivity. Brooks (1987) holds that the fundamental nature of software prevents meaningful automation. Cox (1996), on the other hand, makes the interesting assertion that software development issues stem from market dynamics, namely the way software is bought and sold. Most recently, experts have turned their eyes to the organization itself, claiming a lack of IT governance as the cause of software project failures (Weill and Ross, 2004). This paper finds that all these theories and many more not discussed all help to shed light on barriers to software productivity.

Brooks (1987) holds that the problems in software development productivity are attributable primarily to conceptual components and, therefore, no efforts on the task components that are nothing more than the expression of the concepts can bring about large productivity gains. Brooks states, "I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation." Therefore, he asserts that there is no technology or management technique that will produce even one order-of-magnitude improvement in software productivity, reliability and simplicity.

Further, Brooks (1987) describes a software product as being fundamentally different from a manufactured good. Unlike a manufactured product, scaling up of a software element is not about repetition of the same elements into large sizes, it must involve an increase in the number of different elements that interact with each other in a nonlinear fashion. Because software must conform to other interfaces, this complexity is impossible to simplify. Also, manufactured things aren't expected to change after manufacture, but software must constantly...

Parts of this document are hidden

View Full Document
svg-one

And, software has no ready geometric representation as do other goods such as silicon chips having diagrams and computers having connectivity schematics.
On most attempts to improve software productivity, Brooks (1987) is fairly pessimistic about their overall impact of most, but does have a few good things to say about the potential of others. As marginal contributors Brooks cites:

High level languages: The most a high-level language can do is to furnish all the constructs that the programmer imagines in the abstract program.

Time sharing: As response time approaches zero, at some point it passes the human threshold of noticeability with no additional benefits.

Object-oriented programming: Significant gain can be made only if the unnecessary type-specification underbrush still in the programming language is itself nine-tenths of the work involved in design.

Artificial intelligence: The hard thing about building software is deciding what one wants to say, not saying it.

Expert systems: These require finding articulate, self-analytical experts who know why they do things, and developing efficient techniques for extracting what they know and distilling it into rule bases.

Automatic programming: It does not generalize to the wider world of the ordinary software system.

Graphical programming: It is difficult to extract any global overview

Program verification: It does not save labor

Workstations: Power and memory capacity not that important after a certain point.

Factors with more promise, according to Brooks, are mass markets for buying software, requirements refinement and prototyping and finding a way to mentor more great designers. Of requirements refinement and rapid prototyping, Brooks believes that this area has potential because it attacks the essence, not the accidents, of the software problem through incremental development. Brooks concludes by stating that great designer are vastly more productive than others, producing structures that are faster, smaller, simpler, and cleaner with less effort.

Cox (1996) believes that the software engineering community is too focused on development processes and tools to explain poor productivity. Instead, Cox argues that the problem rests in the way software is bought and sold. He uses the following sequence of logic to justify his opinion:

1. The reason that software is costly, of…

Sources used in this document:
Bibliography

Brooks, F.P. (1987, April). No silver bullet: Essence and accidents of software engineering. Computer Magazine. Retrieved March 4, 2005 from Web site: http://www.computer.org/computer/homepage/misc/Brooks/

Cox, B. (1996). Superdistribution: Objects as property on the electronic frontier. New York: Addison-Wesley.

Food for Thought (2005, January), Vol. 2 No. 1. Retrieved March 4, 2005 from Web site: http://www.swqual.com/newsletter/vol2/no1/vol2no1.html

Pultorak, D. IT governance: What's a data center manager to do? Retrieved March 4, 2005 from Web site: http://66.102.7.104/search?q=cache:DfdPAZpOGpsJ:us.foxit.net/download/it_governance_dcm.pdf++%22IT+governance%22+itil& hl=en
Cite this Document:
Copy Bibliography Citation

Related Documents

Object-Oriented Programming
Words: 1739 Length: 6 Document Type: Term Paper

Object Oriented Programming The programming language that is organized around data rather than actions, and objects instead of actions is referred to as object oriented programming Mitchell, 2003. A program has always been viewed as a logical procedure which accepts input data, processes the data, and produces some output. Object oriented programming was developed out of the need to write the logic instead of how to define the data. In object oriented

Object-Oriented Database and Languages Used in Object-Oriented Database...
Words: 1956 Length: 7 Document Type: Research Paper

Object Oriented Database and Languages Used in Object Oriented Database In this paper, we discuss the concept of object oriented databases and the languages using four different articles. We focus our discussion on the Object-Oriented design metrics for the purpose of optimizing code quality. These articles are papers/articles sourced from journals and recent conference papers. The articles we concentrate on are based on the languages Java, C ++, Python, Ruby and

Object Oriented Vs. Relational Database
Words: 2917 Length: 10 Document Type: Term Paper

This is one of the greatest limitations of this technology. A second major disadvantage of RDBMS-based systems is their lack of support for image- and spatial-based databases that include Computer-Aided Design (CAD) drawings, 3D rendering and model-based data. Their table-based structure is inefficient in defining the attributes of these data types and lacks the necessary data tagging and data types to manage imaging and CAD-based design files and data

Object Oriented Hypermedia Design Model and the
Words: 2755 Length: 10 Document Type: Term Paper

Object Oriented Hypermedia design model and the four-step process involved in the development of the model. This section will provide an explanation for each step in the process. Then we will discuss the past, present and future business uses of the model. This will explore the importance of the model in business applications that are conducted through the Internet. We will also provide details about the compatibility of the

Differences Between Structured Design and Object-Oriented Design
Words: 725 Length: 2 Document Type: Term Paper

Structured Design and Object-Oriented Design This report attempts to distinguish between two information technology design philosophies; namely, the basic differences between structured design and object-oriented design. The report also addresses the kinds of systems that are naturally more inclined to function with a hierarchy and those which function better through interacting objects. The report also goes on to discuss how systems were designed and when the methods used were most

Laboratory for Teaching Object-Oriented Thinking
Words: 1549 Length: 5 Document Type: Term Paper

Crimes in Prison Summary of "A Laboratory for Teaching Object-Oriented Thinking" "A Laboratory For Teaching Object-Oriented Thinking" describes a novel method for teaching programmers to think about programs in terms of objects instead of procedures in an attempt so solve the problem of programmers not adapting well to object-oriented programming. Programmers are introduced to the concepts of object-oriented programming without involving the specifics of any given language so that they can be

Sign Up for Unlimited Study Help

Our semester plans gives you unlimited, unrestricted access to our entire library of resources —writing tools, guides, example essays, tutorials, class notes, and more.

Get Started Now