If software was physical you’d have to look away 19 Oct 2005

45 comments Latest by dinah

Think about the software you use and imagine what it would look like if it was a physical object. Most software would be a freakish, Chernobyl-style mangled mess. Too many wires, too many blinking lights, too many buttons, too many competing shapes, too many different materials, too many levers and switches and toggles, oh my. You’d feel sorry for it, but you’d have to look away.

Next time you design some software, visualize how it would look if it was a real object. Would you be able to figure out what it does by just looking at it? Or picking it up? Or turning it on? Or would you not know where to grab it, or how to pick it up, or how to turn it on? Would you know which way was up? Or which side was the front or back? Would it be too heavy to move even thought it was supposed to be portable? Would it be square when it says it’s round?

If software was physical it would be so much simpler.

45 comments so far (Jump to latest)

Jeffrey 19 Oct 05

I think what Jason is trying to say is that if 37signals software took physical form, it would have long silky hair and supple breasts.

Jeffrey 19 Oct 05

I keeed, I keeed :)

Paul Watson 19 Oct 05

I rather think he is saying if 37signals software took physical form it would be an iPod. ;)

elloco 19 Oct 05

I hope I’m still alive when the interface to a computer gets more sophisticated than mouse and keyboard so that software could actually be grabbed like a real object. I’m not too optimistic though because we use the same old model since almost 40 years now…

JF 19 Oct 05

Actually I’m not saying anything about our products, just software in general. But I did like the part about long silky hair and supple breasts.

beware of dragons 19 Oct 05

if software were physical, it would be hardware. which would make this post moot.

:P

Anonymous Coward 19 Oct 05

My software looks like Ernest Kim. Perfect.

brad 19 Oct 05

Shouldn’t that be long silky breasts and supple hair?

Shiro 19 Oct 05

Not all software should be simple - as in lean or minimal. You guys can get away with simplicity because your product / service doesn’t need to be complex. The same, however, can not be said for some other types of software. To really get into the nitty gritty of many apps requires more than just giving it a cursory glance and “grokking” it in a moment. To get the most from most 3D programmes requires lots of practise or training before you can expect to do anything worthwhile with it. Or how about Flash? Sure, it is pretty buggy and nit-picky, but for all that it does, it requires a great amount of digging to really utilise all of its features - something which cannot be done by having everything on the surface. Sometimes many “levers and switches and toggles” are required, period.

I realise that this is your space so you can say whatever you like, and you should. But by opening your blog for public commentary, you should expect to be called out for remarks from time to time which need scrutiny. To me, it seems such a shame that you all seem to be getting further and further away from actually making product and closer to a point of just preaching your views - views which work in only some instances, and yet are professed to be sweeping towards all things. I’d really like to see more features, enhancements and new apps in your already excellent library of software, and less preaching and alienation from other developers, and at times your own customer base.

pinder 19 Oct 05

this post reminded me of Will Ferrell doing Harry Caray: “It’s a simple question, doctor: would you eat the moon if it were made of ribs?”

JF 19 Oct 05

Pinder, that *really* cracked me up.

kayvaan 19 Oct 05

back when i was a developer, we used to joke that if our software were, for example, a bridge, there would be big gaping wholes in it that cars would drive through, and parts of it would come crashing down randomly and sometimes it would just not even let people on…. the point being that the criteria for software engineering are often lower than other types (in this case civil) engineering. but again - software is often harder to engineer because it’s so abstract.

of course, the bridge is really a flawed analogy. our software was not as critical as a bridge and if it failed it wasn’t a matter of life and death. the more “mission critical” a piece of software, *usually* the better engineered it is…. (i.e. NASA…)

Alex Bunardzic 19 Oct 05

Sure, it is pretty buggy and nit-picky, but for all that it does, it requires a great amount of digging to really utilise all of its features - something which cannot be done by having everything on the surface.

But did you read the original post? You chastise the poster for something he didn’t say. How did that happen?

All he was talking about is the surface of the product. And now you complain that there should be something below the surface. So, where’s the problem?

Sam 19 Oct 05

I have no idea what software would look like if it were a gadget or some physical object.

I don’t know if its a useful exercise, I mean, its already tangible, just in a 2D sense. The full 3D experience comes from the machine you run it on, your screen, keyboard, work environment, etc.

Alan 19 Oct 05

What a lovely thought. There must be an infinite number of monkeys thing available here, insomuchas, when someone gets the thingermyjig that converts software to physical lumps, it’d be fun guessing what todays software would make.

Where do the monkeys come in? Well I am guessing that 99.9% of the time (and some), you’d get a pile of c*$@p out, but once in a while I’m sure a piece of software would create a butterfly, whale or dove shape.

My guess is that if we fed a certain office suite in, you’d break the machine.

Mark 19 Oct 05

Jason, I understand the point you’re trying to make, but couldn’t it be looked at in the direct opposite view as well? If all physical objects were viewed as software, they would be highly bloated?

Think about an average US home for example. It can serve as a storage device, mail client, billing center, project management center, entertainment center, learning center, communication hub, job readiness center, meetup…

It can do all that at once or it can keep some functions hidden until required, depending on the user need.

Isn’t that the very definition of “bloat”?

Ganesh 19 Oct 05

Makes no sense. What happens behind the scenes in software is potentially similar to the chaos that reigns inside physical devices. The interface of a physical device with buttons and levers should be compared with the UI of the software and not the inner workings.

For me, staring at a car’s dash board is equivalent to staring at the GUI of a software application. Likewise, staring the engine is like looking at the source code on some level.

Noah 19 Oct 05

It’s thinking like this that got us all those nasty ass screw & wire website interfaces of the early 00s !!

Software should work like software, people become used to a paradigm and don’t mess with it.

Doug 19 Oct 05

sounds like kayvaan worked in redmond.

JohnO 19 Oct 05

Shiro,

Have you ever seen an audio mixing board? In real life? Perhaps on TV in MTV Cribs where they have their own studio?

Does it perform a complex task? (Yes) Does that look like a complex system? It might look like one, but it is incredibly simple. Just because it has 10,000 knobs, LED’s, faders, EQ’s, AUX’s, and gobs of cable running into the back of it, doesn’t mean the interface to use it sucks.

The interface is quite simple. I know how to run an audio board. I’m not a certified technician, I didn’t go to school for it, I can’t even tell you the Hertz range of human hearing. But I know how to work the board, because it is simple. I’m not even a musician (yet, working on that one)

Dean 19 Oct 05

Q: How many software engineers does it take to change a light bulb?

A: None. That’s hardware’s problem.

evan 19 Oct 05

this post confuses me. almost all software i can think of is based of real world objects.

photoshop = darkroom
word = paper, pencil, and a dictionary
backpack = notepad, pencil, photo album
writeboard = a dozen magic erase pens, a whiteboard, and a megaphone
maya = claymation setup, gears and springs
finalcut = a couple beta decks, cd player, and a switcher

any software that’s based for internet usage wouldn’t have a real world look. uh… cause there’d be no need for it.

Tim Laughlin 19 Oct 05

One thing to mention with flash being brought up is this..

You must remember that flash itself is an interface that may be too complicated. If you look at the 10,000 foot view of most flash projects they do very much the same thing (from an animation perspective). The mindset of simplicity cannot *trust* any existing tool to have been built with simplicity in mind.

Rob Poitras 19 Oct 05

You guys can get away with simplicity because your product / service doesn’t need to be complex.
too bad shiro didnt post his email or site, I would like to find out more about your philosophy
From what I understand of the 37signals philosophy, its that they start off with trying to do a specific thing, such as managing tasks better. They think about how solve the problem (with a to-do list) then make the to-do list application. A software company can make a to-do list complicated, but 37signals decided not to. Maybe you are saying that the products they have, its easier to make it simple (a single product vs an OS)

Brian 19 Oct 05

Pinder —- Isn’t the skit — “Heyyy, if the moon were made of cheese would ya eat it? … Heyy if I were a hotdog would ya eat me?”

Brian 19 Oct 05

I had a related post last month. I think the message here can be seen as writing good, clean and as simple as possible code is the way to go. It is also nice for the next guy to work with.

My past 2 jobs have been a nightmare where things are just over-engineered when they didn’t need to be.

