Wednesday, April 22, 2009

The Cheese is Moving (Yet Again)

Who Moved My CheeseI enjoyed the little fable of Who Moved My Cheese when I read it years ago. While I didn’t find it new or life changing, I liked the message that we should always be ready for new things. Even though I no longer eat cheese (I went vegan this year), I try to be prepared for when the metaphorical cheese starts moving.

Yesterday, my manager and my team lead sat down with me in a conference room to tell me that my contract had been cut from the budget as of May 1, 2009. I was not surprised at all. I had been asking about the status of my contract for over a month. My client had lost nearly half a billion dollars in the first quarter of 2009. I could read the writing on the wall.

Still, I had been lax about preparing for the transition. It is easy to be lulled by the familiar. As a result, I had to scramble to update my resume last night and get the word out that I was looking for a new opportunity. I was better prepared than I have been in the past, but I’d still like to keep my resume more up to date.

I’ve already had several leads come my way from my Twitter tribe and the extended developer community. If I have any down time, I expect it to be brief. If you have the time, please review my resume and provide any feedback or suggestions in comments or using the contact link at the top of the blog.

++Alan

 Sunday, March 29, 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.

Cheers,

++Alan

 Sunday, March 22, 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,

++Alan

 Wednesday, March 11, 2009

A Culture of (Potential) Assholes: Sexual Harassment in IT

On a recent trip I had my eyes opened to the phenomenon of sexual harassment in the IT industry. I don't know why I was so surprised, but I was. It broke my heart to discover that friends of mine had to put up with treatment that I thought only occurred in bad HR training videos.

Before I unpack my thoughts on this issue I feel I must issue a disclaimer. I'm a man. I've been guilty of sexual harassment to some degree in my life. I do not want to give the impression that I am above this issue. I enjoy making comments laced with double entendre that are probably more than a little offensive at times. Only now, I am more aware of and sensitive to these situations than before.

Here is what I observed. I was sitting next to a female developer in a hotel lobby in the evening during a multi-day conference. We had just met that evening, and I was enjoying our conversation. We were both sober, while many of those around us were not.

Seemingly out of nowhere, a loud and drunken man, whom I had met briefly the night before, appeared. He made a few comments to the assembled group, then reached in his back pocket to pull out the envelope that the hotel gives you with your room key cards. Apropos of nothing, he hands the envelope, containing a key, to the lady next to me and says "my room number is written on there. I expect to see you in my room later."

He then walked away while she tried unsuccessfully to give the room key back. After she sat back down, another male developer on her other side, in apparent sarcasm, said "you took somebody's room key. You're such a whore!" This pushed me past my tolerance and I yelled at him "Dude, over the line!"

While this brief scenario doesn't indicate a trend, it did spark a series of conversations with several women in my circle of contacts. I discovered through these conversations that it is a nearly universal experience that similar inappropriate scenarios happen on a regular basis. What was especially disturbing to me was that the women couldn't believe that I was surprised by this.

I consider the people I interact with professionally to be my community. I believe fundamentally that we have to take care of one another so that we can all succeed. To discover that members of my community were regularly tolerating treatment that I would not put up with for an instant was mind blowing to me.

I learned that rather than viewing men as neutral peers on first meeting, the women often view us with suspicion and caution. It is as though we are all potential assholes in their eyes, guilty until proven innocent. This led me to second guess many interactions I have had with women developers, wondering if they suspected my motives.

It seems to me that the women in our industry are swallowing emotional poison every time an harassing interaction takes place. They appear to have too high a threshold of tolerance for bad behavior. The lady involved in the situation that prompted this post told me that she couldn't speak up because she would then be seen as a bitch and would lose business because people wouldn't want to work with her. Here are some quotes:

I just shrug off certain comments/advancements, because being in IT I feel like I need to be “one of the guys”, so I take it and move on.

That's what i hate - having to keep my guard up in order to respond professionally, because there's this expectation that i have to respond in some way, either by being offended or going along with the joke and showing that i'm cool, etc.

I've been plenty naive, falling for "yeah sure we're just friends" or "no I didn't mean anything by that" lines. After enough lost trust in people, I've probably become more aware and/or suspicious.

Protesting too much gets you nowhere except labled in one of various negative ways. In which case, you HAVE to pick your battles, and figure out what is truly offensive and worth speaking up about, and ignore the rest. Otherwise you're just the "boy who cried wolf."

This condition frankly saddens me. In discussing these discoveries with my friend Dustin Campbell, he reminded me that as men, we have a tendency to fix and rescue. The issue at hand defies my attempts at immediate refactoring. I asked the women what I could do when I witness an incident of harassment. They suggested that I take the offender aside and talk to him rather than publicly reacting and potentially escalating an uncomfortable situation. One friend made it clear that I should say that I find the behavior offensive rather than come across like I'm sticking up for a "little lady."

Henceforth, if I see anyone pulling any of this shit, I will take the person aside and have a discrete but direct conversation. If it continues, I will call the person out publicly. If it continues beyond that, I'll take whatever steps necessary to inform vendors and clients of the individual's character.

