Serve or Control

Command the Machine

One of the reasons I love using computers is that, as a developer, the computer performs my wishes.

For most people, it wasn’t until the spreadsheet that the idea of a personal computer became really powerful. It was VisiCalc (and later Lotus 123) that gave business a reason to buy PCs.

And it’s no surprise that Excel is so heavily used today, even far outside of financial or arithmetical projections. Excel allows non-developers to “have the computer do what they want.” Excel allows people to command. They, not the machine, can choose what to enter, where to put it, what math (if any) to perform, and so forth.

The machine obeys them.

This is rarely the case in the software most IT subjects us to.

The Three Ring Binder

Go into any McDonald’s restaurant, and you know what you’ll get. The people follow the same script, for everything. The restaurants are often franchises, and the owners need to learn those things. Regimentation, repeatability, all leading to predictability and consistency.

That’s precisely what computers do too. The Three Ring Binder that holds all the programs that are followed in McDonald’s are no different than the programs written in a computer programming language — just different hardware. Human hardware follows them at McDonald’s.

Would you like fries with that?

Creative Self-Starters

Of course, developers and business people aren’t doing that sort of repetitive manual work. We’re doing creative work, whether creating sophisticated portfolios, creating software products, creating sales (anyone who thinks sales people aren’t creative hasn’t done sales) and so on.

We all expect to be empowered by the computers, that the computers will be tools enabling us to achieve our goals more effectively.

For developers, that’s even sometimes true. Developer software, such as editors, tends to allow us to control everything. The old joke is often true: Emacs is a great operating system but the editor sucks.

But think about sales people.

Thou Shalt …

Sales people run a Customer Relationship Manager (CRM) program.

Over the decades, I’ve extended and enhanced many a CRM. I had to, because in general, the people who run them are subject to the decisions of the people (management via contractors and consultants) who configure them. The software enforce the policies of the organization, after all.

Unlike the software for developers, the software for sales people doesn’t obey the sales people, it commands them. The people using it are not the ones in charge of it.

“Well, of course. The sales people have to obey policy.” Right. That policy, which is often in three ring binders.

There are policies, regulations, and such. I understand that. I’ve done many regulatory compliance systems over the years, and they are … interesting. Let’s say interesting.

But, there’s a difference between saying, “You need to report your sales by 4pm Friday in order to have your commission included in the weekly check” and “Every customer must have both a direct phone number and office phone number.”

What difference? The sales people punch in “999-999-9999” to “fill” any phone fields they don’t have that aren’t allowed to be blank. The programmers and analysts that make sense of the data use a convention to ignore that field when it’s “all nines” etc. In short, everyone is working around the software’s restriction.

Would you like nines with that?

It’s Actually Worse

Things like all nines are at least easy. In reality, many high-touch sales people maintain their own records independent of the CRM, often in (surprise) Excel. Why?

Because they have their own way of learning the needs of their customers and fulfilling those needs. Because in fact sales people are creative people and they aren’t interchangeable cogs.

Often, the best sales people end up filling in the bare minimum into the CRM so that they meet their obligations per the Three Ring Binder. If they can figure out how to “trick” the CRM into being useful, they will. But often, they just keep their “real” records outside the official software.

I’ve been on more than one commission and CRM project where the sales people say (outside the hearing of management of course) “It would sure be easier if we didn’t have this software.”

I had the privilege of working with an organization where the owner decided enough was enough and asked me to get the sales people what they really needed.

Double Requirements

First, the owner sat down with me and explained everything the software needed to do for his sales people. I dutifully captured all his concerns.

Then I went to talk to the senior most sales person and asked her what she wanted out of the computer to help her. She brought in the others. They all had a bitching session and told me what the stupid computer needed to do to help them.

I compared the lists between the owner (management) and the sales people — almost nothing was in common between them. So I threw one list away and wrote the software using the other.

The sales people loved it, and I cut almost 20 minutes/day from their work (the 20 minutes which had been spent doing “paperwork” for ordering samples and filling out commission details on sales).

