Open Source Software, Self Service Software

January 22, 2009

Have you ever used those self-service checkout machines at a grocery store or supermarket?

self service checkout

What fascinates me about self-service checkout devices is that the store is making you do work they would normally pay their employees to do. Think about this for a minute. You're playing the role of the paying customer and the cashier employee. Under the watchful eyes of security cameras and at least one human monitor, naturally, but still. We continue to check ourselves out. Not only willingly, but enthusiastically. For that one brief moment, we're working for the supermarket at the lowest possible pay scale: none.

That's the paradox of self-checkout. But to me it's no riddle at all: nobody else in that store cares about getting Jeff Atwood checked out nearly as much as Jeff Atwood does. I always choose self-service checkout, except in extraordinary cases. The people with the most vested interest in the outcome of the checkout process are the very same people that self-checkout puts in charge: me! How could it not work? It's the perfect alignment of self-interest.

I don't mean this as a dig against supermarket employees. They're (usually) competent and friendly enough. I should know; I worked my way through high school and part of college as a Safeway checker. I tried my level best to be good at my job, and move customers through my line as quickly as possible. I'm sure I could check someone out faster than they could do it themselves. But there's only one me, and at most a half-dozen other checkers working the store, compared to the multitudes of customers. It doesn't scale.

If you combine the self-interest angle and the scaling issue, self-service checkout seems obvious, a win for everyone. But self-service is not without issues of its own:

  • What if the item you're scanning isn't found, or can't be scanned?
  • Some of the self-service machines have fairly elaborate and non-obvious rules in place, to prevent fraud and theft. Also, the user interface can sometimes be less than ideal on the machines.
  • How do you handle coupons? Loyalty cards? Buying 20 of the same item? Scanning the wrong item?
  • The self-service stations are lightly manned. The ratio between employee monitors and self-checkout machines runs about 1:4 in my experience. If you have a problem, you might end up waiting longer than a traditional manned checkout.
  • How do you ring up items like fruit and vegetables which don't have UPC codes, and have to be weighed?
  • What about unusual, awkwardly shaped items or oversize items?
  • Customers who have trouble during self-checkout may feel they're stupid, or that they did something wrong. Guess where they're going to lay the blame for those feelings?

There are certain rituals to using the self-service checkout machines. And we know that. We programmers fundamentally grok the hoops that the self-service checkout machines make customers jump through. They are, after all, devices designed by our fellow programmers. Every item has to be scanned, then carefully and individually placed in the bagging area which doubles as a scale to verify the item was moved there. One at time. In strict sequence. Repeated exactly the same every time. We live this system every day; it's completely natural for a programmer. But it isn't natural for average people. I've seen plenty of customers in front of me struggle with self-service checkout machines, puzzled by the workings of this mysterious device that seems so painfully obvious to a programmer. I get frustrated to the point that I almost want to rush over and help them myself. Which would defeat the purpose of a.. self-service device.

I was thinking about this while reading Michael Meeks' article, Measuring the true success of OpenOffice.org. He reaches some depressing conclusions about the current state of OpenOffice, a high profile open source competitor to Microsoft Office:

Crude as they are, the statistics show a picture of slow disengagement by Sun, combined with a spectacular lack of growth in the developer community. In a healthy project we would expect to see a large number of volunteer developers involved, in addition - we would expect to see a large number of peer companies contributing to the common code pool; we do not see this in OpenOffice.org. Indeed, quite the opposite. We appear to have the lowest number of active developers on OO.o since records began: 24, this contrasts negatively with Linux's recent low of 160+. Even spun in the most positive way, OpenOffice.org is at best stagnating from a development perspective.

This is troubling, because open source software development is the ultimate self-service industry. As Michael notes, the project is sadly undermining itself:

Kill the ossified, paralysed and gerrymandered political system in OpenOffice.org. Instead put the developers (all of them), and those actively contributing, into the driving seat. This in turn should help to kill the many horribly demotivating and dysfunctional process steps currently used to stop code from getting included, and should help to attract volunteers. Once they are attracted and active, listen to them without patronizing.

