Sunday, 29 March 2009

Coding In Public Slides and Video

The Ohio user group tour last week was a success from my perspective. I had a blast sharing some ideas and talking to friends. The feedback that I received was very positive as well.

I put the slides on SlideShare here.  

I am especially pleased that Scott Walker took the time to record video of my talk in Columbus,OH. The video is embedded below. Enjoy!

Alan Stevens - Coding In Public from Scott Walker on Vimeo.



 Sunday, 22 March 2009

Southern Ohio User Group Tour

This week, I'll be traveling around Southern/Central Ohio giving talks at User Groups and at least one corporate office. The schedule is:

Here's the abstract to my talk. I'll elaborate on the content more below:

Come learn about the idea of deliberate practice as applied to the craft of software development. Alan Stevens will perform (less than) amazing feats of coding and he will do it for your enjoyment in real time.

OK, I admit, that's a pretty lame abstract. The explanation of the lameness is that I didn't really know what my talk was about until a few days ago. I've had a lot of ideas in my head that I've been trying to put together into a consistent theme. It was only after explaining to my wife recently what I wanted to talk about, that I saw the unifying theme.

And so, dear readers, I present you with the unifying theme of my talk this week:

In order to get better, you must be willing get worse.

This means that if you want to constantly get better, you have to be willing to suck, at least for a while.

So, come to my talk if you want to learn how to suck with gusto, and as a result become a better developer. If enough of us take this approach, we might just improve the industry, at least a little.

See ya' in the Buckeye State,


 Tuesday, 20 January 2009

Community Courtyard at Detroit MSDN Developer Conference

CommunityCourtyardBlackThis Thursday, I’ll be in Detroit at the MSDN Developers Conference (MDC) where I’ll be facilitating something called the Community Courtyard. The idea for Community Courtyard was spawned while Doc List and I were facilitating Open Spaces at PDC in Los Angeles last October.

I’ve facilitated Open Spaces in parallel with a traditional conference successfully in the past, but Open Spaces struggled at PDC. Doc and I examined what was working and what wasn’t and set about discarding what wasn’t working. When we were through with our examination, we were left with an approach that was inspired by Open Space Technology, but was not a full representation of that approach.

We were approached by Bob Familiar about putting together an Open Space track for the MDC events. We shared our thoughts with Bob and he was totally open to our suggestions. Doc and I tried to name it something trippy like “Parallel Process”, but Bob wisely suggested the more approachable, and descriptive, name of Community Courtyard.

So what is a Community Courtyard? It’s whatever you want it to be. Seriously, when you look at the conference agenda and notice a topic is missing that you are interested in, you can put it on the agenda for the courtyard. Whoever shows up is going to be interested in the topic, so even if you only talk to one other person, the conversation is almost guaranteed to be productive.

MSDN_DC_white_2 Personally, I think of the courtyard as a public speakers lounge. For years, I’ve had fantastic conversations with smart interesting people in the speakers lounge at events. Unfortunately, the attendees couldn’t participate in these great conversations. I want to change that.

I’ll be asking speakers to hang out in the courtyard when they are not presenting, or preparing their presentation. Also, instead of gathering at the front of the room after a session to talk to the speakers and ask questions, speakers can now invite attendees to join them in the courtyard to continue the discussion.

It is my hope that the Community Courtyard become a fixture at developer events big and small. I believe strongly that even the most tightly run event needs to make space for serendipity. We need a place at Code Camps and corporate conferences where attendees can seize the moment and talk with each other about what matters most to them at that moment.

I’ve already facilitated the Community Courtyard at the Atlanta MDC, and I had a blast. I know Doc is facilitating many of the other events. If you haven’t yet attended a MDC in your area, there are still a few remaining:

1/22/09 - Boston, MA

1/22/09 - Detroit, MI

1/26/09 - Dallas, TX

2/23/09 - San Francisco, CA

Come join me in Detroit. If you can’t make it to Detroit, then attend one of the other events. I recommend you do so. The content for these events is top notch, but the people you will meet are even better.

See ya’ in the Motor City,


 Thursday, 15 January 2009

It’s a Major Award!

On January 1, I was pleased to receive an email with the subject “Congratulations 2009 Microsoft MVP!” It is nice to be recognized for my contributions to the Microsoft developer community. I’ve made a lot of friends and learned plenty by traveling around and giving talks, as well as helping organize developer events.

If you are unfamiliar with the Microsoft Most Valuable Professional program, you can read up on it here. Personally, I was overwhelmed by the show of support that I received from my peers when I announced my receipt of the award on twitter.