andrew 19 Oct 05

I have worked my entire career in corporate IT departments and intimidating and confusing complexity is almost axiomatic for in-house software. Some of that is directly attributable to the level of design skills of the developers, but most of it is because the software must implement systems created by lawyers and accountants, systems of unnatural, inelegant and awkward complexity.

john 19 Oct 05

Wait… All 37signals software would look like would be a pad of paper. You know why? Because someone else has gone out and done all the work and you sit there and say HEY LOOK YOU CAN WRITE SHIT ON THIS PAPER. That’s pretty much what you guys create, nothing.

Shiro 19 Oct 05

But did you read the original post? You chastise the poster for something he didn’t say. How did that happen?

Oh, is that a fact? When Jason said “Would you be able to figure out what it does by just looking at it?” I responded to that with ” To really get into the nitty gritty of many apps requires more than just giving it a cursory glance and “grokking” it in a moment.”, to which my remark about Flash was an obvious follow-up example. You can’t always figure out what something does just by looking at it, and I merely listed 2 examples - Flash and a 3D app - to demonstrate that all software, as Jason’s post clearly asserts by not restricting it merely to web apps.

And yes, he was discussing the surface, but both software and physical objects have more than just a surface to them. For software, there is the UI, and for software which is necessarily more complex comes a possible need for its GUI to be more complex. And given the fact that there is only so much screen real estate, that means that there does need to be some digging around in order to access all of the features. Look at Basecamp and Backpack, for example. Are every single one of the features available from the top page? Nope. The same holds true for some physical objects. For one, one of my remote controls has a flip open surface to access more buttons which may not be used as often as others.

My remarks were about the approach that 37S is taking that since the software they create is simple and therefore doesn’t require a lot of “levers and switches and toggles and blinking lights and wires” does not mean that they need to state that all other software should be governed by the same criterion.

Maybe you should go back and read his past and see it for what it is, then reread my original reply, and get back to me when you finally get it.

Michael Ward 20 Oct 05

The question is: does your software fit its user like a (super) glove?

Obviously a neuro-surgeon need a much more complicated glove than the removal man - but the neuro-surgeon has the right skills to use the glove. He might struggle a little with the removal mans gloves - our neuro—surgeon isn’t really strong enough to use that glove.

But no matter who the user of the glove, there is no need for it to behave inconsistantly, erratically or not at all. There’s also no need for the neuro-surgeons glove to have the ability to remove furniture, or for the removal mand glove to have the ablity to do minor neuro-surgery.

Make software that does what it needs to do, quickly, as simply as possible and just makes sense.


If my ideal software was an object it would be a ballpoint pen. Does it’s job well, is easy to figure out, interoperates well and only occasionly goes wrong.

mini-d 20 Oct 05

Probably it would have the aspect of machines and consumer products of the 50’, 60’ and 70’. I still have books with products pictures and they look awful as hell, some of them still being cute, but…

Colin Dowelll 20 Oct 05

This is a fantastic exercise, and a great topic for a lunch meeting. “Ok everyone what is this project going to be…”, “A milking machine”, “A pony”, “Hmm a pony, eh…”

I can see traditional applications as structures or robots or cyborgs, but when I think of web sites and web applications they become organic in my mind.

Organic things beautifully defy logic in there adherence to some unforeseen order. There purpose is to exist and hopefully pass the good things about them on to the next generation.

Web projects share this hopeful existence. They are always growing and changing trying to adhere to some typically unforeseen order.

The romantically artistic renderings of an animals inner workings leave the viewer with the sense that a strict plan has been expertly executed. The thought and precision of documented ideas leading to a web project also seem to provide a simply elegant solution.

But, peer into the corpse of something organic and things become complicated. Is examining the innards of a web project that different?

Adrian L. 20 Oct 05

Regardless of software being designed for complex tasks, there’s no need for interfaces to be complex.

Though it’s been a couple years since I looked at the program Winamp, at the time its interface was chock full of needless curves and cool “bubbles” that coul be clicked on to reveal more curves and bubbles. I never understood why I needed all this functionality sitting there at the top level of the program getting in the way of what the software was designed to do: play music.

