I love community! This weekend I have the pleasure to participate in a very unique event called RIAPalooza.

From the web site:
“Join your fellow RIA professionals for RIApalooza, a invaluable two day event aimed at exploring and promoting the development of Rich Internet Applications.

RIApalooza promises a platform agnostic and “PowerPoint-Free” zone, which means we are going to forgo the boring marketing pitches in favor of talking technology. RIApalooza is about creating Rich Internet Applications; how to go about building them and what is being built.

For more information, visit the event website.”

I wanted to go to RubyConf but this was too good to pass up. This two day mini-conference is being organized jointly by community folk from both the Microsoft and the Adobe communities – in fact, if you check out the site you’ll see that both Microsoft and Adobe are sponsors. That’s almost unheard of for a community event as the communities have not historically collaborated on this type of event.

Things kick off on Friday night with Dave Meeker, a user experience strategist, talking about the state of RIA. Saturday starts off with Tim Heuer and Corrina Barber, from Microsoft, talking about creating differentiated user experience and designer/developer collaboration. Then there’s a smattering of talks from a number of different community folk on Flex, Silverlight, RIA in general, design and more.

At some point, I’m not sure when it’s scheduled for, Michael Labriola (who happens to be listed on the Adobe Experts site) and I will be giving a joint session on best practices in building a Rich Internet Application (RIA). I’ve not actually met Michael in person but we’ve talked on the phone and collaborated about the talk over email. Thanks to Larry Clarkin, Dave Bost and James Ward for hooking that up.

Personally, I’m just looking forward to seeing what the community and the industry thinks of the state of RIA, especially as I’m betting my career here at Microsoft on it as the RIA Architect Evangelist for Central Region.

So, if you can’t make it – I’ll be blogging as much of it as possible. You can also follow RIApalooza on Twitter for up-to-date information!

Prepare Yourself To Give a Great Talk

Curt, Greg, and the longest play I've ever seenPreparation is key in giving a great presentation. Apollo Ideas has a great blog post about the speech spectrum. There are basically 4 ways that you can give a talk.

*Warning – gross generalizations ahead*

1. Completely written out word for word and read of the script. For this, you can think about your basic graduation speech.
2. Just outlined but not rehearsed. I see these too often. This is where someone has had an idea for a talk but is not able to prepare properly. Or someone got a deck from someone else and presents it cold without really making their own. In this category, there are a lot of sales decks and user group talks done. It’s a shame because they could be so much better.
3. Outlined and well rehearsed. This is where the majority of the good conference talks lie.
4. Completely written out and well rehearsed. In this category, you can put the better political speeches or talks from really high end conferences such as TED. Think JFK’s Inaugural Address, Reagan’s “Evil Empire” speech or any other political speech that motivated a nation.

I’ve heard the argument that you don’t want to sound “too rehearsed”. However, the real danger is coming off as unprepared or reading from the script. Either of these are monumentally bad compared to over-preparing. Really the “too rehearsed” script is the one that you’re not willing to deviate from when there’s a good question or unexpected audience reaction. I’m striving for that right blend of well prepared and rehearsed contrasted with the ability and willingness to improvise.

You can also equate these with musical performances. Singing in church, while often beautiful, is often far from a professional band. But if you look at Big Bad Voodoo Daddy, Great Big Sea, Harry Connick, Jr. or any number of other groups that put on an amazing show. That show is completely scripted and rehearsed until people are ready to drop to prepare for getting on stage. Yet, nobody complains that they are “too rehearsed”.

I know that I’ve gotten lazy in the past and have neglected this preparation in the past.

How to Prepare

Know your subject. First and foremost, you have to know what you’re talking about. Or at least know what you don’t know. Honestly, one of my favorite talks was at the first Day of .NET. I was on a call with Jason Follas who was coordinating speakers and he asked me what I was talking on and I said “Something cool and ASP.NET”. So that became the talk. I had no slides, no code, no preparation. I just got on stage and asked the audience to ask me questions. I loosely organized that into an outline and started talking. It was great but I could only get away with it because I knew my topic, ASP.NET, as well as I did. I had been doing leading 5 day training sessions on ASP.NET for several years so I knew the ins and outs of the technology extraordinarily well.

