No Silver Bullet Essence and Accidents of Software Engineering

@article{Brooks1987NoSB,
  title={No Silver Bullet Essence and Accidents of Software Engineering},
  author={Frederick P. Brooks},
  journal={Computer},
  year={1987},
  volume={20},
  pages={10-19}
}
  • 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
TLDR
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
TLDR
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
TLDR
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.
Software reusability issues in code and design
TLDR
In this paper, software reusability issues are studied both at the code and design level.
Oss as a Silver Bullet Open Source Software: Lessons from and for Software Engineering
TLDR
Despite initial suggestions to the contrary, open source software projects exhibit many of the fundamental tenets of software engineering, and the existence of category-killer apps suggests that conventional software engineering can draw some lessons from OSS.
On the Role of Software Reliability in Software Engineering
TLDR
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
TLDR
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
TLDR
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.
...
...

References

SHOWING 1-10 OF 25 REFERENCES
A spiral model of software development and enhancement
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
...
...