As far as I can tell, my 1986 Sony CD player pretty much demonstrated that I only need three buttons plus a volumne nob to play music. The iPod shuffle does it with 5 buttons.

Software should NOT model real-world applications. After a long time of paying attention, it’s become clear to me that the fundamental difference between a piece of easy to use, productive software and a piece of hard-to-use software designed to do the same task is a failure to design the application from the front to the back.

Too much interface design is butchered by working from the technical back to the user, instead of from the user and what s/he wants to accomplish forward.

neil 20 Oct 05

If every company took this assumption to heart when designing software, we would not have applications like Photoshop.

It’s all nice and tidy to try and draw connections between the physical world and software, but it’s like drawing comparisons between bicycles and automobiles: similar problems with a completely different set of variables.

Physical items have constraints that software don’t have, and vice versa. I really respect what JF and the crew have accomplished, but lately a lot of the stuff being posted here seems more akin to Jakob Nielsen-esque polemics than something based on a balanced world-view; there’s truth in what is being said, but it’s taking what works for a particular organization and assuming it will work everywhere.

Tom Jarvis 20 Oct 05

Einstein once said, “Everything should be as simple as possible, but no simpler.” Of course, for software applications, that depends on the context of the user. Those with simple needs will derive value from 37S applications, but will not likely derive similar value from complex applications, and vice versa. From what I understand about 37S applications, they serve an historically underserved market segment. If only the “simple” philosophy was adopted by more companies, it might improve their market share and profitability.

JF 20 Oct 05

it’s taking what works for a particular organization and assuming it will work everywhere.

Actually no. We don’t think what we’re saying will work everywhere. It works for us and we’re sharing it in the hopes it will work for others. We think the message of simple software is an important message that can benefit a lot of people. But we’ve never *ever* stated this is the only way. We don’t believe this is the only way. Never have. There are thousands of ways and this is but one way.

Shiro 20 Oct 05

Actually no. We don’t think what we’re saying will work everywhere.

True, you’re not specifically saying it will work everywhere, but you are alluding quite heavily to the fact that you think it is the best way to go. Comments like “Most software would be a freakish, Chernobyl-style mangled mess” says that most software isn’t doing it the “right way”, or your “simple” way.

Different software (and different physical objects) serve different purposes to their users. If a spoon had a thermometer, weight-scale, indicator bubble, and a few other things on it, some people may get use out of it, but it would more than likely be overkill. And in that respect towards software, I agree. There are programmes out there which do needlessly add tons of little things just for the sake of having them. But not all software (and physical objects) are needlessly complex. Look at the computers needed to run your software. They’re pretty damn complex, and aside from the people who trick them out with neon lights and whatnot, they don’t seem to be overloaded with things which are not needed. Complexity is not always a bad thing.

As such, your assessment that “if software was physical it would be so much simpler” would only be true if all physical things were also simple. I bet if you took the average Joe, opened a G5 in front of him and asked “Would you be able to figure out what it does by just looking at it?” you would find that most people would not know what each of the parts were and how they served their specific functions. Sure, they may know it’s a computer, just like most people would know that a piece of overly complex software was a word processor, or mp3 player without having the faintest notion as to what function each of the specific parts served.

So yeah, there are thousands of ways, but it comes off quite strong that you think your way is the best way, and that it can be applied almost globally.

Now…

To John O…

Yes, as a professional musician / producer, I have seen a great deal many mixing consoles. I even have a tiny one at home, thought it still has around 80 knobs and levers, and who knows how many LED’s! But my point was not about intuitive-ness of something, but whether or not it’s bad for something be complex. The front end of a mixing desk can be troublesome for some to figure out, especially if you have no idea what an AUX IN or AUX OUT is. But having worked with them for years has taught me that just playing with the front end is only a fraction of what is required with how to use one. You’ve actually got to run the cables, route MIDI (major pain) and make sure you have everything properly labeled (either old school - with tape - or new school - digital displays) to guarantee that you know which line does what. I don’t find those tasks particularly hard, but the setup is complex, and most people find it a daunting and non-simple task. But that is the nature of that beast.