If you go here you can see what I’m talking about. It goes on for a few pages. I feel a bit like George Bailey in that my wealth and my reward is the amazing group of friends I’ve made.

The MVP award is for the contributions I made in the previous twelve months. I am not obligated to make any further contributions, but who am I kidding, now that I’ve found my Tribe, I can’t seem to stay at home.



 Wednesday, 16 April 2008

Introduction to TDD with MVC Slides and Code

I have given this talk several times recently, and I still have more dates scheduled. I created a Google Code repository to host my presentation downloads. You can find the relevant files here:

Introduction to Test-Driven Development With The ASP.NET MVC Framework

If you would like to catch this talk in person, I'll be doing my song and dance at these events:



 Monday, 21 January 2008

New Website for ETNUG


Thanks to the excellent work of Michael Neel, East TN .NET Users Group has a shiny new website. This is the first step in our quest for world domination! ;-)

Actually, the officers have some great developments cooking for the UG. Now we have a great website to promote our efforts.


 Wednesday, 31 October 2007

Jeff Prosise Lights up Silverlight at ETNUG

Last night at our monthly meeting of ETNUG, Jeff Prosise walked us through the basics of Silverlight and demonstrated some of the potential of this new web platform.  I had read plenty of blog posts about Silverlight, but this was the first demo from scratch that I had seen.

Jeff is a Knoxville area resident, and a model airplane buff.  He showed a Silverlight streaming video of his new model jet that he's learning to fly.  Who knew you needed a license to fly a model airplane.  His initial demo was of a video website that he called "Foo Tube." ;-)

Jeff showed us his MyComix site and his implementation of the Game of Life, Silverlife.  He also walked us through starting a new Silverlight project in both Visual Studio 2005 and 2008.  Jeff is no fan of JavaScript, to put it mildly, and he was particularly excited to show the use of C# for code behind Silverlight events.

While I was disappointed that he didn't get into the dynamic language runtime in detail, Jeff talked for a solid ninety content-packed minutes.  I always enjoy watching Jeff present on any topic, but he was particularly excited about the possibilities enabled by Silverlight.

Jeff's enthusiasm definitely rubbed off on me.  I can't wait to explore the next release of Silverlight 1.1 which Jeff said will be available "Real Soon Now."  I am especially interested in using the DLR with Linq in a Silverlight app.



 Sunday, 08 July 2007

My 2007 Speaking "Tour"

In 2005, I began giving talks at our local user group.  In 2006, I spoke at the Atlanta Code Camp, FoxForward and DevLink.  This year, I joined Toastmasters in anticipation of even more speaking opportunities.  I have not been disappointed.

In January, I delivered a talk on Creating Windows Services at the NashDotNet users group.  I am currently preparing six talks for three different conferences on a wide variety of topics.  Fortunately, I picked the topics. ;-)  Each of these presentations is on a topic of great interest to me.

In September, I'll be at FoxForward near Atlanta, discussing TDD and an approach to application architecture I call OGLE. In October, I'll first head to Nashville for DevLink, where I'll be talking about VSX, and the Entity Framework.  The following week I'll be in Phoenix at Southwest Fox, where I'll do a longer pre-conference session on TDD, and a regular session on extending Visual FoxPro applications with Windows Forms elements.

In addition to these great events, I've committed to speak at the Memphis Day of .NET in November.  Details are still being finalized for that event.  I'll also be giving a talk introducing the Entity Framework at ETNUG, most likely at the August meeting.  I'm hoping to add a couple more engagements before the end of the year.  I'll let you know if anything works out.

If you have ever considered giving a technical presentation at a user group, or regional event, I encourage you to act on that thought.  Sharing ideas and interacting with other members of the community at these events has been extremely rewarding for me.  If you attend any of these events, please introduce yourself.



 Thursday, 28 June 2007

Is LinkedIn Useful?

View Alan Stevens' profile on LinkedInYesterday, I responded to some requests for connections on LinkedIn.  I'm terribly lazy about this.  Both of these invites had languished in my inbox for over a week.

Once I logged into my account and accepted the invites, I began looking around for evidence of value.  I had a few connections with co-workers and people in the .NET community, but I couldn't see what good it had done me.

I added a link to my LinkedIn profile to this blog a while back during my blog renovations.  That allowed one person I met at Tech Ed to get in touch with me.   Because of that, I decided there may be value in this service.

I began searching all the connections of my connections, that I knew, and inviting them to connect directly to me.  I dug around for email address online of people I didn't have in my address book.  I added my address books from Outlook and Gmail, and invited anyone I thought might be interested.

On a roll, I installed the Outlook plugin for LinkedIn and had it search my archived mail for contacts. I have to admit that this became addictive.  I would send a batch of invites, and wait for email confirming that people had accepted.  I drooled like one of Pavlov's dogs every time I saw the blue toast in the corner of my screen.

This went on well into the evening.  I was very happy to get an email response from an old friend whom I hadn't seen in a few years.  We caught up.  I learned that he was in Memphis and engaged, while he learned about my marriage.  This was a very pleasant exchange, and one that I could have initiated with a simple email, but it resulted from inviting him to join my network.

This morning I moved on to collected business cards.  I was pretty bold by this point and I invited people whom I had barely been introduced to.  This surprised one person who asked how I got his email address!  I explained that I had interviewed for a job with him two years ago, and wanted to connect with him because he supervised many developers who might be interested in our user group.  He was pleased with this, and accepted the invitation.  He also asked me to send him information about the user group meetings, so he could distribute it to his employees.  Now, I was seeing some value.

I believe the best proof of value came when I connected with another user group leader I met at Tech Ed.  He responded to my invite by asking me to speak it their "Day of .NET" in November.  That was definitely a valuable connection.  Again, it was a circumstance that I could have initiated through simple email, but it happened by connecting on LinkedIn.

I still have a couple dozen invites pending.  I'm considering inviting all the regular attendees of the user group, so we can build a network for ETNUG on LinkedIn.  I'm also adding my LinkedIn profile to my email signature.  I'll report back in a month or so to let you know if any of this was worthwhile.  My fear is that LinkedIn is just another friendster dressed up to be appealing to us "professionals".

We shall see,


 Thursday, 08 February 2007

Speaking at NashDotNet

I'll be speaking at the Nashvile .NET User Group tonight.  The topic is Windows Services, but I'm sure to get into my opinions of developer tools. :-)  If you are in the area, stop by.


 Monday, 28 August 2006

ETNUG Gets Back in Gear

We took July off, but ETNUG is back on tomorrow evening.

This month, we are pleased to welcome John Kellar to present a session on "Tools, Tips and Best Practices in .NET."  John will also fill us in on DevLink, the FREE developer event he has organized.   Check it out at

Tuesday, August 29, 2006 6:00 pm

New Horizons Computer Learning Center
9111 Cross Park Drive
Building C Suite 100
Knoxville, TN 37923

John is a developer and architect working as a senior consultant with Compuware Corporation. In addition to being Chairman of the devLink Technical Conference, he remains active in the development community as a Board member of the Nashville Visual Studio .NET User Group and speaker.  John has worked on applications in several markets including healthcare, government, financial services, data integration services and most recently consulting services. He was a charter member of the Little Rock .NET User Group and served two years as Vice-President. John also worked on organizing several developer conferences including Tech Expo 2005, Tech Expo 2006 and devLink 2006.

Tools, Tips and Best Practices in .NET

I received a copy of Wally's book to give away, and John is bringing an iPod Shuffle!

Please join us, and bring a friend!

 Thursday, 15 June 2006

Tech Ed 06 Day 4

Rain this morning. :'(  I hope this clears up before the concert at Fenway tonight.  I'm jazzed about seeing Train perform.

Yesterday afternoon was increadably productive.  I attended a session on Developing Custom Process Templates, Work Item Types and Policies by Kevin Kelly.  This session was similar to the presentation by Dennis Minium at Tech Ed 05, but Kevin had some new content when he got the the demos.

Next, I attended a BOF called "Enhance Your Business and Professional Life By Getting The Most Out of the Local Developer Community".  This session totally exceeded my expectations.  The facilitators did an excellent job of correcting my thinking about my user group.  The take-away quote was "running a user group has nothing to do with coding."  The moderators had plenty of tips about how to get people involved in the group, how to vary the agenda, and how to focus on the community building aspects first with technology placing a far second.

My final session of the day was the best so far, and that is saying a lot.  I have found my guru for deploying Team Foundation Server and his name is Sam Guckenheimer.  Sam refers to himself as a coach, but I will be following his sage nuggets of wisdom like a devotee to his master. ;-)

Sam gave me a copy of his book, and I read the first 20 pages last night.  This is the guide I intend to use for our road ahead.  The key piece of wisdom he gave me at the end of his session on "Using Metrics to Manage and Troubleshoot Your Projects" was this:  "The heart of CMMi is process improvement."  Sam totally understood the dissonance between developers trying to implement functionality in an iterative manner, and auditors focused on building to spec.

