Geeks With Blogs
Chris Breisch   .NET Data Practices
Search this Blog!

Frederick P. Brooks, 1987:

Not only are there no silver bullets now in view, the very nature of software makes it unlikely that there will be any—no inventions that will do for software productivity, reliability, and simplicity what electronics, transistors, and large-scale integration did for computer hardware.... 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.... If this is true, building software will always be hard. There is inherently no silver bullet.

As Joel Spolsky tells us, Mr. Brooks got it exactly right.  He says:

What happens is that some kind of vendor of programming technologies has come up with some product they are claiming makes programming easier. The journalists don't really understand. What they hear is “programming is going to be easier.” Usually there's some kind of Lego allusion.

While I believe in OOA/OOD/OOP, don't believe the folks that tell you that it'll revolutionize your world, and soon programs will be so easy to write that they'll practically write themselves.  Don't believe the folks at Microsoft when they tell you that about XAML, or the folks at Rational when they tell you that RUP and UML are the keys to finally fixing your development process.  Don't believe the Agile folks, when they tell you similar things about Agile, or (my personal favorite of late), "if you're not doing Agile development, you're not doing development".

None of these things are the magic bullet.  Some will undoubtedly help you.  Some may not.  I was about to write that it's the process, but caught myself.  David West, in Object Thinking, tells us it's not even that.  It's part process, but it's also a mindset, a way of thinking about what you're trying to do.  Of course, even that's not enough.

Part of the reason is that as times goes by, the complexity of our apps increases many fold.  Yes, we have our Lego building blocks that we could use to build a simple Wordpad like word processor in nothing flat.  However, we're not building Wordpad anymore are we?  20 years or so ago, I remember dealing with the issue of whether MS's pseudo 24-bit addressing model in Windows 3.1 was sufficient or whether we'd need to go to a true 32-bit model like in OS/2.  We chose the 32-bit model, and our app had a fairly large database for the time.  But the database still fit on the person's workstation!  And a big personal hard drive then was 160 megabytes.  For the app that I'm working on currently, we've estimated the database size at over 25 terabytes.

No magic bullet will solve the problems we have in dealing with this much data.  Just good old fashioned hard work and good design.

Posted on Friday, March 23, 2007 9:27 PM Architecture | Back to top

Comments on this post: Forget What the Media Tells You--Software is Hard

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © Chris J. Breisch | Powered by: