Questions and Answers: Evangelism and Building Production Code

Since my announcement that I was joining Microsoft as a Developer Evangelist, I’ve received a number of questions via this blog’s comments and email that I thought were worthy of turning into their own articles. This article is an answer to a couple of questions that Avdi asked in the comments to the article The Journey Begins:

While I’ve left behind the world where MS matters from a development perspective (except inasmuch as we must cater to IE6/7 foibles), I’m not a reflexive MS-hater. I still think .NET, C#, and related tech is one of the more important evolutions in recent development trends.

I have to ask, though, from the point of view of a working developer: will you be using MS tools to develop production software? And if not, will you feel comfortable evang-er, advising software that you yourself aren’t forced to deal with on a day to day basis while meeting deadlines?

"With you always": A woman working at a computer, with Jesus helping out

Let me tackle the first part: Will I be using MS tools to develop production software?

The short-term answer is “no”. For the next little while, I’m going to have my hands full between getting familiar with Microsoft’s developer tools and evangelizing to the largest target audience I’ve ever had.

I will be coding all the while. In the beginning, it’ll be mini-projects for my benefit, written in the spirit of “I hear and I forget, I see and I remember, I do and I understand”. Then, it’ll be example code for articles and presentations. Then, larger examples written with the intent that at least a few developers will take that code and incorporate it into or use it as the basis of their own projects.

And finally, at some point, it is my hope to eventually use the Microsoft tool skills I pick up to eventually work on a full project. Not every Microsoft evangelist does this, but guys like my buddy John Bristowe, who came to the Developer and Platform Evangelism group from the world of production coding, still contributes code to real projects. Having come from that same world, it’s my hope to do the same.

Me, in the "Byte Club" video on b5media

And now, the second part: Will I feel comfortable evangelizing software that I myself am not forced to deal with on a day to day basis while meeting deadlines?

Absolutely. In fact, I’ve been doing that for about five years already.

I’ve been writing about Ruby and Rails since I started the Tucows developer blog The Farm (which has since been retired) back in 2003 and Global Nerdy in 2006. Both blogs either have been or are considered to be quite authoritative on Ruby and Rails. During those five years, how long have I worked on a production Ruby or Rails project? Three months, and that project was cancelled when all the developers jumped ship. Even though the amount of time I have spent on Ruby/Rails production code makes is five percent of all the time I’ve been writing about it, this blog’s stats and the feedback I’ve received online or in person says that what I’m doing is of value to people who writing living, breathing production code.

I wrote full-time production code for eight years, and can call on that experience. Better still, some of that code has been in use for a long time. In this world of ephemeral software, especially in the age of web applications, I’m very proud of the fact that my longest-lived codebase, which I wrote back in 1998, was the basis for an application that was in production until a couple of years ago, in software that sold for $12,000 a seat for the full version. (Quite fittingly, I wrote it using Microsoft’s Visual Basic.)

As for understanding how present and future tools will be used in real-world production situations, that where my people skills will come in handy. Part of the job involves talking to developers and finding out what works and doesn’t work for them. I can then help in all sorts of ways, from coming up with solutions to giving their feedback back to Microsoft. Tech evangelism is two-way: I speak to developers for Microsoft, and at the same time, I speak to Microsoft for developers.

On Going Back to Evangelism

Joey deVilla chatting with Zed Shaw

Over the past year, I’ve been giving some serious thought as to what I wanted to do. You can see this in my article from last year, Assrockets and Opportunities, which was my attempt at an answer to the question “Did I want to become a full-time coder or do technical evangelism?”

In the end, I think I was asking the right question, but not phrasing it the right way. It should have been “What do I love and excel at, and what sort of work will get me there?”

I love writing software. There’s nothing like the feeling of crafting something and seeing it work; it’s even better if other people find it useful. At the same time, I’m also a showman at heart. My Myers-Briggs personality type is “ENTP”, where “E” is for extrovert, a relative rarity among programmers (Tog on Interface cits research saying only 15% of programmers are extroverts). I figured that it would be a waste if I were to ignore this aspect of myself when figuring out how I spend half my waking life.

Hence tech evangelism, a job that lets me maximize my talents. I get to write code and get to be a showman and communicator at the same time. I also get to “look up” and try things that I might not be able to try if I had to keep my nose to the production code grindstone all the time. Best of all, I feel as if I’m getting paid to do my hobby. If you can find work that makes you feel like that, by all means, grab on and don’t let go.