One of the biggest additions to my understanding of TFS at this conference has been the clarifying the difference between the map and the territory.  The spec is a map.  The MS Project file is a map.  These are maps of where we want to go, but the model needs to reflect reality.  With all the rich access to metrics provided by TFS, we can get a clear picture of the territory and adjust our maps to reflect reality.


[Update]  The rain has cleared off, so the concert should be lots of fun. 

My first session today was with Rocky Lhotka.  Rocky was actually very kind to datasets, and didn't harp on the lack of encapsulation.  He showed the advantages of isolating code in partial classes in .NET 2.0.  Of course, this being a Rocky Lhotka session, the ultimate solution was shown to be CSLA.NET.  I asked Rocky if his objects implemented the correct behavior when the user presses the escape key, and he responded that they do.  When he pressed the escape key, the expected behavior didn't happen.  I'm glad to know that these situations still happen to someone of Rocky's stature and experience.

I ate lunch with members of the MOM team, and asked them many questions about connecting MOM and TFS.  They pointed me to AVIcode.  I found the AVIcode booth, and talked with them.  I'll be exploring the resources on their website more upon my return.

I have been haunting the PowerShell booth trying to catch up with /\/\o\/\/.  I went to talk to members of the Visual Studio team about the possiblity of a PowerShell add-in for VS.  They've never heard of PowerShell!  They gave me some good tips on how to follow up through the forums and the feedback site.

While I was talking to a member of the VS team, I asked him about the future of Windows Forms, and he introduced me to CrossBow.  This is exactly the kind of solution I like to see Microsoft producing.  My existing code is not made obsolute by a new presentation technology.  Windows Forms lives!

Probably my last session for today was "Visual Studio 2005 Team System and Microsoft Solution Framework: Implementing an Agile or CMMI Process" with Randy Miller.  This was one of my "must attend" sessions.  My challenges in deploying TFS at this point all revolve around how to make use of the MSF guidance and templates.  Randy gave us the model behind MSF, and offered to email chapters of his MSF book as he writes them.  This was an important session for me.

Upon returning to the Technical Learning Center, I made another stab at talking to someone on the Visual Studio team about PowerShell.  I spoke to Kit George, a Program Manager on the CLR Team, and he had never heard of PowerShell!  He gave me his card, and told me he would follow up on this if I eamil him.

The capstone of the day (so far) was some quality time with Sam Guckenheimer.  I sat down with Sam and reviewed a workflow diagram I made after gathering requirements from my QA department.  Sam had some excellent feedback, and thought through the problem fully.  I made notes to share with my team upon my return.  Sam rocks!

I would be remiss if I did not mention the embarassing situation I went through trying to demo problems I was having with notifications to a member of the VSTS team.  He let me use his laptop to remote into my work desktop and demonstrate the problem.  The real problem turned out to be that the problem no longer exists!  I apparantly had not tried the subscription feature since Beta 3.  When it didn't work, I filed it as an issue in need of further investigation.  The Microsoftie (I didn't get his name) was very gracious, and I was very red faced.  In the end, I'm just happy it works.

 Monday, 24 April 2006

Atlanta Code Camp

Atlanta Code CampLooks like I may get the chance to present my session on Getting Software Done with Visual Studio Team System at the Atlanta Code Camp.  They say that a listing on the speakers page is no guarantee that I'll be on the final schedule, but at least I'm on the speakers page now.  Go here, select speakers, and scroll waaaaaaaayyyyy down to read the summary.

 Tuesday, 17 January 2006

Visual Studio and SQL Server Launch Event at ETNUG

Tonight we held our VS2005 & SQL Server 2005 local launch event.  Microsoft provided some copies of the software to raffle off to the user group members, and Jason Bentley and I presented some features from the new products.

Jason showed some awesome new failover capabilities in SQL Server 2005, and I did a presentation on the new Windows Forms controls and deployment features under the heading of “Smart Client”, whatever that means.

We had a good turnout, and everyone seemed interested in the topics being presented.  I had a few gaffes in my presentation, but nothing I haven’t seen the professionals do. ;-)

The next meeting is two weeks from tonight, and I expect to see a good turnout then as well.  It looks like The East Tennessee .NET User’s Group is healthy and growing in 2006!

 Wednesday, 27 April 2005

Jeff Prosise at ETNUG

Monday evening, I had the privilege of introducing Jeff Prosise at the East Tennessee .NET Users Group meeting.  He spoke about website application vulnerabilities, especially SQL injection.  It was a topic I was familiar with, but it was great to see these attacks demonstrated in one dedicated session. 

Jeff's company Wintellect also sponsored the event.  Very Cool.