Indeed, once you destroy the twin intrinsic motivators of self-determination and autonomy on an open source project, I'd argue you're no better off than you were with traditional closed source software. You've created a self-service checkout machine so painful to use, so awkward to operate, that it gives the self-service concept a bad name. And that's heartbreaking, because self-service is the soul of open source:

Why is my bug not fixed? Why is the UI still so unpleasant? Why is performance still poor? Why does it consume more memory than necessary? Why is it getting slower to start? Why? Why? The answer lies with developers: Will you help us make OpenOffice.org better?

In order for open source software projects to survive, they must ensure that they present as few barriers to self-service software development as possible. And any barriers they do present must be very low -- radically low. Asking your customers to learn C++ programming to improve their Open Office experience is a pretty far cry indeed from asking them to operate a scanner and touchscreen to improve their checkout experience. And if you can't convince an audience of programmers, who are inclined to understand and love this stuff, who exactly are you expecting to convince?

So, if you're having difficulty getting software developers to participate in your open source project, I'd say the community isn't failing your project. Your project is failing the community.

Posted by Jeff Atwood
142 Comments

I'm a big Wal-Mart fan, but while I lived in Los Angeles I had to go to Target instead, mostly because of the checkout experience. Although the local Wal-Mart had plenty of self-checkout terminals, if anything those lines took longer than the two open clerk-served registers. One thing I know: asking the average Angeleno to operate a self-checkout is akin to asking her to operate the Space Shuttle.

Jess on January 23, 2009 12:02 PM

Open Source project management is still project management.

Many, many closed source projects fail because of bad management, so it shouldn't be shocking that many, many open source projects fail because of bad management as well.

You just don't see the leftovers of the closed source ones.

Open source, by it's very nature, has to leave it's corpse laying around when it dies.

There are a boatload of new-gen open source tools nowadays. http://launchpad.net/ is amazing compared with the dark days of CVS and a listserv. It's basically an open source project management workflow system, with integrated source control and bug tracking. But the workflow is the key thing there, as it sets up a loose set of project management tools -- because that's the key problem that kills most open source projects. Combined with the nature of a distributed vcs -- that any individual hacker can branch the code, and have their own branches hosted on launchpad beside everyone elses -- is a huge, huge step forward.

Things are getting better, so stop with the hand wringing.

Therac-25 on January 23, 2009 12:30 PM

Jeff,
Whenever you discuss open source you make it sound like good programmers should be drawn to open source projects like moths are drawn to light. Open source is a great concept and I've contributed a few things over the years, but donating time to programming projects is out of reach of most people who have families to support (and spend time with).