On the other hand, I’ve seen speakers get up and say that they are an enthusiast verses an expert (nod to Alan Stevens and Michael Eaton) and I think that’s awesome. They are stepping up and stretching themselves. But, they are not getting up blind and pretending to be an expert. They state very clearly what they know and don’t know. 

Know your audience. I tell very different jokes and even use a different cadence depending on who is in my audience. If I’m talking to 100% technical people, I can tell jokes about management or process or self deprecating humor about geeks. If I’m talking to people in the south, I relate to the cooking, fishing, hunting and other cultural things that I grew up with in Arkansas. If I’m in Ohio, I don’t mention Michigan if I can help it and vice versa. 🙂 Know the team rivalries, local economy and other hot buttons. For example, in Michigan, I don’t mention unions. In Houston, I don’t even pretend to know anything about aeronautics or say anything about gas prices.

How receptive will your audience be to your message?
Are they “ready for action”? If so, they just need to be motivated into action. You can bring out the big brass marching band and getting everyone singing the fight song and stomping their feet. It’s a lot of fun to give these speeches.
Are they supportive? If so, then you need to clearly lay out the arguments and call to action.
Are they neutral? If so, then you need to persuade them to your side. This is accomplished through solid information and personalizing the message to the audience in front of you.
Are they hostile? Here you need to understand the FUD (Fear, Uncertainty and Doubt). This is a tough thing to do because the balance of dispelling the FUD and not attacking is a fine line.

As a Microsoft Evangelist, I’m VERY often in the situation where I’m speaking to a non-Microsoft friendly crowd. It’s not often overly hostile, just not friendly.

Give your talk out loud. Two weeks ago, in preparation for the West Michigan Day of .NET, I was writing a new talk. I knew roughly what I was going to say. I had the deck pretty close to finished and was just polishing things up. But I had dinner with Dan Hibbits and decided on a lark to run through my deck once with him. He didn’t even have to say anything but as I went through my pitch I realized that major parts of the talk didn’t work. I immediately restructured the talk and gave a much better talk the next day. I would have realized that about 15 minutes into my talk if I had not practiced it out loud with Dan the night before. Practice in front of the mirror, or run through your talk in your head as you’re on the airplane or in the car on the way to the venue.

The call to action here is simple. Set yourself up for success by preparing to give a great talk. The better prepared you are, the better the chances are that you’ll get your message across and really knock it out of the park.

* Update – Thanks to Bill Wagner for pointing out a clerical error or two on my part… Fixed now *

Technorati Tags:

PDC2008 Professional Developers Conference October 27-30, 2008

clip_image001This is a conference that I’m not going to miss this year. At MIX08, Ray Ozzie laid out early glimpses of what we’re going to see the rest of the year leading up to PDC. Not long after, the Live Mesh Community Technical Preview was released. It’s the beginnings of the realization of Ray’s S+S vision and the future direction of Microsoft.

But that’s just the tip of the iceberg as far as what’s coming down the road. Far more of this roadmap will be revealed in October.

Who Should Attend (or. The PDC is for YOU)

The PDC is designed for leading-edge developers and software architects. If you’re interested in the future of the Microsoft platform, you’re responsible for the technical strategy in your organization, or you’re a highly skilled developer who likes to delve deep into the heart of the platform, then the PDC is for you!

PDC2008 Professional Developers Conference October 27-30, 2008

ALT.NET Geek Code Generator

Get Microsoft Silverlight


Last year (December, 2007) I had the honor and privilege of being invited to participate in the ALT.NET Leadership council in NY. I blogged about that here. This generated a large number of comments and a ton of conversations.

I was unfortunately, due to health reasons, not able to attend last month’s ALT.NET conference in Seattle. Some of my friends in DPE, like Peter Laudauti from New York. He’s posted a picture of the session board at http://blogs.msdn.com/peterlau/archive/2008/04/19/alt-net-open-space-seattle-schedule-grid.aspx. There were talks on IronRuby, DSLs, Mocking, Scaling Agile Teams, Test Driving Silverlight, Diversity, Pairing, F#, Funding Open Source Projects and many more great topics. I really wish I could have been there.