The sales people were happy, the owner was happy. Win for all!

I don’t believe, to this day, the owner realizes I ignored every one of his instructions.

What did I actually do? I let the sales people save records that were invalid and marked as invalid. I let them override every “do at most once” requirement (such as re-sending samples) without requiring approval. I used a modified soundex to pre-filter their leads so they didn’t trample each other. I allowed them to see who was assigned to each sales person so they could check for themselves if they worried that a name seemed familiar.

Instead of the computer being the master, they became the master.

And it Gets Worse

I’ve done analysis at organizations where the people using the software from IT mock it almost ritually.

I was at a client where a web-app had a “fast search” feature. Every time the people would invoke it, they would loudly proclaim to the room, “I’m doing a fast search now!” Everyone would pause (in a room of high-paid people!) and then when the machine finally gave its results (often more than 30 seconds later, sometimes minutes) they would announce “And done!” to uproarious laughter in the room.

I was at an organization where every week a group of four office people accepted dozens of spreadsheets via email, and copied them into other sheets, so that they’d get certain calculated fields, then copied the results from that spreadsheet (as values) into a batch input tabular webpage (that required calculated input fields instead of doing the calcs!) and only then could they submit the data for batch processing.

That would have been painful in the 90s. By the 2010s? Really? Have we learned nothing?

Developers Suffering the Same Fate

Of course, developers always control the computer. At least on development teams we privileged masters of the computer software don’t suffering this fate.

Or do we?

Well, we have processes such as Scrum. Are they computer enforced? Absolutely at the large organizations.

But, we don’t have to work around those process support tools, right?

It’s amazing how many tasks are PoC because there’s not a “proper” way to mark them. But, hey, showing lots of PoC means doing research which is a good thing, right? Right?

For all the powerful project tracking tools, from Rally to MS Project to the simpler ones like Trello — every capable project manager I worked under managed to have Excel with the important information that allowed them to support their team.

It seems that project managers and programmers don’t want to ask about fries either.

But Shouldn’t Machines Enforce the Rules?

All real systems inevitably have exceptions where the person “on the spot” must make a judgement call.

Las Vegas casinos (yeah, a shout-out to where I live) have the means to comp (to make something complimentary) as a way for their people to handle upset customers. I’ve been comped many times for mistakes on orders in the restaurants, for instance.

They aren’t perfect at it (I wrote this article about an experience bad enough that I stopped going to a casino over it) but the servers generally have some leeway. And the people who care for whales (the gamblers that spend enormous amounts) have equally enormous leeway.

Contrast that with how often you’re on the phone or in person and someone says, “Sorry, the computer won’t let me do it.” Or, “Sorry, the computer is slow today.” Or, “Sorry, the computer is down.”

In some cases, they can request a manager to authorize doing what the machine won’t allow. In some cases, well, the customer just doesn’t get served.

There are efficient markets: humans don’t involve themselves in the electronic trades of a high frequency trading algorithm on the NYSE or NASDAQ.

Most of us aren’t living in such a world and people still interact with people for many of their normal affairs. The computers that don’t let the people serve their customers are not being part of the solution.


Organizations need processes and procedures. Without them, they can’t function.

At the same time, organizations need their people to work at their best — business is hard enough already without people having to work around bad software.

If we are going to build software to delight our clients, their workers, and their customers, its not enough to understand what they want. We have to allow them to do what they need and ideally as they wish.

If the job someone can do is so rote that it can be fully controlled and regulated by a piece of software, it can also be replaced by software. And today, such jobs are in fact being replaced by software.

Strong statement, perhaps, but there are starting to be robot fast-food restaurants. There are computers that are able to create legal briefs. Robots are being built to load and unload trucks.

I build programs that write programs…not to replace developers, but because it increases what a single developer can do. Every developer does similar, not necessarily creating express metaprogramming tools, by using compilers for general purpose languages. Compilers write the bytes that computers can execute.

Human virtues are why humans are involved. Don’t put the Three Ring Binder and “The Souless Machine” above your customers, your team members, or even yourself.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s