The Union Label

Last week was a political one. I spent a few days at the CCIA Open Source and Industry Alliance Caucus in Washington (more on that later), and a reception for the Open Resource Group (no URL yet).

At one point, I found myself vigorously defending a position that I wouldn’t have thought I held. Sometimes, a discussion leads one to a new realization (well, it happens to me, anyway). In this case, I realized the congruence between the motivations of the organized labor movement and the open source software movement.

As a movement, open source software has been about empowering individuals at the grass roots, by encouraging collaboration to achieve the goals, and resisting the unenlightened (typically large corporations) who would seek to prevent this. Strangely reminiscent of the labor movement. Unions are about empowering workers at the grass roots, by encouraging collaboration to achieve the goals, and resisting the unenlightened (typically large corporations) who would seek to prevent this. The goal of the open source advocate is better and cheaper software — the goal of the union activist is better working conditions and higher wages.

So, another way of thinking about this is that the open source movement is basically a union organizing movement for programmers.

Certainly, the venture capitalists may not see it the same way. And, certainly, the libertarian streak that runs through the open source community will take exception to this characterization (hence the vigorous defense I mentioned earlier). Still, those libertarians are working hard to organize a grass roots community to collaboratively build better software.

Some union sympathizers focus primarily on working conditions and wages — quality and value. As do some open source advocates. Some union sympathizers focus more on human rights and freedoms. So do some open source advocates. But that tends to be a schism of rhetoric, not objectives.

The next step would seem to be organizing the open source community by creating a dues-paying membership. The dues would fund the key activities in a stabler way than the current charitable contribution model. The Free Software Foundation took a step in this direction with the introduction of their Associates program. I joined. It is an opportunity to participate in funding the movement. I hope you join, too.


Who is "they"?

I received the following e-mail this week:

Dear ,

Your current monthly bill is now available at Log in, then go to My Account and select View Bill.

Your payment will be due approximately 10 days from the date of this e-mail. If you have chosen to have your Cingular bills paid automatically through our recurring payment option, your payment will be made for you in approximately 10 days. To make a one-time payment, log in and select Make a Payment.

Ordinarily, I suppose, receiving this would not have been noteworthy, except that I had canceled my Cingular service about two months ago (I had moved to an area with iffy coverage). No worries, I would just reply to the e-mail, and point out the mistake. Except, of course, for the following postscript to the e-mail:

Please do not reply to this e-mail, as it will go to an unmonitored mailbox.

I find it annoying to receive e-mail ( or visit a website ), where there doesn’t appear to be any way to notify people about a mistake. Why wouldn’t Cingular (or any company, for that matter) want to accept an e-mail inquiry or response? The alternative, as we shall see, is likely to be a phone call — more expensive for the company, and more frustrating for the customer.

Following the instructions in the e-mail, I logged in to the web-site, where I received the following page:

There is no account information available. Please call 1 800-208-3081.
For your reference, this is message number 4001.

Aha! Progress, of a sort. Now I have a phone number to call, where a human can respond to my problem. Noting, always, that had I been able to respond to the e-mail, it could have been queued for processing by the very same customer care representative — and I wouldn’t have had the added frustration of listening to the on-hold music.

Once I’m talking to the representative, things start to get more frustrating. She informs me that I don’t appear to have an account. I know this — the reason I’m calling is to encourage Cingular to stop sending me e-mail reminders to pay my (non-existent) bill. Ah!, she says. I’m afraid I can’t do that. “They” will have to do that.

“They”? Who is “they”? I ask. “They”, I am told, are the people who fix these kind of problems. Do “they” work for Cingular? I ask. Yes, “they” do. In that case, I point out, since “they” work for Cingular, and so do you, then to me, as a customer calling the customer care number, you all appear to be part of the same group.

There is a word in the English language for the “they” that includes you.

That word is “we”.

The customer care rep would have none of that. “They” were the only people who could help me. How could I contact “them”? I couldn’t. Could she talk to “them” on my behalf? No, she couldn’t. She might be able to ask her supervisor to talk to “them”, but she wouldn’t commit to it.

My guess is that the system that sends out the e-mail uses a different database than the actual billing system. There was a hiccup in the account deletion process, resulting in what the IT people call an out-of-sync. So now, somebody from IT is going to have to manually delete that record in the mailing list database, because the system that the care reps use probably checks the account against the billing system, and if it isn’t there, isn’t designed to look in the mailing list system. So “they” is probably somebody in IT. I guess.