The day after my "awakening", I went to a Women In Technology meeting to learn more. There I heard that retention of women in the industry is at least as big a problem as recruiting them in the first place. The three biggest causes of women leaving IT are sexual harassment, lack of role models and lack of mentors.

When it comes to role models and mentors, there may be fewer women than men, but they definitely exist. I know quite a few amazing women developers. Now, I am even more impressed with these women because of what they have had to put up with as they progress in their careers. I invite all of my peers to join me in making the profession of software development more welcoming to everyone by looking out for your neighbor.

Peace,

++Alan

 Sunday, February 22, 2009

Share in teh Awesome!

Twitter never ceases to amaze me. I've seen lots of memes pop up and fade away in my Twitter stream, but, by far, the strangest is the #AlanStevensAvatarWeekend hashtag that sprang up this weekend. Forty people adopted a picture of me as a child in my Captain Kirk shirt as their avatar.

The background for this strange occurrence is another Twitter meme. I noticed people putting old pictures of themselves, often with outdated hair styles, as their Twitter avatar. While I have plenty of embarrassing hair styles in my past, I decided to join this meme by showing my geek cred. On Thursday evening, I changed my avatar to the afore mentioned picture.

On Friday morning, Andrew Duthie noticed my picture and claimed that he had been outclassed. Next, Y. Alan Griver adopted the picture as his own avatar because, he said, it's a level of awesome he could never reach. By Friday afternoon, Andrew and Alan had both adopted the picture as their avatar and invited everyone else on twitter to do the same.

Picture 9 Picture 10 Picture 6 Picture 4

Picture 1Friday night, I looked at my Twitter stream and saw around half of the tweets had my photo as the avatar. I announced that I felt like John Malkovich inside his own head. If you've seen Being John Malkovich, then you know what I mean. I wasn't active on Twitter this weekend, I had children and home repairs to deal with, but I watched on with amusement.

Saturday night, I looked at my followers list and saw that many of my most recent followers had the Alan as Kirk avatar. I find it amazing that people who didn't even follow me on Friday, had my picture as their avatar on Saturday.

I want to give special recognition to two variations on the #AlanStevensAvatarWeekend theme. Rick Hodder changed the shirt color to red, giving it a look of almost certain doom. Scott Koon (aka lazycoder) took a different picture of me from 20 years ago instead of 30 years ago as his avatar.

Picture 8 Picture 3

Thanks to everyone involved in this silliness. You all gave me countless belly laughs this weekend. I can't wait to see what surprises my Twitter Tribe comes up with next!

Picture 7

Stay awesome,

++Alan

 Tuesday, January 20, 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,

++Alan

 Thursday, January 15, 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.

Gratefully,

++Alan

 Wednesday, January 14, 2009

Tools Still Matter

Last week, I facilitated the Open Spaces at the awesome CodeMash conference. The theme of the Open Spaces was “Techniques Not Tools.” While I certainly agree with the sentiment, I still believe tools matter.

In my professional development, I work in .NET 1.1 using Visual Studio 2003 and I assure you there are limitations imposed by the tools. I am still able to build software that I am proud of, but it could be easier.

I’m currently setting up a new development VM and I thought I would share the configuration settings I use. I start by installing Visual Studio Team System 2008 Development Edition. I probably don’t need anything more than the Professional Edition, but there are some tools in the Development Edition that have been useful in the past.

I immediately install SP1 before I even launch Visual Studio. Once I launch VS, I choose C# developer settings. After the incredibly long wait, the UI appears and I make my way straight to Tools –> Options.

image

Under Environment/General, I uncheck animate environment tools.

image

Next, under Environment/Startup I select “Show empty environment.”

image 

Under Projects and Solutions/General, I set the “Visual Studio Projects Location” to C:\Development.

image 

Next I go to Text Editor/All Languages/General and turn on Auto List Members, turn off Hide Advanced Members and turn on Parameter Information. I also turn on Line Numbers and turn off Navigation Bar.

image

In Text Editor/All Languages/Tabs I set indenting to Smart, Tab Size and Indent Size to 2 and select Insert Spaces.

After closing out of the options dialog, I go to Tools-> Import and Export Settings where I import Brad Wilson’s Dark Consolas theme for VS2008. I will frequently tweak the font size depending on whether I am doing a presentation, but in general, I use the defaults from Brad’s settings file.

Now it is time to close Visual Studio and install Tortoise SVN and reboot. After the reboot, I install Visual SVN and Resharper. Both of these tools cost extra and both are more than worth the money. Because I don’t do any commercial development on this VM, I could install the personal edition of TestDriven.NET, but I have found that I get value from the emotional reinforcement of watching the green line grow in the Resharper Test Runner.

The last step in setting up a clean Visual Studio Install is to launch the IDE, go to View –> Toolbars and turn off all the toolbars. You will have to do this multiple times because different toolbars are active at different times. You do not need toolbars, and they are probably slowing you down. Learn the keystrokes. You will be a more productive developer as a result.

Finishing up, I install the Web Deployment Projects, Power Commands and the VS Command Shell extensions. Finally, I close the toolbox because every time I accidentally mouse over the damn thing, it slows me down. ;-)

Productively,

++Alan