So yeah, without training or certification one can learn how to use a mixing desk. I was never officially trained to do so. I’ve just been doing it for half of my life, so I learned via trial by fire. But I guarantee that you didn’t sit down at it and know how to properly produce with one within five minutes of sitting down at one for the first time in your life. Things get simpler (easier to understand) the more you deal with them. And more complex things require more time to get to know them such that they become simple (easier to understand).

Again, my point is that while I believe that “less is more” for many things, I don’t think it applies to all things. And the same goes for simple software. If all software were simple, easy-to-use, non-feature-rich applications, then I dare say that the internet wouldn’t be running around, photoshop would not exist, CG wouldn’t be in movies, video games wouldn’t exist, and Backpack and Basecamp wouldn’t have forums where people have to come to ask how to do “simple” things which seem beyond their comprehension.

Alex Bunardzic 20 Oct 05

‘Einstein once said, “Everything should be as simple as possible, but no simpler.”’

Einstein was merely stating the obvious. If you make everything as simple as possible, of course that it should not be made any simpler — because that would be impossible!

So you see, it’s a tricky proposition; don’t let dudes like Albert fool you.

Alex Bunardzic 20 Oct 05

Adrian L. wrote: “Regardless of software being designed for complex tasks, there’s no need for interfaces to be complex.”

Well, not so fast. You’re taking the side of ‘The Right Thing’ school of thought. Don’t forget that there is also the ‘Worse is Better’ school of thought, which advocates that, if the simplicity vs. complexity compromise must be made, the simplicity must go the the implementation, pushing the complexity onto the interface.

So the jury is still out…

JohnO 20 Oct 05

Shiro,

I think I see your misconception:

“If all software were simple, easy-to-use, non-feature-rich applications”…

You think simple, and non-feature-rich are mutally exclusive categories. As a side note, I understand Jason’s post about seeing software as physical objects is in relation to it’s architecture, not it’s UI (frankly because I’ve worked on some pretty frankensteined products). Basecamp is a simple product. It is hardly non-feature rich. It has writeboard, time-tracking, messaging with emailing integrated, nice to-do lists (the best thing it does IMHO), and people management with 3rd parties. Frankly that is complex: project management is a complex task (see The Mythical Man Month by Fred Brooks). They made it simple by clearly defining the relationships, and throwing out what didn’t fit. Everything the software *doesn’t do* should be handled outside the software anyway.

You bring up Flash, Photoshop, and 3D software. To make an analogy off what you said, you never were taught how to use the mixing board. You’ve done it long enough you know. I wasn’t ever taught how to use Photoshop, but I know how to get things done. Because it is a well-done, simple, feature-rich product. 3D software, much like your remote control, hides the stuff you don’t need to see.

There are always different learning curves. On the internet, you’re dealing with - primarily - text. No learning curve at all. In Photoshop, you’re dealing with pixels and color balance, slight curve. In Flash you’re dealing with symbols and timelines, slightly larger curve. When you program in Flash, different curve. In 3D, you’re dealing with raytracing math and vectors, large learning curve. The subject matter is what needs training in, not the tool to accomplish it! (Which fits nicely with your mixing board, it is set up simply to be able to use. The training that was needed it how to make something sound good.. not necessarily the board)

Shiro 21 Oct 05

But there are some tools which do need to be learned in order to use them properly, both physical and virtual.

JohnO 21 Oct 05

And the argument is that every tool should be self evident - in all possible cases - as to how to use it. To perform basic tasks with a tool, you should not need directions, the tool should inform you, through it’s design about how to use it. That’s the whole argument.

Shiro 21 Oct 05

I beg to differ. Not every tool needs to be self evident. If such were the case, then most techies couldn’t use the “RTFM” argument, now could they?

Arnold 24 Oct 05

That’s true you need to understand the tool so that you could use it properly.

dinah 30 Oct 05

Sorry to come so late to the party — but are we talking about software design or interface design?

Post a comment

(Basic HTML is allowed)

NOTE: We'd rather not moderate, but off-topic, blatantly inflammatory, or otherwise inappropriate or vapid comments may be removed. Repeat offenders will be banned from commenting. Let's add value. Thank you.