Monday, May 5, 2014

Purist, Pragmatist, Iconoclast, Egotist

We would laugh if a person built unflyable aircraft because they weren't aerodynamic purists. We wouldn't call them pragmatists.

We would scoff if a person put kool-aid in their gas tank because they were not "fuel purists." We could hardly call them pragmatists.

We would ridicule a person who ripped the crotch out of his pajama pants so he could wear it as a business shirt, being a fashion "pragmatist"  and not a haberdashery purist.  We would not agree that person was being pragmatic.

"We don't follow our own system; because we are pragmatists."  It's a funny kind of argument.

It's a pretty low threshhold for "purist" to use things as they are intended to be used.
Pur-ist: a person who insists on absolute adherence to traditional rules or structures, especially in language or style.
It's a pretty cockeyed definition of "pragmatist" to refuse to do things that are easily done and work for most human beings every day, just because you aren't really interested.
 Prag-ma-tist: someone who is practical and focused on reaching a goal.
Maybe the confusion comes from another definition entirely:
i-con-o-clast: a person who attacks cherished beliefs or institutions
Perhaps it is the perfectly healthy counter-culture revulsion against seeing a process held it too high a regard, especially a technique or method which has become popular in the past decade or so.  Disdain for popular icons and cherished techniques is perfectly fine (your author has a bit of this) but it is not to be confused with pragmatism. 

Sometimes calling attacks on techniques and methods "pragmatism"  betrays a belief that techniques and methods are born in a lab, in an ivory tower, by theorists who have never written a line of code, but who have some theory they're trying to push on the working class so that they personally can become rich.

That's an interesting theory. It is just entirely wrong. The XP practices came from an actual project, where some of the finest programmers in the world were engaged to produce a real product. They were not in an academic environment far detached from reality, nor were they in a low-pressure greenfield. They had real work to do and getting it done was not optional.

Likewise, Lean Startup, and scrum likewise came from trenches where they found a system that let them (predictably, repeatedly) avoid certain failure modes.

Deming's work likewise is well- and repeatedly-proven. He didn't make it up over a reefer break from a job as a teacher's aid. He got to the core of issues, and his work spawned all the things we think of as Lean today.

To disdain systems that work is not pragmatism. It might be iconoclasm, or it might be egotism, but it's not pragmatism. 

e-go-tist: a person who is excessively conceited or self-observed; a self-seeker
The egotist wants to please himself more than he wants to achieve a goal or support a cause. He will do what makes him feel safe, comfortable, at ease, powerful. He does what promotes his personal agenda over the needs of his team/family/organization.

An egotist will do what makes sense to him and is pleasing in his own  sight whether it works or not, and will not bend where his own will is threatened.  

The biggest difference between a pragmatist and an iconoclast is that a pragmatist will do something that works even if it is popular, or even revered by others.

The biggest difference between a purist and a pragmatist is that a pragmatist will do something that works even if it is not strictly part of the system.

A pragmatist will do what works even when it pains him to do so, provided it helps him reach his goal.

If you are going to be an iconoclast or an egotist or a purist, then by all means be what you want to be. But please don't wrap your personal biases in the virtuous flag of pragmatism unless you're really willing to do what works best despite what others love or hate and how you feel about it.

If you choose to be a pragmatist, have a care because there is risk there as well.

If you want to be a purist, that's okay too. It is a valid choice. Expect to be engaged in the healthy pastime of discovering where pure theory works surprisingly well, and where it needs a little refinement. I think most purists turn pragmatist over time (the opposite not being true).

Pragmatism is only a virtue in service of higher virtues and longer-term goals. Focused on the immediate,  pragmatism turns inhumane.

I find there are often higher purposes than reaching our immediate goals. This belief is what draws me to the idea of anzeneering. We can make the world of work more human, more humane, safer, and more efficient in terms of value/time if we take care of each other.

Is that pragmatic? Is it true? Watch this short clip:

Late Addition

I was recently reminded that there is one more category to consider here. Sometimes people say "pragmatic" when what they really mean is "expedient."  

Expedient always seems like "pragmatic" at the time but it is not a pure good either, just as pragmatism and purity are not pure good. Teams that live on pure expediency tend to find that their code base and their team dynamics all degrade over time. It is expedient to defer fixing problems and broken relationships, because it gets on with the work we're doing now. It's expedient to skip testing and revies and pairing to get the code out faster, but this way lies disaster. 

On the other hand, not moving the code base forward is also not a kind of goodness. We need to get code out in front of people. We often do "the simplest thing that might possibly work." We can rush a new feature to market to get feedback and determine if we should kill or expand or improve it. Some expediency is a very good thing. Pure expediency at the cost of other virtues is not. 

I should be more cognizant of those who practice pure expedience