So, what is this ALT.NET thing. Really, it’s about about alternatives in .NET. It’s about listening to a multitude of sources of information and making an informed decision about the way that you’re going to do development. The guys that are at the ahead of this movement are heavy on Agile practices. Most of them are proponents of BDD (BDD for the TDD head), Refactoring, ORM (Object Relational Modelers) and so on. They lead with process and then find tools that help them get their jobs done. Sometimes that’s a different language, like Ruby, or a different IDE plugin, or a different source control system. But none of these tools, platforms, etc. should get in the way. They should lead to better process.

Are we talking about throwing out the current spiritual leaders in the .NET world? No… Jeremy Miller wrote a great article on CodeBetter.com called “We need ALT.NET To supplement the traditional .Net Leadership” that addressed the reasons behind it all.

Honestly, I don’t care what you call it. I agree with the fundamental principle that we should investigate many different ways of getting things done and make informed decisions. So, with that in mind, look for coming announcements about the Agile Summer Camp (hint, we’re actually going to go camping… 🙂 ).

And if you like, check out Hanselman.com for his ALT.NET Geek Code Generator

West Michigan Day of .NET

I was an honored to speak at the West Michigan Day of .NET (WMDoDN) last weekend. I did two new talks, even though only one of them was scheduled. Brian Prince had been doing a great “Soft Skills, Not Just for Humans” talk for a lot of different user groups and Day of .NETs. It’s a talk that’s been met with great success and acclaim. It’s point is to help the attendees grow in their careers as much as they do in their technology space. It’s a great session and I wish that I had thought of it first. Brian, very unfortunately, got sick at the last minute and couldn’t make it so I pitched in and gave his talk. It was a lot of fun. As Dan Rigsby points out in his blog post, I wasn’t as polished as Brian was but I did a decent job. I really need to hire Dan to come take notes in all of my presentations – check out the notes he took in mine and then go read the rest of his posts, like the ArcReady post and so on.

Since it’s my presentation – I don’t feel bad pasting Dan’s notes here (The sub bullets are from me in this post):

  • Mentoring: Always have a mentor.  In fact get 3+. Josh attended the toastmaster’s club to find speaking mentors
    • I’ll add here that this is the #1 tip that you can take away.
  • Manage your Career: You are your business.  Your employer just happens to be the person paying you to do your job right now.
  • Creativity: Like myself Josh doesn’t have a CS degree and it does give us a creative edge because we think outside of the box.  This is true for everyone.  Stay creative and think in other ways.  Keep a log or use something like OneNote or a notepad.
    • I use personal WIKIs. Got that tip from Jim Holmes (no relation but I’d claim him if I could)
  • Brain Storming: Josh asked the question, “If you have an infinite supply of bricks, how would you raise money for your user group, school, or church”.  The audience threw out some of the standard responses, but
  • 3 Illegal Topics to Talk About: Sex, Politics, and Religion – don’t talk about these at work, just don’t do it, unless the setting is totally appropriate.
    • AMEN!
  • Don’t Assume all People Above you are Idiots: Sometimes they aren’t the smartest people, but there is a reason they have their position.  They are bringing something to the table and at the very least have power and control.
  • Communication Skills: Communicate like a human, not like an alien.  Know your audience: geek talk is ok only if all people are geeks.
  • Know when to say “I don’t know”: It’s ok not to know everything, and if you give wrong answers, you lose all respect.  Don’t be an encyclopedia, be the index.
  • Ask Open Ended Questions: If people just answer Yes/No you never really learn much
  • Don’t Take Reactions Personally: People don’t always mean what you think.  Especially in things like emails.  Some people come off more rigid than others as well.
  • Be an Active Listener: Don’t have distractions, ask smart questions, don’t multi-task in your head.  Take what a person says and rephrase it back to them, and if they can confirm that, then you can answer the question.  Also avoid filler words, enjoy the silence.
  • Take Notes: Notes don’t have to be a distraction, but write down things as much as you can.
  • Tape Yourself: learn to find the filler words in your presentations and how you can improve yourself.
  • Avoid Bad Language:  There is no need for it.
  • Integrity & Honesty:  always tell the truth and remember that its hard to get respect back.
  • Everything you know today will be obsolete in 2 years: which is true from a technology standpoint, but soft skills will always be with you.  So eat like a bird and poop like an elephant.