The story has a happy ending. Even though I was getting error message 4001 (the representative had no idea what that meant — shouldn’t they have access to the list of errors? shouldn’t we?), I could still log in. And the menu item links beckoned. So I opted to “disable paperless billing”.

The result?

Paperless Billing Disable Confirmation

You have just successfully disabled your paperless billing. Either on your next billing cycle or the one after that, you will begin to receive a paper bill by mail.

If I guessed correctly, that will have the effect of deleting my ID from the list of people being e-mailed.

Way to go, “they”. I love it when the customer can resolve problems more effectively than the care rep. It means your website works. But I’d still consider how to allow e-mail responses to be monitored.

Then again, I wonder if I’m going to start receiving paper bills with nothing on them…

Who is a programmer?

After work, the question got asked. It came up in the context of another discussion about the relevance of Free/Open Source Software. Availability of the source code is probably only relevant to computer programmers. After all, if you aren’t a programmer, what would you do with source code? In which case, a freely copyable binary would be equivalent to freely copyable source code. The ability to do something with the source code (i.e. to create a derivative work), is something only a programmer could do. Strikes me as the definition of a programmer. Yes, I know that benefits might accrue to the non-programmer indirectly, but conceding that there are no direct benefits to most people doesn’t seem like a great debating point.

We know that only 2.4% of the population are employed in “computer and mathematical occupations”. Which would seem to put an upper bound on the number of people to whom Free and Open Source Software would be relevant. And any movement which can only possibly be relevant to such a small fraction of the population is going to have difficulty garnering widespread support, or even interest. Assuming, of course, that we restrict ourselves to professional programmers. There might be amateur programmers.

And so, we come to the real questions: who should be a programmer? Who should be considered a programmer? Is the correct analogy that the skill of programming is like the skill of reading and writing? An esoteric skill for most of the world’s history — practiced only by specialists — professional scribes — until, in the last few hundred years, we came to expect that everybody ought to be a scribe, or at least literate. Even if only a relatively small number of people read or write for a living?

Or, is the correct analogy that being a programmer is more like being a radio technician and learning Morse code? An esoteric skill which remains esoteric.

Is it more like being a driver (chauffeur)? Or a pilot?

Because, I fear that if it is the latter, then the Free and Open Source Software has more in common with the national association for Amateur Radio than the National Institute for Literacy.

This idea of universal computer literacy has deep roots. The work that led to the desktop computing environments we use today was motivated by that vision. Alan Kay talks about it at length here. An excerpt:

It started to hit home in the Spring of ’74 after I taught Smalltalk to 20 PARC nonprogrammer adults. They were able to get through the initial material faster than the children, but just as it looked like an overwhelming success was at hand, they started to crash on problems that didn’t look to me to be much harder than the ones they had just been doing well on. One of them was a project thought up by one of the adults, which was to make a little database system that could act like a card file or rolodex. They couldn’t even come close to programming it. I was very surprised because I “klnew” that such a project was well below the mythical “two pages” for end-users we were working within. That night I worote it out, and the next day I showed all of them how to do it. Still, none of them were able to do it by themsleves. Later, I sat in the room poindering the board from my talk. Finally, I counted the number of nonobvious ideas in this little program. They came to 17. And some of them were like the concept of the arch in building design: very hard to discover, if you don’t already know them.

The connection to literacy was painfully clear. It isn’t enough to just learn to read and write. There is also a literature that renders ideas. Language is used to read and write about them, but at some point the organization of ideas starts to dominate mre language abilities. And it help greatly to have some powerful ideas under one’s belt to better acquire more powerful ideas [Papert 70s]. So, we decided we should teach design….

In a more contemporary vein, this post talks about the importance of having designers and programmers working on the same text and the author asserts that

Designers are perfectly capable of understanding and manipulating constructs like <% for person in @post.whos_talking %> or < if @person.administrator? % > . While they will rarely be the originator for these fragments, they’ll surely be the manipulators of them.

Doesn’t manipulating code fragments make you a programmer? Of a sort?

So, even if we aren’t there yet, shouldn’t the Free/Open Source Software movements, aspire to universal programming literacy?

I do.