No Silver Bullet Essence and Accidents of Software Engineering

  title={No Silver Bullet Essence and Accidents of Software Engineering},
  author={Frederick P. Brooks},
  • F. Brooks
  • Published 1 April 1987
  • History
  • Computer
But, as we look to the horizon of a decade hence, we see no silver bullet. There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity. In this article, I shall try to show why, by examining both the nature of the software problem and the properties of the bullets proposed. 
No silver bullet: a retrospective on the essence and accidents of software engineering
No "Silver Bullet" is a classic software engineering paper that deserves revisiting. What if we had a chance to rewrite Brooks' article today? What have we learned about effective software
The Inevitable Pain of Software Development: Why There Is No Silver Bullet
A variety of programming accidents, i.e., models, methods, artifacts, and tools are examined to determine that each has a step that programmers find very painful, and there is no silver bullet.
The Software Engineering Silver Bullet Conundrum
It is argued now that the main reason that there can be no software engineering silver bullet is that as soon as one is produced, software engineers move on almost immediately to solve even harder problems for which the silver bullet does not help much.
In search of silver bullet (software engineering)
  • M. Tanik
  • Computer Science
    Proceedings COMPSAC 88: The Twelfth Annual International Computer Software & Applications Conference
  • 1988
The author examines the difficulties in solving the generic problem of finding reliable, efficient, timely, and cost-contained solutions for automation problems in software engineering and suggests an executable very-high-level design language which can be used in interactive, incremental, and hierarchical specification of large-scale systems.
On the Role of Software Reliability in Software Engineering
Two complementary approaches to reliability are discussed: the constructive approach, which tries to produce a-priori reliable software, and the analytic approach,Which tries to measure reliability by inspecting software a-posteriori, after its development.
Experiences in Project-Based Software Engineering: What Works, What Doesn't
The seminal “No Silver Bullet” article by Brooks (1987) in part focuses on identifying the essence of what makes software development difficult and stresses that the ability to modify software so as to accommodate evolving hardware requirements is one Chapter X Experiences in Project-Based Software Engineering: What Works, What Doesn't.
Software Components: Only the Giants Survive
A general library of software components is unlikely to work, because there’s no business model for it, it costs the client too much to understand a component, and components have conflicting world views.
It is asserted that any paradigm that is capable of decomposing a system into large numbers of small components—as frequently occurs in both OO and conventional systems— is fundamentally wrong, and because both paradigms suffer from this flaw, the authors should expect no particular benefits to accrue from an OO system over a non-OO system.
Rapid Software Evolution
The high complexity of modern software systems, described more than twenty years ago in the well-know paper by Fred Brooks, has become proverbial amongst practitioners and calls for a fundamental change in understanding and practice of software construction.


A spiral model of software development and enhancement
An outline is given of the process steps involved in the spiral model, an evolving risk-driven approach that provides a framework for guiding the software process and its application to a software project is shown.
Object-oriented design
This paper describes an object-oriented design methodology, using Ada as the implementation language, and indicates that the application of appropriate design methodolgies, embodied in a high-order language, is appropriate in combatting software depression.
Designing Software for Ease of Extension and Contraction
  • D. Parnas
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1979
It is shown that the identification of minimal subsets and minimal extensions can lead to software that can be tailored to the needs of a broad variety of users.
A 15 Year Perspective on Automatic Programming
  • R. Balzer
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1985
Automatic programming consists not only of an automatic compiler, but also some means of acquiring the high-level specification to be compiled, some means of determining that it is the intended
The Mythical Man-Month
The author will list some of the assertions in the book and invite dispute or support from the audience in this public discussion of the published book.
Software aspects of strategic defense systems
A former member of the SDIO Panel on Computing in Support of Battle Management explains why he believes the “Star Wars” effort will not achieve its stated goals.
A Survey of Current Graphical Programming Techniques
A pictorial system is the best vehicle for this, since it offers complete freedom in representing program navigation and can be used to examine a piece of abstract data by enlarging its picture with a zoom effect, thus showing internal detail.
Exploratory experimental studies comparing online and offline programming performance
These are the first known studies measuring the performance of programers under controlled conditions for standard tasks, and statistically significant results indicated substantially faster debugging under online conditions in both studies.
No Silver Bullet - Essence and Accidents of Software Engineering - Response
  • W. Turski
  • Engineering, Computer Science
    IFIP Congress
  • 1986
Top-Down Programming in Large Systems, in Debugging Techniques in Large Systems, R
  • Top-Down Programming in Large Systems, in Debugging Techniques in Large Systems, R
  • 1971