Confessions from a Developer Evangelist

  There have been a few individuals that are frustrated with the fact that some blog posts do not continue. I might say “Step 1 of X” and there is no Step 2. I apologize for that. I’m flattered that someone is appreciating the purpose of that blog post. It is  a red flag for me to continue because it is obviously pertinent.

Don’t stop sprinting

  There are a few reasons that my blog posts may not continue. The first reason is so obvious it sounds like a cop out - “enough time.” Pink Floyd said it best “And you run and you run to catch up with the sun, but it's sinking, racing around to come up behind you again.” As an evangelist you can’t possibly imagine how busy my life is. It takes tons of preparation to face dozens of developers for hours at a time. It is hugely awesome responsibility to entertain someone sitting in the audience for hours at a time. Demos should work. There should be practical code. Prepping for audiences is probably the number one reason I have to let go of certain posts.

It is about the code

  But I know in my heart that developers want to see code. That’s right – just code. My goal in presenting is just to show code as much as possible. However, let’s be clear on one thing – PowerPoint rocks. It is beautiful software – so efficient. Newer features require less Photoshop, like shadowing, cropping, even mirror reflections. <QuickDigression> You hear people say, “No PowerPoint!” That's nonsense. Saying you are against PowerPoint is like saying you are against reading. I need to show high level diagrams to introduce a concept before diving into code. The main reason PowerPoint may fail a presenter is if the presenter had too many slides and too many words, and was just reading the slides to the audience. After a while, you’ll hear snoring and see bobbing heads. </QuickDigression>

I need it by next week

  Evangelists get pulled in all types of directions. I’ll get a call from my manager who might say something like, “Bruno, I need you to prepare a 2 hour talk on OData.” It doesn’t matter that I don’t know OData. I need to crank up the dial, work nights and weekends to get it done. Presentations are never done. They are work in progress up to the point of actually hitting the stage. The exception is if you’ve already done the talk a few times. But even in the first couple you need to tune your deck. So even if your presentation is done, that doesn’t mean you are done. That’s because you need to book travel. Someone in another region may need help. Or a key event might be a long drive or flight away. Now I have to book travel. Time to search for hotels that are near the venue. And because you are booking late, fewer flights are available. Now you are fumbling with awkward flight schedules. But I can’t forget to finish my expense reports. And then there might be some corporate training I must finish. That means I have to dump a blog post I am writing. It may mean I put my family on the back burner. My area of focus might change as well – due to product announcements. That is another reason why posts get dropped. When new products are announced, Evangelism is the front line infantry firing up products before customers, discovering new features, installing additional SDKs, and review training kits.

Evangelism is no joke

  In my humble opinion, evangelism is one of the most difficult jobs there is. There is never any whitespace. There is ALWAYS something to learn. For example, I consider my self very knowledgeable about cloud computing and Windows Azure. Well, I was up until yesterday. Microsoft just made some major announcement at PDC2010 about new features in the Windows Azure Platform. Now it’s my job to learn the changes and tell the world. And what makes this even more crazy is that I am expected to know the whole developer story and be able to speak to a number of technologies, tools, frameworks, SDKs and so on. I could spend the next 10 paragraphs explaining all the things this great company is building, from WP7 to Silverlight to WPF to HTML5 to jQuery to Entity Framework to WCF and on and on.

No Magic Fountain of Knowledge

  I can write code in C, C++, VBScript, C#, Visual Basic, Java, PHP, and even Assembler (x86). I guess you can throw in others, PASCAL, dBASEe etc. But that doesn’t mean everything is automatically easy for me to learn. I have no magic “Microsoft fountain of knowledge” that I can drink from. I have to “Bing it” and read blogs and experiment – just like you and everyone else. Code samples have a shelf-life and as frameworks, SDKs, and APIs change. Samples I find may not run or even compile by the time I get to it. And new internal builds of software may require me to install unreleased developer tooling. That is a challenge because I still need to blog and present on current technology also.

No better place

  I love being in the hot seat – sitting in front of dozens of curious engineers who ask impossibly difficult questions. I love my job. I think of Joe Walsh’s song, “Life’s been good to me so far.” I get letters from fans that tell me very flattering comments. It is humbling. It inspires me to be better. There is always room to be better. I want to make developers happy. That’s what I do. Let me say this. If I had my druthers I would blog all day and night. I love doing it. I love making videos, working with Camtasia, Adobe Premier, Photoshop. Blogging also let’s me store up presentation materials that I can deliver in person. I have so much un-blogged knowledge that it makes me very frustrated. I have so much killer video content I could make if I had some help or some more time. It would be so satisfying to take some of my best presentations and make them available to others. I’ve spent a lifetime doing this in person.
  Please be patient with my blog posts and thanks for reading. I am very thankful you read them. And if you have any cool code that you would like to blog about, give me a shout out. Let’s write a post together.  Bring your video equipment to Microsoft San Francisco and we can spread the word and show how to have fun writing software. Bruno bterkaly@microsoft.com.