Channels ▼

Paul Kimmel

Dr. Dobb's Bloggers

Present Day Software is Unimaginative and Staid

February 09, 2011

I have been an independent consultant for more than 20 years now, which means I see a lot of projects and work with a lot of teams and companies. The teams, the companies, and the projects have all been great for the most part, but what I see most commonly are teams comprised of managers and programmers. The other thing I see is a lot of software that lacks design imagination, creativity, and looks a lot like avocado kitchen appliances from the 1970s.

I don't know about you but checkboxes, listboxes, textboxes, and grids are getting to be kind of boring. Is this really the best we can come up with in 20 years, because things haven't changed much in the last 10 or 15 years? Modern software is at best a dull, trichromatic, randomly functioning, often crashing, layering of box-like input metaphors. Snooze! How come my iPhone has a cool interface, but I am still using the same old boring mouse and keyboard?

I want software that is flawless, bug free, imaginative, creative, inspiring, sexy, cool, that talks and interacts with me. Where is that cool display used in the movie 'Vanilla Sky'? Why isn't my house shutting doors, opening windows, talking to me in a sexy voice? Where are the little nano-robots that repair my clothes, clean my arteries, and make me feel smarter? (And, for that matter why do all prescription drugs cause horrible side effects? If you are going to make drugs that have side effects why not side effects that grow hair, correct ED?!) I digress a little, but if we had cooler more imaginative software it seems like we could figure some of this out.

The reason we don't have cooler software is because we are building it the same way we did twenty years ago: managers and programmers. Without specialists like graphics people and designers, and creative types, left brained people (like me) will keep producing the same old trichromatic boxes. Checkboxes aren't inspiring. They are boring. If we keep sticking to the many programmer model we aren't going to get anywhere. I haven't thought in a while that projects should be programmer heavy; they should be specialist heavy. As an industry we should be at a point where most routine business software is assembled out of existing bits as much as coded and programmers along with designers should be building and inventing newer, cooler, and better ways to get to that point.

Our industry is like a million monkeys banging on a piano trying to compose art. Let's get some composers (designers) in here. Let's get some creative types in here. Spend more time measuring and less time cutting. (I know the metaphors are getting a little crazy.) The point is if we keep doing the same things the same way we are going to get the same result. Mix it up. On your next project go designer top heavy-real designers that can solve most of the problems before you start building things. Think things through, and see if you get a better result. Mix it up people.A million monkeys hammering on a piano are never going to create art. Software is built the same old way, with the same old skillset, and it is starting to look, well, boring.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags


<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags


<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