The other issue you seem to have overlooked about OpenOffice and other open source projects is the 80/20 rule. When a programmer has gotten his code to the point where most things function correctly (he's proven it can be done), going the final mile and fixing all of the bugs usually requires someone very dedicated to the project or $$$$$$$.

Larry Bank on January 23, 2009 12:37 PM

Then there's Oregon and New Jersey where you cannot pump your own gas.

Talk about closed-source!

Steve on January 23, 2009 12:43 PM

@Mark: http://letmegooglethatforyou.com/?q=latex

Going back to the subject. I think the problem with OSS and paid software is similar to differences between scripting languages and compiled languages.

OSS is free and if you want you can hire people to fix it. But is it cheaper to hire people or to but the software and support? How is it similar to scripting and compiled languages? It may take you longer to write software with compiled language but do you actually save the time? Using scripting language requires more testing than using compiled language.

naughty_mike on January 24, 2009 2:16 AM

Lower participation in a large open source project may be an indicator of a much larger trend: lower interest and participation in programming in general.

Ever since programming was commoditized and market was flooded with programmers with road-side training, earning a decent living with coding became a bit more challenging.

Since I do not live in my parent's basement, I have to spend considerable amount of time *working* (billable time) and networking (with potential clients).

Rest of the time is dedicated to my family. Open source is a great idea but since it came closer to a concept of working for free (as in commoditized), it's appeal suffered as well.

You can argue that this view is completely wrong but consider that even the loudest proponents of open source contribute relatively little (except for their blog posts about open source).

Healthy open source projects, such as FreeBSD and Mach, have not only support in the community but also in the industry.

OpenOffice looks cool but it is really not necessary. If you want a free word processor, Google Docs will probably work. If you are serious about writing, you probably own a Mac which has iWork. Similarly, you can get MS Office for next to nothing (when bundled) with a PC.

BugFree on January 24, 2009 3:23 AM

Correction: replace it's appeal with its appeal. My apologies.

BugFree on January 24, 2009 3:24 AM

`Josh: incidentally, the Ubuntu Developer Week (which has just ended yesterday) is focused on teaching newcomers, using IRC. You can find the logs at https://wiki.ubuntu.com/UbuntuDeveloperWeek . But I agree that there's still need for much better tutorials to guide a newcomer's first steps.

oliver on January 24, 2009 3:57 AM

Yeah, i've been using google docs just fine... it works decently well to read .doc files, and you can convert them reasonably to pdf's with that... and edit everything online with it.

Otherwise, i'd just use latex and some wysiwug latex editor.

ApeInago on January 24, 2009 4:04 AM

I'm not a open source programmer but if I was I wouldn't spend my time on building or maintaining a word processor.

Theo on January 24, 2009 7:10 AM

I have visited America once and I was really amazed that a supermarket employee puts your bought goods in your bags.

The amount (gallons) and different kinds of ice cream are really amazing too. And the vegetables are kept wet with little showers. When you hear 'I'm singing in the rain' a little shower starts and wets cabbages.

Theo on January 24, 2009 7:18 AM

Steve-O on January 23, 2009 11:12 AM touched on what could be the real issue here. Maybe Open Office is good enough. I appreciate this may sound like heresy to software engineers, but the idea that people need to buy a new word-processor every three years has been invented to keep the money rolling in. Open source doesn't need to play that game.

Polonius on January 24, 2009 8:27 AM

You left out one important point in your description of self-checkout:
it's great because almost no one uses it -- there is never a line.

If there was a huge line at the self-checkout and no line at the regular checkout, then I would certainly choose the regular one.

miffed on January 24, 2009 8:33 AM

if anything those lines took longer than the two open clerk-served registers.

True, self service lines at Walmart do take longer than they do at places like Target. It's the clientele. Unfortunately, the majority of people in my area that shop at Walmart are the lowest of the low. They can't figure out how to open an automatic door let alone how to use an automated checkout machine.

It pains me to watch the countless fatties at Walmart lean on the scale wondering why the system is asking them to please remove the big honkin' half side of beef that they must have forgotten to scan.

Sorry to be so mean, that literally just happened to me yesterday. The lady in front of me was about 300lbs, yacking on her cell phone, and too stupid to realize that she was supporting herself by leaning on the scale. Ridiculous!

Matt on January 24, 2009 8:37 AM

OOo is a failure because the concept of word processing is stupid.

Everyone is buzzing MVC (rails/django/catalyst/symfony...) and no one ever thinks of the stupidity of mixing style / presentation / processing in a single application.

Computer power is amazing and typography rules are still poorly respected even though they ensure a better readability. Fonts are poorly drawn, and printing of a doc varies greatly from computer to computer. Word processor is the obvious shame of computer science because it has never and willl never do properly what it is designed for ! It is the shame of UI, because it gives a misleading feeling of comfort with the pityfull What You See Is What You Get while it should ensure that you will get what you MEAN.

That is the reason why I am coming back to latex. It might not be sexy, but
1) it worked,
2) it works,
3) it will still works in a decade.

jul on January 24, 2009 8:57 AM

What is this latex you speak of? I have never heard of it?

Mark on January 24, 2009 9:10 AM

my take on self serve in shops.

You want to use it because its cheaper, pass some of that saving on at the till and maybe I'll consider it. until then I'll use the staffed checkouts. if there is no benefit to me I'd rather pay *the same amount* and provide employment for someone.

plus never yet found one that just worked a problem on a staffed checkout may be a problem, but it isn't *my* problem.

only time I tried to use one it got to the point the watcher said I needed to start again since it had voided the whole list. told them no thanks and walked out. until they have my card details, not my stock, not my problem.

also abandoned a trolley or three at a local supermarket when its packed like a zoo with only 25% of the checkouts open. sorry my time is worth more than the few quid I'll save there, got the bits I actually needed (as opposed to wanted) from a local shop on my way home. net effect? the amount spend on food that week halved _and I still had decent food_

as for open office, well running OSX if I want to use the legit version of office 2003 pro I have I can always fire up a virtual machine, generally use open office though. good for basic document editing. needs to be 100% compatible with macros though

Claire Rand on January 24, 2009 9:41 AM

The most irritating experience in open-source is when you submit a patch for a bug, and the patch gets rejected because the project's administrators don't think the bug really exists (or for other, political reasons). This happened when I submitted a patch to fix a SIGSEGV bug in Cscope. To this day, Cscope (except my personal copy) crashes if it reads a source file that contains a NUL byte.

Daelin the Cruel on January 24, 2009 10:28 AM

I'd be careful of reading too much into Michael Meeks's analysis. When you realize he's working on a a href=http://planet.go-oo.org/fork/a of the OO.org project, you understand that he's trying to write a eulogy for OO.org. Numbers on Go-oo are surprisingly absent.

Jeff, the fact that you completely mangled his end quote completely undermines your creditability here. He didn't link to openoffice.org, but to the fork his group started in response to a perception. This adds an entirely different nuance to the analogy.

When the self-service station at the Sun supermarket was too slow and crappy, they started their own store using the blueprints with the city.

jldugger on January 24, 2009 10:37 AM

@Mark

LaTeX is a document markup language. Excellent for math formulas.

Theo on January 24, 2009 10:56 AM

good bread/b

John on January 24, 2009 11:34 AM

This is the epitome of the supermarket chain mentality. The technology in the picture looks like it should be out of a 1970s PARC promotional shot. It's a touchscreen, one-armed bandit coin counter and some scales. What are they smuggling underneath the conveyor belt? Gold bullion?!

These self-service things don't scale either, at least they can't until the manufacturers start combining the three separate machines inside them into something, oh I don't know, the size of a PC. Then you could have more than two of them in a 1000-customer-capacity supermarket.

Tobermory on January 25, 2009 2:13 AM

You bring up some very interesting points here Jeff. However in Sweden , the stores having Self-Checkout have made it a defactor-standard to have someone standing by the machine at all time.

Especially at Ikea, every self-service machine got 1 employee. Imagine if every developer got their own personal helper for understanding purposes and other valueable information. The outcome would totaly differ.

There are no long quees because as soon as there is a problem, you have the employee there to help you, maybe you get this problem, 1, 2 or three times But, after the third time, you know what you are doing wrong. Then the slef-checkout-system works perfectly.

Since the special cases you pointed out, where the self-checkout system fails, is taken care of by just, teaching the users how to interact with the product.

Filip Ekberg on January 25, 2009 4:44 AM

Egads, I HATE the self-serve lanes. Why? Because you are esentially paying MORE for your groceries when you use self-serve.

Rocketboy on January 25, 2009 6:16 AM

I did a discrete event simulation on self-service checkout back in 2004. For all cart sizes and item numbers, waiting in a line of 3 people or less will be quicker than checking yourself out at the grocery store. Why? Trust.

The store allows its employees to scan items very quickly because they trust the employee to scan all items and move all items towards the bag. The store does not allow customers to scan items very quickly for the opposite logic. You must first put all your groceries on the scale to the left of the machine, and then after scanning, put your groceries on the scale to the right of the machine. This process adds time.

So what makes the difference to us at customers? Waiting with nothing to do. We would rather take longer to check out because we are active members of the check out process then idle in line and read crappy magazines, albeit juicy celebrity gossip.

Lindsay on January 25, 2009 10:09 AM

The problem with self checkout on a busy day is that people are SLOW! Even the slower store checkers are still 10 times faster then people trying to figure out the self-check.

Rob on January 25, 2009 10:15 AM

I agree with Rob - anyone try to use the self serve checkout at Home Depot? In my experience, most human to machine interfaces are poorly designed. It takes time to program the human in the way the machines interface is exposed. That’s why store cashiers will always be faster operating the machine then we will ever be.

I am not interested in trying to learn how to use someone else's poorly designed human to machine interface, which includes the self serve checkouts. I came to the store to buy shit, not learn how to use the abomination of a self serve checkout system, I get enough of that already as a software programmer – which I get paid to do.

Mitch on January 25, 2009 10:59 AM

I like your point on vested interest.

It makes it work.

On the complexity thing, there's still this funny balance between man and machine. How's the saying go? ... To err is human, but to really mess it up it takes software.

I think the great divide is still pattern matching. People are still the best pattern matchers, though there's been some interesting ground there.

I think the cutting question is always about intrinsic value vs. market value. Just because we can, when should we? That's where intrinsic value comes into play. Just because we can, why will we ... or won't we? That's where market value comes into play.

J.D. Meier on January 25, 2009 11:36 AM


I'd say what inhibits my desire to contribute to OO.o more than anything else is the advent of Google docs. I haven't used OO.o once since Google docs went live.
-Greg

Greg on January 26, 2009 2:01 AM

Ok, can someone please explain to me the logic behind the scales in the bagging area? I mean, what's this supposed to achieve? If I was going to steal something, I wouldn't bother scanning it, would I? And the area is only small, so if you've got more than a couple of bags worth, it's a pain to juggle things around, when you could just be loading up a bag in your hand.

I find it hard to believe that a programmer thought this up :)

pete on January 26, 2009 2:41 AM

Why would anybody waste their time downloading, using, coding for OO, when you can use Google Documents and Spreadsheets for nothing. For most regular users, it has all you need. Also, Google has copied the look and feel of Office 2003, which I think most users prefer to the hideous 2007 Ribbon interface.

jonnygold on January 26, 2009 4:06 AM

I'm not sure I get it, but yes, I also think stagnation is just natural evolution for Open Source.

I had to start thinking that way after dealing with open source for about 10 years.

In the long run, it always failed to meet my requirements.
First time I ran The GIMP, it was absolutely working great, each version added more and more usful stuff. Then suddendly it went dead, and now I have a newer version doing this and that BUT feels ankward for my just-above-mspaint needs. I do not perceive it as much powerful nowadays.
Last was inkscape. Great vector stuff for my very basic needs. New version added a plethora of bugs and the few new features are of little use, some seem to be not standard SVG and cannot be properly used in a real, collaborative work.
OO.o is just the same. There were some improvements not-so-recently but not even close to the amount of things it should have been improved. Since last Office version really pissed me off, I'm somewhat happier with it but come on...

And I could say the same for X and the linux kernel (pretending your vidcard to be just a dumb framebuffer has some retro feel).

Other things open source failed to produce: a decent AutoCAD clone, a proper 3D engine as integrated as commercial ones...
Proper system documentation...

Quoting:
Kill the ossified, paralysed and gerrymandered political system in OpenOffice.org.

This is troublesome for opensource in general. I generally agree with Xepol.

I've spoken with a kernel contributor about the state of the graphics infrastructure, it gave me about 2 minutes. It then spoke with another guy about the good ol' days DEC Alpha was DA BOMB for almost half an hour. It was at least 10 years I didn't see an alpha-based system on consumer market (it is my understanding they're out of production since a few years).
Nowadays Win32 has moved in the direction of managing GPUs as processors. Apple is possibly ahead. OpenSource is not... but... when some mantainers figured out IPC was too slow to be used in some crypto apps, they didn't fix it... they slapped it to the kernel ASAP, surely they didn't want to work with the ugly mess that are packages (as the generic distribution is basically still stuck to libc and some kind of shell).

So we see this... strange thing in which some contributions are scrutinized in each subtle detail and implication, while some others seem to just go thuru a fast lane. Maybe this doesn't happen, but feels like it's happening and it obviously kills the contributions.

MaxDZ8 on January 26, 2009 12:45 PM

If you want to know why Open Office is having problems recruiting, just try building it.

Just once.

Go on, try. I'll wait..............................

See?

Fix that, first, then try the other stuff suggested.

Jim D on January 27, 2009 5:35 AM

Ok, can someone please explain to me the logic behind the scales in the bagging area? I mean, what's this supposed to achieve? If I was going to steal something, I wouldn't bother scanning it, would I? And the area is only small, so if you've got more than a couple of bags worth, it's a pain to juggle things around, when you could just be loading up a bag in your hand.

Come to think of it, if you scan something and then don't put it in the bagging area, you're not stealing it. If someone wanted to bag a stolen item, then they'd put it in the bagging area without scanning it, which can easily be distinguished from scanning something without putting it in the bagging area. Halting the process when the machine detects an increase in weight without a scan makes sense. Halting the process when the machine detects a scan without an increase in weight is completely retarded.

Also, why are one or more of the self-checkouts routinely switched off? Do they break down that much? Because unless it's broken, there's no reason in the world to have one turned off, any more than you'd regularly leave your Web server switched off for any reason other than a breakdown or upgrade.

Ken on January 28, 2009 12:54 PM

I like the article. I agree with open source project needing to make it easy for developers...however there are C++ developers in this world, even some that know Java and C# as well. Not so hard to pick up languages once you've been through

Jeff, you really need to learn C/C++. Not so you can program with it...so you can learn the supporting lessons it teaches you. I am always interested in learning new things as I'm sure you are too. Maybe you should help out open office as a learning experience.

cooljonboy111 on January 29, 2009 1:14 AM

Nice Article.. first part is quite funny

Preeti Edul on February 1, 2009 4:13 AM

My question is, why the hell do you want to use a text writer to do text layout? Or text formatting? At work, I use InDesign, InCopy, and notepad for text work. I type it up in notepad, copy/paste to InCopy for formatting, and then check-in to InDesign for layout work. Much more intuitive, especially for graphics-heavy documents - IMNSHO, office applications of any stripe are horrible with graphic elements.

rndmnmbr on February 5, 2009 1:58 AM

In other news, President Obama is looking into Open Source: http://news.cnet.com/8301-13505_3-10147920-16.html?part=rss

Jason on February 6, 2010 11:12 PM

@Daelin the Cruel:

cscope 15.6-r3 [1] happily handles this file:

http://simoncion.wargameweaver.com/code/cscopeSegfaultBug.c

My command line was:
cscope cscopeSegfaultBug.c

Either the bug has been fixed, or I am doing something wrong.

[1] Latest available as of this writing from: http://cscope.sourceforge.net/

Simon C. Ion on February 6, 2010 11:12 PM

Arent you making an analogy (OSS and checkout machines) based on the wrong Open Source Project?

Why did not not pick GCC or Linux?

They are both incredibly successful and have practically created new business models (Google) possible.

Imagine Google running Microsoft software on all their compute nodes?

Jason on February 6, 2010 11:12 PM

Very nice post. I really enjoy the reading. I come here from the google while searching for some good article.Thanks

http://grocerycouponslist.com

Lumbunguang Oke on June 8, 2010 11:23 AM

>
The REAL issue with F/OSS, which a few comments have hinted at in passing, is what developers seem to forget about behind the F/OSS flag of Get the Source and Fix It Yourself Faster than Proprietary - you're putting maintenance and bug fixes on your customers. While this might work for enterprises that can afford to hire developers to write and maintain this software, the premise falls flat on its face once you reach the consumer market.
>

That's why "wrapper" corporations, like Red Hat, are successful. Selling FOSS is not an oxymoron. That's also why Vim and Emacs are so successful: do you know any NON-programmer that uses them, or any (*NIX) programmer that HASN'T?

On the other hand, programmers are more likely to contribute to what they use. So, if I don't use a project (like GNOME, for example), I wouldn't contribute to it. OpenOffice, as so many have noticed, suffers from this.

Adam Marchetti on July 19, 2010 6:09 PM

«Back

The comments to this entry are closed.