Theoretical vs. Actual Functionality

By Deane Barker on May 19, 2006

The functionality of software exists in two dimensions: theoretical and actual.

Theoretical functionality is everything a piece of software can do. Actual functionality is what you’re actually going to use. The gap between what a piece of software can do and what you actually use it for is something I’m arbitrarily naming the “functionality usage gap.”

In desktop software, Microsoft Word has probably the biggest gap between theoretical functionality and the average actual functionality a user gets out of it. Word can do some amazing things, but it generally operates at maybe 5% of it’s theoretical functionality.

Fact is, most people use Word like a big typewriter. Fully 95% of Word users could get by just fine (probably better) with Microsoft Works. If not for the lack of spellcheck, a lot of people could just use Wordpad.

In content mangement, workflow is way, way oversold and over-hyped. The functionality usage gap is bigger on this than any other feature, I think.

When I was working with Documentum, their system came with a workflow editor that looked like Microsoft Visio. You drew boxes and linked them together in bizarre and arcane ways – it was so theoretically functional that when it came time for me to do a simple, serial workflow one day (Person A submits, Person B approves), I couldn’t figure it out.

Ektron is the total opposite. It has “approval chains,” which are simple serial workflows. Someone submits, and the content floats up to an approver (or a group – any member of which can approve), then to another, and another, etc.

When I first got a look at this, I remember thinking, “This is ridiculously simplistic. How do they expect to sell this?” But you know what? It works perfectly. It works because 99% of the workflows in most organizations are serial – they go from A to B to C to published (and I would say that 90% of those are just one stop – Person A submits, Person B approves, and it’s published). The gap with this is very small.

Software sales reps “exploit the gap.” They’re very good at scaring people into thinking they might need this theoretical functionality sometime in the future. Sure, serial workflow works now, but you’re going to need a 180-step, multi-dimensional, Flux-Capacitated workflow sometime in the future anyway, so you don’t want to paint yourself into a corner, now do you?

Additionally, customers simply like knowing that the power is there. It’s the same reason people buy Corvettes and SUVs. Most of them never need to get to 60 m.p.h. in five seconds or go off-road, but they love the idea that they could if they wanted. Having that option – that power in the reserve – makes them feel good. Knowing that you can create a master document with 100 sub-documents is pretty cool, even if you’re just writing a letter home to Mom.

I’m suddenly in the mood to rebel against the functionality usage gap. My experience with Ektron workflows has really opened my eyes to what I need and what I don’t, and I’m wondering where else in my software library I’ve paid for theoretical functionality I’ve never used and probably never will. You?

Comments (9)

Taylor Hughes says:

It’s important for applications to have powerful functionality that maybe not everyone enjoys. I think the key is exposing the right things off the bat and making the rest to naturally expose itself with use.

The problem with Word is I need a 40-pound manual on the thing to get what I want. A Comp Sci grad student and I were working on a programming project last month, and when we got together to draft the final proposal in Word, we exchanged some nifty Word tricks: he taught me how to insert a page break instead of just hitting enter a bunch of times (how amazing!) and I taught him to hold Alt when dragging an image to allow for more exact positioning.

Word just isn’t easy to use for anything besides standard-format writing, even for power users. It’s not that there’s too much functionality, it’s that nobody can figure out how to use it!

The contrast is something like AdiumX for OS X, where it’s great out of the box and only gets better with age. The more time I spend screwing with it, the more I figure out. And the program just gets better and better. Now I can’t use anything else for IM – the other programs just don’t have all the functionality that Adium does.

Sauron says:

“In theory, there’s no difference between theory and practice. In practice, there is.”


Dave says:

The more time I spend screwing with it, the more I figure out. And the program just gets better and better.

I find that with most apps, but it definitely does not hold true for everyone. People who are intuitive learners tend to pick up the finer points of a piece of software as they continue to use it and tinker with it. Others learn to use a piece of software through rote memorization of doing this to get that result.

The staff of graphics folks I work with tend to be more of the former; give them a little time with a new app or a new version of a familiar app and they’ll figure out better ways of getting things done. I also support some of the PC users for my employer, and some of them do ok, but most have to be shown several times how to accomplish something new to them, and will continue to ask for help. Throw a new version of Word or Outlook at them, and anything that’s been moved throws them off for weeks.

I?m suddenly in the mood to rebel against the functionality usage gap.

I’m with you. I’ve been shopping for a new RIP and imaging system for my department, and it’s amazing how many outfits want to sell you the end-all software that could never, ever be mastered, and have dozens of features that’ll never, ever get used (and if you try, it’s likely to be half implemented.) Give me a simple one-trick pony, or even half a herd of them, and I’ll be happy.

Brian says:

Sometimes you have to wonder whether workflow is required at all. Most of the time it’s superflous to the actual business process. Many people find it easier to send word docs around, then send it to an IT person to put on their website. For most people, it’s more important to revert changes to a website.

Coolguy says:

I was looking through computer catalogs to see what new computer systems were coming out on the market a few months back and I stumbled on the best and worst example of theory vs functionality abuse. Reputable OEMs selling towers with 64bit processors and good ol’ 32bit windows. It makes me wonder... Is there a single employee of HP, Compaq, or Toshiba competent enough to know the differences between 32bit and 64bit processing (like the one digit difference in hex). I doubt it.

Chris says:

For the longest time I used PhotoShop exclusively for scanning and resizing photos, and it did a very good job. Talk about that functionality gap.

These days I do use a much larger percentage of its features, though.

Of course, I also used Visual Studio 6.0 exclusively for writing C++ console apps for about a year and a half.

Jonathan Peterson says:

Nice, I think from a product management point of view, I like expressing it as a ratio even better, especially if you use the cost to build a feature. Sure it will be a bit subjective, but still meaningful – if 80% of your project features only cost you 50% of your budget (as is often the case when building web applications using packaged or open souce applications as starting points), you?d better be damned sure that you build exactly the right features in that other 20%.

Netstormer says:

I think the gap you speak of isn’t necessarily a bad thing. If a Corvette and a Ford Focus cost the same but the Corvette used a little more fuel, I’d buy the Corvette. Like Chris’ example above of using Photoshop to simply scan & resize photos, I don’t see a problem with that if it cost you the same time and money as something with less functionality.

`Feature creep’ isn’t a major problem unless it starts interfering with what people actually use it for, by diverting attention/work away from core functions or confusing/slowing down the user. I use LaTeX for reports, essays, and documentation. I’ll probably never need to write mathematical formulae or even embed a graphic, but if I ever do I can go look it up. After all, those extra features don’t drag me down, only use more hdd space (but still less than msoffice).

SasQ says:

And here comes plugins :-> Make a small but extensible core and support all extra features as plugins. Then everyone would get what he/she want, no more no less.