Sie sind auf Seite 1von 6

9/25/2016

Summary:Nosilverbulletsvisibleartifacts

VISIBLE ARTIFACTS

February 6, 2009

SUMMARY: NO SILVER BULLETS

Brooks, Fredrick P., No Silver Bullet: Essence and Accidents of Software Engineering,
Computer, Vol 20, No 4 (April 1987), pp. 10-19
This is the famous article by Brooks which Cockburn referred to in Agile Software Development.
In it, Brooks denes some concepts relating to software development in order to help people see
what makes software development hard in an eort (possibly) to dissuade people from believing
that there is yet to be a silver bullet which will make software development easy enough for
http://visual.placodermi.org/2009/02/06/summarynosilverbullets/

1/6

9/25/2016

Summary:Nosilverbulletsvisibleartifacts

anyone to do well. He says there are two classes of qualities of software: essential qualities, and
accidental qualities. The essential qualities are extremely dicult to address or improve, while
the accidental qualities can be improved via tool support.
The essential qualities all have to do wth the design of software: understanding the problem and
designing and testing the conceptual contstruct. The accidental qualities have to do with
implementing the construct in code and testing it.
The essential qualities are these:
Complexity: software design is complex: understanding domain concepts to the extent that
one can dene them and the relationships between them exactly is hard; this denition is
essential if we want to translate those concepts into code. Unlike physical objects, no two parts
of a software construct are alike. Scaling up of a software entity necessarily means a scaling up
in components and complexity. The problem associated with complexity are: diculty of
communication of design among team members; diculty in enumerating all possible states of
the program (which brings unreliability); makes programs hard to use; makes programs hard to
change without inducing unwanted side-eects. The complexity makes overview hard (seeing
and tying up loose ends), and the tremendous learning burden means turnover is costly.
Invisible: cant see it all at once as you would a physical piece of something. It is also very
dicult even to visualize since there are many ways to look at the same design: the reality of
software is not inherently embedded in space. This inhibits communication of structure and
design.
Changeable: were just pushing bits around in the end; changing ideas. Therefore it is
always possible to change a piece of software. Software is inherently exible where physical
products are not. (McConnell , pp. 19-20). Change comes in two ways: people use the software
in ways not originally forseen in the design and want better support for that; and the physical
machine/OS changes underneath us.
Conformity: software must conform to external constraints (particular hardware, legacy
systems and data, regulations) that make it dicult to reduce complexity. Much of the
complexity of interacting with human systems is arbitrary, and since software is percieved as
changeable, it is most often seen as the thing which should conform, not the human system.
The accidental qualities are all about implementation and testing, and these have been solved
almost as well as they are likely to be solved, so dont expect many more breakthroughs. Here
are things that Brooks says have helped to reduce the impact of the accidental qualities (keep in
mind hes writing this in the middle of the 1980s):
High level languages (including object orientation). High level languages allow
programmers to express implementation with concepts closer to that which we use in design.
http://visual.placodermi.org/2009/02/06/summarynosilverbullets/

2/6

9/25/2016

Summary:Nosilverbulletsvisibleartifacts

Were reducing or eliminating the translation step between data models, operations, sequances
and communication and registers and bits. This eliminates a lot of the translation complexity.
But Brooks says that the most a high-level language can do is to funish all the constructs that
the programmer imagines in the abstract program and although our level of thinking about
those constructs is improving, it does so at an ever decreasing rate.
Time sharing and better OS support: Time sharing is contrasted with batch processing,
and it helps because we spend much less time in the code and test cycle. By better OS support, I
mean the dierence betweeen DOS (which has no library and almost no system call support)
and UNIX (which contains many libraries and a vast system call set, allowing you to not have to
implement display code, disk drivers, lesystems code, etc.).
He then talks about hopes for the future, and discounts all as being silver bullets: Ada and other
high-level languages, object orientation, AI (both in the idea of software solving problems that
were previously the domain of human intelligence; and in expert systems), expert systems,
automatic programming (we specify the requirements and the software writes code for us);
graphical programming (a la LabVIEW), proof based design verication, better tools, and
workstations.
He identies three promising areas that may help promote obtaining (note: not necessarily
building) better software:
Buy versus build. Remember that in the mid 1980s, the software market was still small.
Incremental, iterative development with feedback from end users: because this helps to
rene requirements, prove the design, and improves morale
Identify, retain and coddle great designers: some people are just better at software design
than others. Try to identify them, retain them in your organization, and coddle them so that
they get the skills and compensation that they need.

Posted in Summaries
12 Comments

12 THOUGHTS ON SUMMARY: NO SILVER


BULLETS
MUSTAFA
October 12, 2011 at 3:04 pm
http://visual.placodermi.org/2009/02/06/summarynosilverbullets/

3/6

9/25/2016

Summary:Nosilverbulletsvisibleartifacts

An excellent summary! It was very helpful in remembering the overall structure of the paper
during my quiz!

XAFAR
October 27, 2011 at 9:58 pm

nice for my paper

UMHAAIR KHADIM
September 16, 2013 at 2:55 am

Realy helpful for my Quiz


THanx

ABBASANSARI
May 19, 2014 at 10:36 am

great summary

ARUN
July 15, 2014 at 12:37 pm

Good work, appreciate it, saves a lot of time and eort. Thanks

MUHAMMAD AMIN KHAN


March 17, 2015 at 6:06 am

it is vary helpful and easy to understand the document thanx alot for giving such a good
infromation.

MUHAMMAD AMIN KHAN


March 17, 2015 at 6:07 am

http://visual.placodermi.org/2009/02/06/summarynosilverbullets/

4/6

9/25/2016

Summary:Nosilverbulletsvisibleartifacts

thanx alot for explaining in too simple words..

STEPHEN
October 8, 2015 at 6:27 am

Great review, this could be on a future test of mine and I didnt want to read through the whole
article again.

VINCENT NGUYEN
November 13, 2015 at 3:27 pm

Thank you very much. Your review so particularly simple!

Pingback: From Monolith to Microservices - HomeAdvisor

SARAH MOOSVI
April 17, 2016 at 8:45 am

This is much easier. I was thinking quitting that 16 pages article which was very written dicult.
:/ But thanks it just too easy to understand and guess perfectly summarized.

NICOLAS
August 25, 2016 at 7:06 am

Mas te vale que me haga aprobar el quiz

LEAVE A REPLY
Your email address will not be published. Required elds are marked *

http://visual.placodermi.org/2009/02/06/summarynosilverbullets/

5/6

9/25/2016

Summary:Nosilverbulletsvisibleartifacts

Comment

Name *

Email *

Website

Post Comment

Proudly powered by WordPress | Theme: Cubic by WordPress.com.

http://visual.placodermi.org/2009/02/06/summarynosilverbullets/

6/6

Das könnte Ihnen auch gefallen