views:

626

answers:

15

I recently read the great article by Fred Brooks, "No Silver Bullet".

He argues that there hasn't been a silver bullet that made software devlopment remarkably easier and that there never will be one.

His argument is very convincing and I certainly agree with it.

What is the stack overflow community's take on it? Is it possible for a silver bullet to one day come along and slay the software development werewolf?

For more information on the article itself, see this article: http://en.wikipedia.org/wiki/No_Silver_Bullet

A: 

Silverlight...

Just kidding, but its Silver at least ;)

Robert Gould
+3  A: 

There will never be a true "silver bullet" simply because as soon as a groundbreaking language or tool comes along our expectations are raised and demand even more capabilities from software. In other words.. it's an endless loop.

JTA
+14  A: 

Let's see... you are asking if anyone here disagrees with the author of Mythical Man Month...?

(tumbleweeds, wind blows)

Nope, I didn't think anyone would step forward.

Ed Guiness
A: 

In one word: No. Even if you limit yourself to a particular scenario (web development,etc) there are too many use case variations, business needs or technical restrictions for that to happen.

t3mujin
+6  A: 

I think Brooks define a silver bullet as a ten-fold increase in productivity. I dont think there have ever been a single invention that results in ten-fold productivity increase in general, and I think it is unlikely, since ten-fold is quite a lot.

However e.g. the jump from assembly to higher level languages have been a major productivity improvement, and other improvements like garbage collection, IDE's and so on have improved productivity significantly. And we will no doubt get new improvements in the future.

(Of course in specific niches you can have silver bullets - the availibility of the right library or tool can easily increse productivity more than ten-fold for a specific task.)

JacquesB
I think your comment about libraries is particularly interesting. Could you expand on it?
fluffels
The problem with increasing productivity ten-fold is that such improvements tend to be followed by a hundred-fold increase in expectations. Thus, the red queen dilemma - you have to run as fast as you can, simply to stay in the same place.
Sherm Pendley
A: 

No content, but someone might want to edit the question to provide a link for further information. The Wikipedia page features two links to PDFs.

unwind
This is what comments are for.
Morten Christiansen
I'll add the links.
fluffels
+16  A: 

The idea that there could be a silver bullet comes from not understanding what software development is.

Model 1: Software development is like laying brick. Some cool machine will make it faster and easier to lay brick giving us a 10x increase in bricklaying productivity.

Model 2: Software development is like writing an encyclopedia. You have to gather knowledge, and then represent that knowledge in a way that's precise enough that a lump of fused beach sand can act on that knowledge.

Every improvement in software development "productivity" merely leads to a demand for more -- and more sophisticated -- knowledge capture.

We have had perhaps a 100x improvement in productivity since I started in the industry 30 years ago. But the demands grow exactly as quickly as our capability, so it never feels like we're getting anywhere.

Also. Few people code for 30 years. People that move into management don't see the productivity gains -- all they see is that their ability to manage a project remains really weak.

Sidebar.

The biggest issue is that the "silver bullet" crowd wants a definite schedule -- that's all they want -- a price and date that we programmers can actually meet. (There's that Model 1 assumption, programming is like laying brick.)

Eventually, some managers realize the software development is knowledge capture and they finally get "Agile". Others never get it and have a version of Agile that amounts to iterative waterfalls with extra paperwork and long meetings.

S.Lott
Extra kudos for insightful truth in your sidebar.
Greg D
"Others never get it and have a version of Agile that amounts to iterative waterfalls with extra paperwork and long meetings." Very true.
Deependra Solanky
A: 

I think the biggest "silver bullet" we have already had is home computing. There is almost zero entry barrier to start development, and documentation is freely available.

Ali A
+3  A: 

Am I the only one that felt a x10 times productivity boost with the rise of the Internet? I also think open source in general had more than x10 growth thanks to the Internet And programs are about that much cooler too.

Just some food for thought.

Robert Gould
A: 

No, there is no silver bullet.

Ola Eldøy
+12  A: 

We keep inventing better silver bullets all the time. The Werewolves just keep getting bigger.

Jim C
A: 

There are many improvements in the way we write code (from switches to assembly to Fortran to structured programming to objects to components to services to aspects to whatever will come next.)

However those tools are only useful once you know what to do. There is still one aspect that is not covered by tools: it was, it still is, and it will still be very, very hard to translate user needs to an appropriate conceptual model.

+2  A: 

Maybe ony day. That day, some machine is able to understand, what you want and is able to resolve the conflicts in your requirements and then gets itself the knowledge that is needed to solve your problem. Right now only one machine is known to be capable to do this for you: a human brain.

This is so, just because software development is a learning process. If it was not, you would repeat yourself and I would ask you for abstactions, libraries or tools. Repeating oneself many times is bad coding style. So if you do not repeat yourself, then it is new to you. And you will have to learn it

Is there a silver bullet for the learning process?

MrFox
A: 

No. Even if we developed a Silver Bullet there are enough Werewolves in the world who'd rush to quash it, lest their power be threatened.

Alan Storm
A: 

On InfoQ there is a very interesting summary of the OOPSLA Panel from 2007 discussing this topic:

No Silver Bullet Reloaded Retrospective OOPSLA Panel Summary

There are a lot of gems in this discussion!

Especially cool is Martin Fowler disguised as a Werewolve and playing advocatus diaboli.

There is also a video from Fowler as Werewolve on YouTube

The sarcastic comments from Fowler alone are worth the read of the summary!

Reading the summary there seems to be a general consensus that there is really no silver bullet.

But this is also a dangerous consensus. As Bertrand Meyer (also in the summary) poses it:

according to his experience, many people, especially managers, rejected new ideas of the ‘80s and ‘90s like OOP, which actually were old ones, because they did not believe the new technology proposed to them would have a serious impact on development,

Using the insight, that there is no silver bullet as an excuse to stop trying to improve is certainly not the way to go!

I was a student of Bertrand Meyer at university, and he was a critic of Brooks paper, because he claimed that it was smothering innovation and the desire for improvement.

jbandi