Posts under ‘Software Is Hard’

The Science of Business Applications

Building software is both an art and a science, as many people have said.  One might argue that when building business applications it is better to leave the art behind, and focus on the science.  Business software needs to be reliable, scalable, and built on time and budget, after all. And it is true that [...]

Algorithmic or Arbitrary, Software’s Great Divide

A recurring theme has emerged in what I’ve been reading the last few days. It boils down to the differences between software based on a clean, logical algorithm, and software based on arbitrary rules.
The topic first arose in a conversation I was having with Chris Conway over at Code Reads, exploring the pros and [...]

Code Read 7 – David Parnas on Star Wars Software

In 1985, David Parnas resigned from his position on a panel convened by the Strategic Defense Initiative Organization, which was overseeing the “Star Wars”, or SDI anti-ballistic missile defense program. Along with his resignation he submitted several short essays explaining why he thought the software required for Star Wars could not be built, at [...]

Code Read 4 – Dijkstra’s Notes on Structured Programming

Edsgar W. Dijkstra’s “Notes on Structured Programming“, which is Code Read 4, stuck me as shockingly prescient – or perhaps it is just that we creators of software are very slow to learn these lessons. Surely something written almost 40 years ago should feel more dated than this., and we should have learned or [...]

Code Read 3 – The Humble Dijkstra

The third Code Read that Scott Rosenberg chose was another Edsgar Dijkstra essay – this one called “The Humble Programmer“. Vastly oversimplifying, Dijkstra is making this very important point: despite all of our achievements, we are limited creatures, and our intellect can easily be overwhelmed by our own creations. Particularly as [...]