December 4, 2006
Anil Dash and I have the same job title: evangelist.
I share Anil's reservations about his job title, too:
You see, these days my business cards describe me as "Chief Evangelist". On the plus side, it's the first time in the history of the company that I've basically only had one job (though I still help out with as much stuff as I can), but on the downside, the title is f**king ridiculous. I hate the word "evangelist" as a description for people who advocate technology not merely because of its religious connotations, but also because it implies a degree of proselytization that I'd like to think I don't participate in. Most of the time, my job is really just simple education.
However, unlike Anil, I believe the religious connotations of the evangelist title are perfectly suited to the field of software development. Software development is a religion, and any programmer worth his or her salt is the scarred veteran of a thousand religious wars. That doesn't mean we need to be humorless jerks about it, of course. But to completely disavow the connection between religion and software development is dishonest. I say we embrace it. We're all disciples of the church of Von Neumann. Praise the lord and pass the ones and zeroes!
The title is a little ridiculous. My wife tells me that everyone laughs when she explains that her husband is a technical evangelist. Am I offended? Heck no. I think that's great. Laughing is the only sane, rational response to any kind of evangelism -- it means you have a sense of humor. Entertainment is a crucial part of being an evangelist. Without it, you're a sanctimonious bore. Good evangelism is always equal parts education and entertainment. Edutainment, if you will.
Of course, you'll only be effective as an evangelist if you can clearly communicate your ideas to other people. This is a critical skill, whether you have any desire to be an "evangelist" or not. As Joel Spolsky famously said:
The difference between a tolerable programmer and a great programmer is not how many programming languages they know, and it's not whether they prefer Python or Java. It's whether they can communicate their ideas.
It's questionable how effective you can be by writing code alone. You have to convince us how awesome your code is. You have to make us believe in the glory of that code. In short, you evangelize. And that means constantly cultivating those essential communication skills.
With apologies to Jeff Foxworthy, if you frequently find yourself entertaining people to effectively communicate with them, you may be.. an Evangelist. Take Marc Hedlund's experiences, for example:
I was recently asked how I run our development team. I said, "Well, basically I blog about something I think we should do, and if the blog post convinces the developers, they do it. If not, I lobby for it, and if that fails too, the idea falls on the floor. They need my approval to launch something, but that's it. That's as much 'running things' as I do, and most of the ideas come from other people at this point, not from me and my blog posts. I've argued against some of our most successful ideas, so it's a good thing I don't try to exert more control." I'm exaggerating somewhat; of course I haven't blogged about all of our ideas yet. But I do think of myself as Lobbyist-in-Chief, and I have lots of good examples of cases where I failed to talk people into an idea and it didn't happen as a result. One person I said this to asked, "So who holds the product vision, then?" and I replied, "Well, I guess I do," but really that's not right. We all do. The product is the result of the ideas that together we've agreed to pursue. I recruit people based on their interest in and enthusiasm about the ideas behind Wesabe, and then set them loose, and we all talk and listen constantly. That's how it works -- and believe it or not, it does work.
Like Marc, you may already be an evangelist and not even know it. And it really does work.
Evangelism is simply sharing your excitement and enthusiasm with other people in an effective way. If that makes you more entertaining and a better communicator, well, those are side effects you can probably live with.
Posted by Jeff Atwood
Oh, so since I have to campaign to get my company to listen to reason, like upgrading our OS to XP or upgrading our 10 year old source control system then I am an evangelist? Sweet!!!
I wish I could SMACK someone upside the head and yell "YOU ARE HEALED" to get them to listen.
Is that a young Jeff Atwood pictured?
Although I do bear a passing resemblance to the polyester leisure suit wearin', bible totin', twinkie lovin' youth pictured, it's not me. I lifted it directly from Anil's post. Great image.
It leaves a bad taste in my mouth. I think the synonym that comes to mind most readily is charlaton.
evangelist, noun: a person marked by evangelical enthusiasm for or support of any cause.
I would hate to have "evangelical enthusiasm" for a specific technology. I hope as an evangelist your cause is business value, and not the Microsoft stack or any other particular tool or platform.
As for religion, the best software engineers I've worked with were not _at all_ religious. Unless you define 'religion' to be 'relentless pragmatic pursuit of a good solution'. They didn't face software engineering as religion by a long shot. Linux, Windows, BSD-license, GPL, proprietary, FOSS, emacs, vi - whatever. Pros, cons, some better for this, some better for that.
That's partially why I think "evangelism" can be so damning. I'd rather take an objective, from-facts-to-conclusion type of approach any day of the week.
Evangelists are the creationists of software engineering. It does _not_ need to be a religion.
The church of Von Neumann? I a member of the a href="http://en.wikipedia.org/wiki/Church-Turing"Church-Turing/a! :)
Like too many other good words, 'evangelist' has suffered due to bad images of things called 'Christian' (disclaimer: I am one, but more in the vein of the 1st century church).
'Evangelist' is simply one who announces good news with the intent of inspiring those who have interest in what they say. That's all.
A 'teacher' on the other hand, is one who goes into the detail of instruction.
To lead, you must first inspire!
I like this definition, from Easton's 1897 dictionary cited at the link Gustavo provided:
a "publisher of glad tidings;" a missionary preacher of the gospel (Eph. 4:11). This title is applied to Philip (Acts 21:8), who appears to have gone from city to city preaching the word (8:4, 40). Judging from the case of Philip, evangelists had neither the authority of an apostle, nor the gift of prophecy, nor the responsibility of pastoral supervision over a portion of the flock. They were itinerant preachers, having it as their special function to carry the gospel to places where it was previously unknown. The writers of the four Gospels are known as the Evangelists.
It doesn't take skill, just enthusiasm!
Gustavo, sorry dude: eu (good) + angele (message) was also used in secular Greek.
On the flip side, 'inspiration' basically comes from in-spirit-action.
We are all (except for Richard Stallman) probably as much evangelists as we are engineers. Feelings, intuition and bad experiences leave us to judge and generally believe 100% in something. I.e. here are my 10 commandments:
- Tabs are NOT evil
- Java apps just feel plain wrong
- Linux for servers, windows for workstations
- Gnome over KDE
- Microsoft is NOT an evil empire
- Dynamic languages can be just as good as static ones
- We need both agile and waterfall
- More expressiveness yields more productivity
- There IS such a thing as too many options
- Screw VI/emacs, use a proper IDE
So I guess the lesson is to once a while, let your guard down and meet with your enemy and try not to attack or stab him/her in the back immediately.
"Like Marc, you may already be an evangelist and not even know it."
I know it. And you're right.
I think I'm an evangelist! I am more interested in other technologies than any of my colleagues at the last couple of places that I have worked. Over the last few years (I'm in my mid-twenties so still getting to grips with who I am growing up to be) I've found that my enthusiasm rubs off on other people quite easily when I believe in something. Geoff, I wonder if you have any tips for developing evangelical skills further?
PS - I love the ten commandments, nine of them are spot on!
Yes.. I'm an evangelist...
and I guess that everybody that read and write blogs about .NET is somehow an evangelist.
In my company there are other devs, but they are just "working"... I always asking myself how can someone work without passion of what he is doing...
People always laugh at me when they first see my MSN nickname (which is ".NET Evangelist").
It's actually a good thing that companies that want to sell new tools send people out to spread the word and show how these new tools can make old problems easier. Programmers do tend to develop flexibility-robbing recto-cranial inversions if they are not exposed to new ideas and methodologies now and again.
That said, I'd be happier as a "Technical Debunker", myself.
Interesting that you brought up how you were glad that you didn't exert too much control, as you sometimes argued against the company's best ideas.
IEEE Spectrum has an interesting article this month about the guy at Bell Labs who was part of the development of the transistor, yet basically killed Bell Labs' involvement in the integrated circuit:
Jeff, I agree with your points on communication, although I dislike the title evangelist and the term religious wars.
Software has nothing to do with religion, thankfully.
Software people can have strongly held opinions, but the crucial difference is that those opinions are based on reason, something religion rejects.
Plus, software people don't hurt one another.
I thought this was about ipods too. :D
I continuously get annoyed by this software evangelism thing.
Software development is NOT a religion, just like cooking is not a religion and building an automobile is not a religion. Your interpretation of the words 'religion' and 'evangelist' are not very close to the societal acceptance and understanding of those terms. I mean, sure you can SAY that software development is a religion and you can argue that it fits but you can also argue that a tomato is a vegetable, etc. etc.
I mean, as a software 'evangelist' what are you 'preaching'? The golden path towards happiness and enlightenment through software development techniques? What's next, the great software jihad? Software discrimination? Will Microsoft and Apple and Google erect churches and file for special religious tax exemptions?
Look, it's like using the words 'liberal' or 'conservative' or 'extremist'. You can apply those words to many situations but their definitive connotations remains clear. This need for branding and labeling is a little much. We turn out products, using other products, tools and techniques. Period. There are lots of products, tools and techniques to choose from. Some are better than others, and some are better for certain situations/people/etc. But when you combine all that stuff together you don't wind up with religion. Talk about how great your product is - ok. Push for new ideas and new methodologies - cool. But don't try to tell me it's religion.
One reason software is like a religion because nobody can really tell you if what you've done is "right" in any meaningful way.
With coding, the best you can hope for is to do something well. With so many different ways to effect a single outcome, it’s up to some very right-brained sensibilities to determine if you’ve met your goal, as there isn’t anybody (except [another more experienced developer]) who can tell you if you’re right or not.
You have to *believe* you're doing the "right" thing.
Imagine a (religious) evangelist walking up to strangers on the street and saying, "Hi, I'm an evangelist".
That will make a positive impression on those who already believe and a negative impression on everyone else.
That's how I feel when someone introduces themselves as a technical evangelist. It's as if they're declaring their determination to influence my point of view, without first asking what my point of view is or whether I have any interest in changing it. What's more, it suggests that they've never considered whether their approach might offend me. (As a competent professional, the suggestion that I need to be "evangelised" might indeed offend me - rightly or wrongly)
Regarless of one's views on the merits of evangelism (religious or technical), I think it gets the conversation off on the wrong foot to introduce oneself using the term.
I suspect some of the controversy around this term stems from different interpretations about what "religion" actually is. I'll offer two interpretations here, in no particular order:
(i) To some people, all religions are equally valid, and each person is free to choose the one which suits him or her best.
(ii) To other people, typically those with a strong faith, only one religion is actually true and it's details are not considered negotiable.
Sofware development is about choices between options, recognising that no one option is right in all cases, and that the final decision is always subjective. In otherwords, software development is similar to the first interpretation of "religion", above.
On the other hand, actual religious evangelists tend to subscribe to the second interpretation of "religion", in which only one choice is right. (That's why they care about evangelising those who believe differently.)
For most people, it is probably the second interpretation which springs to mind when they hear the word "evangelist". As Chris says, that interpretion is a poor analogy for sofware engineering, and I think both believers and agnostics would agree with him.
you know.. I've been thinking about this post of yours for a bit now..
and I think the better question is
'Why would you *not* be an evangelist?'
The way I see it, being an 'evangelist' (admittedly a semi-hype word) is all about the passion you share in communicating your ideas. Regardless of what you are 'preaching', if you speak passionately of *anything* you are indeed 'preaching'.
There's some sort of affinity with philosophy, politics (not the every-day sort of politics we are used to, mind you, but the kind of politics where people would step up, take great responsibilities and little rewards just because they felt it was the best way to improve their 'civitas') and, of course, religion (that's where we borrowed the term from, after all).
So, unless you are lacking passion, you are an evangelist.
Thus, is there any *good* reason to not be an evangelist ?
Those are good points. But they're not about people who are getting _paid_ to evangelise.
If someone speaks passionately about something for little reward, that's admirable and we'll respect their sincerity even if we don't agree with their views.
If someone speaks passionately about something because a big company is paying them to, is that the same thing? Is their passion equally genuine?
I've worked for some good companies, but none that I would genuinely speak about with the same passion that you'd see in a religious evangelist or the politicians you mention.
Err... Did you just call Anil Dash a humorless jerk?
I think it's an awful term. Yes, someone espousing some idea related to software ought to believe in what they are saying. But an evangelist grounds that belief in faith, not reason.
Similarly, I feel the analogy to religion is poor as well. A religion is not something a man wears like a hat, where he keeps a closet full of them for different occasions. Nor is a religion something to be tweaked according to your needs, although this undoubtedly happens in society. The very best will constantly look to refine their methodologies to fit the ever-changing world. Now suggest that a religion be refined in the same way and you will be met with contempt and disbelief.
Jon Udell just announced he's going to work for Microsoft. His title will be, you guessed it: Evangelist. No matter what his job title, a great thinker and great guy.
evangelist? no... dont want by ewangelist :?
On the plus side, it's a title people will REMEMBER. "Senior software engineer of blah blah blah" never really sticks, and most people stop listening to you. But Evangelist... now that's something that people typically want to know more about and will remember the next time they see you.
Plus, with a title like that, you're justified when you come to work in a robe carrying a scepter. Who else can get away with THAT?
Sheesh, sometimes people take you too seriously Jeff.
As a religious person AND a programmer, I LOVE the term "evangelist" because its exactly what people see nowadays, all negative images aside from what you see on TV.
There have been plenty of times where I've had to "hype up" some ideas for virtual machines, software libraries, or identity management solutions and it gets people interested without getting too "techobabble" on them either.
Keep up the good work. I'm a new reader here to the blog and had to toss in my 10 bits.