Oct 14

Silver Bullets, Silver Shrapnel

The Codist says ‘There is still no silver bullet in softwareколи под наем‘.

While I agree that there is no one technology that has brought orders of magnitude of new productivity improvements to software development, I would say that the panoply of different new technologies have cumulatively brought orders of magnitude of improvement.

Think back to 1986. Imagine getting a request to ‘Put together a system so that people can create Monte Carlo simulations of their software projects, and view a graph of the histogram of estimated project durations. And it should be free.’

In 1986, you’d have to:

  • Get your Windows compiler, and build the logic for a Monte Carlo simulation
  • And the UI for entering the data
  • Painstakingly create your graphing solution (because there were no free ones)
  • Build the installation package
  • Burn floppy disk(s) with the executable(s)
  • Deal with the variations in video cards and colors (or lack thereof)
  • Finagle with memory management, extended memory, dangling pointers
  • Debug, and test, and debug, and test.

I suspect it would take weeks for one person to get all of that together. 10 weeks (400 hours) would not be out of the question.

I wrote that program the other day, in Grails, using an open source graphing library. It took me 4 hours.

Now imagine the additional requirement: Make the projects persistent, on a central server where you can view and update other people’s projects, over an encrypted connection. And you can expect thousands of users. And it should still be free.

Today, you’re probably looking at an extra day or two of effort.

In 1986, you’re looking for a knife to commit seppuku.

Over the last 20 years, in drips and drabs, we’ve easily had a 10-50x improvement in our ability to solve complex problems. Technologies like:

  • Open Source Software
  • The Internet
  • Web browsers
  • Web frameworks
  • New languages
  • New programming techniques (Test-driven, etc)
  • Relational Databases
  • Standardized encryption
  • Coding websites
  • Web services
  • Structured markup
  • Improved servers and computer infrastructure
  • Standardization of common actions (login, register, sessions, transactions, etc)

Individually, they’re just minor improvements. But together, things are possible today there were essentially impossible 20 years ago.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>