Again, thank’s Dan for those great notes.

After that, I did my Architecting for the RIA which morphed into a best practices talk. It was the first time that I’ve done that talk, but I really dig it so you should expect to see it more often. I’ll get the slides posted relatively soon.

Michael Eaton did a walk-through of LightReader which is a Silverlight RSS Aggregator that he and I are working on. To date I’ve given a lot of architectural advice, but I’m planning to spend some time digging in and helping build out the skinning and so on over the next couple of weeks. Feel free to pitch in.

It was great to see all the enthusiasm in the past couple of Day of .NETs that I’ve been to. I love this community and how it’s grown over the past 6 years that I’ve been active in it. (Wow, has it really been 6 years????)

32 Ways to Keep Your Blog from Sucking by Scott Hanselman Presentation

A while back I posted about Scott Hanselman‘s 32 Ways to Keep Your Blog from Sucking post. At some point later, I created a slide deck to tell the story. Since then, I’ve given the presentation a few places and Scott even borrowed the deck to do a presentation to a number of the Developer Evangelists in the US.

Anyway, here’s the deck that I created…

See the original post at 32 Ways to Keep Your Blog from Sucking by Scott Hanselman

Changing RSS Feeds

image Ok, that’s a lie – I already moved my feed a LONG (not quite a year ago) time ago.

My new feed is http://rss.joshholmes.com/joshholmes.

But in an effort not to disrupt everyone, I’ve left my old RSS feed in place. This is not hard to do but unfortunately, those that are still subscribed to the old feed make it difficult to leverage some of the reasons that I moved the feed in the first place.

I moved it for a number of reasons

  • Allows me to do a little bit better job of statistics and the like (it’s actually being hosted by another service that does that for me)
  • Allows me to change out my blog engine or host with relative transparency
  • Allows me to do some interesting things with caching or offloading to a separate server
  • And I’m sure that there are other good reasons as well

Do me a favor, if you get a chance and move your RSS subscription if you’re still subscribed to the old feed.

BTW – for those of you who are still subscribed to the old feed – Thanks for sticking with me this long!

Joining the Lounge by Infozerk Inc.


It’s been a long time coming but I finally decided to put a few ads on my blog. Basically, I’m hoping to make enough money to cover hosting.

I’ve thought about doing this for a while and have held out until for for a number of reasons.

A large part of it is that I don’t want to look like Nascar. I’ve been trying to figure out what the right mix is and how much real estate I should devote to it.

One of the huge blocking issues has been that I didn’t have any control over the ads that some company might be posting on my we site. I’m joining the Lounge by Infozerk because it’s run by James Avery, a guy that I trust, and his ads are targeted at a particular developer segmentation and they are screened personally by him. That’s a combination that I like.

The other thing that I like a lot about the Lounge is that I’m in a “room” with a lot of other developers with similar topics and thoughts. This is a great set of guys that includes Jim Holmes (no relation but I’d be proud to claim him), Steven Harman (Fellow geek and ALT.NET enthusiast), Michael Eaton (Great speaker and consultant from Michigan) and so on. This means that we can get together and decide not to allow a particular advertiser. That’s cool. It also means that these advertisers are able to look at the set of people that they are sponsoring and make intelligent decisions about their audience and if they are the right fit. I like that as well. It’s also good because I’m basically in a room with a lot of my blogroll…

Quick summary:

  • Payment will cover my hosting costs at least
  • The advertisers are carefully screened and are all companies that I’m happy to support on my blog
  • The network is carefully screened and consists of many people I respect in the development community
  • James Avery is running it and will make sure the other three continue to be true

Now, to be honest, I’m not in the “big boy room” with Haack, Jon Galloway and the like but I’m in with good company.

All in all, I think that the Lounge is a good fit for me. High quality advertisers and high quality publishers associated with it.

James posted about it at Lounge Update : Infozerk Inc.

<update>The original post had Hanselman in it but Avery pointed out that Hanselman is not advertising through the Lounge so he’s not one of the guys in the “big boy room” at the Lounge either. I should have done the update post rather than an edit – and Hanselman has rightly called me out on that in email.</update>