This editorial was originally published on Aug 26, 2015. It is being re-run as Steve is traveling.
One of the difficulties I think that developers face is that so few people understand what actually goes into producing software. The end result that a user sees can mask the effort and complexity of the underlying code. A person might see one application that required months of effort and not understand how it's different than a similar (in their view) application that was prototyped and completed in a week.
I've seen a few efforts to try and explain how code is written, and I think the huge piece by Business Week was a really good explanation for the layman. It tries to simplify concepts, and does so in a humorous way. I suspect that this piece might actually help our clients and customers gain some appreciation for the difficulty of producing a basic application.
However I think we need some additional articles like this to help explain our database world. While there are some good, basic pieces on what a database is, we don't necessarily help anyone understand the complexity of assembling disparate data, especially at scale.
I don't think end users would care much about why database performance can be an issue, but I do think that some well written, easy to read, enjoyable pieces on the issues of writing poor database code might give developers some appreciation for why indexes matter, what RBAR does to performance, and what solutions might help their code shine.
No one wants software written poorly, and no one wants deadlines missed. However the world of software development is complex and the more that we can help our clients understand this, the less time we waste on explanations.