I spent last week in Santa Clara, California at the Software Development West conference (http://www.sdexpo.com).  This is the seventh SD I've attended, and I've already put in my request to go again next year.  It's the only conference I attend, in fact.  I like it so much because it's not focused on just developing or just testing or just Microsoft or just Linux or just C++ or just TCL or just people willing to fly to the East coast in autumn or just people who can drive to Hamburg.  SDWest is five days jam-packed with endless sessions on every topic imaginable, keynotes and panels by industry illuminaries, and of course the Software Development Jolt Awards.

I'm always interested to see what sessions are being offered each year.  My first SD had no testing sessions whatsoever, a track dedicated to COM, and some number of management-type classes (whose topics I have no idea, as I didn't care about management back then).  This SD had about ten different talks on testing, not one single COM session (although .Net and Java each had a dedicated track), and the management classes were broken into separate modeling, process, and analysis tracks.

I find it interesting to look at how the sessions I attend have changed of the years, too.  I may have attended one or two non-technical sessions my first SD, but this year I split fairly evenly between technical (e.g., hierarchy design, Tablet PC programming), modeling and analysis, and process and management sessions.

Attendance is much less than it was back in 1998, and the show floor is miniscule compared to the first few years.  Both are creeping back up, though, which is an encouraging sign.  There seem to be a lot more women attendees this year than I remember from my first SD, although a majority of them seem to be either management or analysts.  Interestingly, the give-me-all-sorts-of-gory-details C++ technical sessions had almost exclusively male audiences (e.g., two women and one hundred men), the .Net technical sessions were less skewed toward maleness.

One thing that hasn't changed is the quality of the sessions.  Most of the industry big names talk at SD:  Herb Sutter, Martin Fowler, Robert Martin, Scott Ambler, Josh Holmes, Steve Dewhurst, Allen Holub, just to name a few.  Mixing it up with these big guns are plenty of unknowns who happen to have something to say.  The level of quality of the presentations is very high, but if by chance you do get a bad presenter, or the topic just doesn't interest you as much as you thought it would, no worry -- there are so many good presentations in each timeslot that you are guaranteed to have at least one other session (more likely two or three) to fall back on.

"How to Break Software Security" was one of the better sessions.  Herbert H. Thompson is one of the James Whittaker protoges who has productized Whittaker's Holodeck fault injection tool (http://www.securityinnovation.com/holodeck/).  A funny guy with what I can only assume was a Florida accent, Herbert kept the room in stitches with his continuous flow of wry comments and straight setups to some amazing bugs.  For example:

  • msgina.dll controls the Windows login prompt, and so is perhaps the most secure DLL in Windows.  If you open that file in a hex editor, and move to 0x000453d0, you'll learn that the reason to the question "Why did the computer shut down unexpectedly?" is that "The computer got very poorly and decided to end it's own suffering."  It's hard to see how this Easter egg could be a security threat, and in fact it's not.  But think about it:  Herbert said that Microsoft has the most stringent code review process he's seen.  If this joke could get through, what else might be lurking in there?  (Nothing, I'm confident, but still...)
  • A major online flower etailer used to store a customer's shopping cart as a cookie on the customer's system.  Not just the product ID and quantity, mind you, but also the description...and the price!  But surely they validated the price during checkout?  Nope!  Herbert ordered twelve gift baskets for less than $15 total!  He still hadn't heard anything the next day, so he called customer service, and spoke to their manager, and their manager, and their manager, he was told that his order was on the dock and less than five minutes from being shipped out.

Another fascinating session found Juval Lowy (http://www.idesign.net), who Microsoft not only made a Regional Director (which doesn't mean we pay him, but recognizes him as some sort of semi-official Microsoft technology cheerleader) but also gave the title Software Legend (http://www.softwarelegends.com/legends.html), showing us how to inject logging into our apps just by adding an attribute to each class -- in other words, pretend to do aspect-oriented programming on .Net.  If this piques your interest, it turns out he wrote about in MSDN (http://msdn.microsoft.com/msdnmag/issues/03/03/contextsinnet/).

I always leave SD with a plethora of new quotes and stories to tell.  The best this year:

  • Steve McConnell (http://www.construx.com) joking that "Computers are so fast now that it takes two HALT instructions to stop them."
  • Allan Vermeulen, Amazon.com's CTO, saying that the secret to Amazon's success is to "...hire the best, raise the bar, don't treat engineers as order takers, empower teams, remove friction, and know when to buy and when to build."  This is Microsoft's philosophy as well; one of the reasons I love my job so much is that everyone on my team is just scary smart.
  • Charles Simonyi telling about how he couldn't enter a building for a meeting because he hadn't brought his ID.  He noticed that the receptionist had a computer on her desk, so he told her to look him up on Google.  She did a picture search, compared the images it found to him, and let him through.
  • A 50-something overweight hippie with a ZZTop beard bursting through the show floor doors the second they opened and running to a certain booth to ensure he was the first to get some freebie, only to be smacked down by the booth's marketing Grandma for grabbing three of the tchotchkes but not bothering to fill out the requisite survey first.
  • Scott Ambler (http://www.ronin-intl.com) warning us that he tended to be very blunt, then saying "Is it a good idea to learn UML?  Damn right it is!  I would have to question the competency of any developer who doesn't have a good handle on the UML."  Which he then followed up with "But it's not everything you need, and you don't need all of it everytime."
  • Scott Meyers (http://www.aristeia.com) talking about a gig he had at Lawrence Livermore Labs, where they design nuclear bombs, quoting one of the scientists (who was being at least somewhat facetious I'm sure):  "If we don't do our jobs right, people will *live*!"
  • Rebecca Wirfs-Brock (http://www.wirfs-brock.com/pages/rebecca_bio.html) gave an interesting talk on turning design presentations into interesting stories people actually want to to hear.  Ironically, she wasn't a very good presenter, reading the slides to us and everything.
  • Some of the sessions involve breaking into small groups to discuss this or that.  One time the others in my group a) worked in a bank on the East coast; b) worked in a Scandanavian bank that was a merger of four different banks from four different countries, and so not only had to merge four different systems but also had to merge four different cultures; c) worked in a Czech Republic bank, and d) (me) used to work in a bank.
  • Allen Holub (http://www.holub.com/) telling us he has received death threats after presenting his Everything You Know Is Wrong! talk that says getters and setters are bad.  (which isn't what he actually means.  See http://www.holub.com/publications/notes_and_slides/Everything.You.Know.is.Wrong.pdf to learn what he really says.)
  • A speaker demonstrating how testing is never complete told us that he was from Israel, where there are lots of places a plane can fly below sea level.  Five months before the F-16 (the first completely fly-by-wire fighter, he told us) entered production, the F-16 team did some flight tests in Israel.  Anytime the pilot flew below sea level, the plane turned itself upside down and flew along just fine!  Five months before production!
  • My hotel room had broadband-over-Ethernet for a daily charge.  The daily charge means I had to go through a sign-up process each day.  This process was implemented by redirecting every URL to the hotel's gatekeeper webpage the first time I tried to access the Internet.  A push of a single button (this is a hotel, remember, where they know everything you do and make purchasing stuff as easy as possible so you can be sure to rack up giant room charges without realizing how much you're spending) and I was browsing the 'Net at broadband speeds, with NewsGator downloading my ~200 blogs in the background (which number I can handle only because less than one-fourth of them update on any one day; I don't know how Scoble (http://radio.weblogs.com/0001011) does it).  Twenty-four hours later my time ran out, and the next Net access redirected me back to the sign-up page.  This process repeated itself every day.

    Tuesday I noticed I had *zero* new postings to read.  This seemed strange (I mean, does Scoble ever not post at least one thing?), but I had plenty of other stuff to read and so let it slide.  Wednesday evening I still didn't have any new postings, so I went in to NewsGator's settings to try to figure out what was going on.  The third time I did this, I noticed that every blog's URL was now set to the hotel's gatekeeper page!  Gaah! 

    It turns out Newsgator has a nifty keen feature that recognizes that a blog's URL has been redirected to a new URL and so automatically updates the URL for you.  I left Outlook+NewsGator running over night, my twenty-four hours of Net access ran out, every URl was redirected to the gatekeeper, NewsGator said "Oh look:  a new URl for this blog" -- for every last of my subscriptions.  These types of unexpected interactions between applications are exactly why scenario testing is so important, and why testing in the modern world is so incredibly complicated.
  • I started getting a cold the Saturday just before SD.  I understand now why infants cry on airplanes, because my ears didn't repressurize until about four hours after I landed in California.  Conferences aren't any fun when you have a horrid cold.  Happily I suddenly got all better the third day of the conference.  Unfortunately, the reason my cold jumped ship was that it decided my wife was a much more interesting prospect.  So she couldn't hear anything I said during our ninth anniversary dinner because her ears were stuffed up and she was constantly coughing.  Oh the joys of marriage!  <g/>
  • Despite there being six lane roads in the way in all directions, there were quite a few restaurants within walking distance (which for me means less than five miles away) of my hotel, so I spent some time walking through the surrounding area.  The neighborhood surrounding the Santa Clara Conference Center is typical suburbia:  lots and lots of office buildings with a few residential areas stuffed in here and there.  These walks really brought the dot com crash home to me:  empty buildings were everywhere!  A "shortcut" took me through one complex that had clearly not been used since it was built.  Four buildings that in total could hold many thousands of people, and acres of the most pristine blacktop I have ever seen, a few forlorn For Lease signs, and nary a single person.  I felt like I had fallen into some post apocalyptic episode of the Twilight Zone.
  • In a strangely refreshing turn of events, I didn't hear the word "Longhorn" uttered a single time the entire week!  Which is not to say I didn't want to say it myself.  I lost track of the number of times I heard someone talking about a problem they were having or a capability they wish they had or a tool they were trying to find, which problem or capability or tool I know will be solved by or be provided by or come with Longhorn or VS.Next or my team's app or some other not-yet-announced Microsoft project.  Not knowing for sure whether the item in question was public yet, or what part of it was public, however, I opted to keep my mouth clamped tightly shut.  Completely frustrating!
  • I grew up in Nebraska, spent nine years in Chicago, and now live in Seattle.  Despite the year I spent in San Deigo, 80 degrees and sunny all week in March is wrong!  It's just wrong!  It's completely wrong!  And I have the sunburn -- umm, suntan -- umm, pale skin from being inside stuffing my brain with new stuff all week to prove it!

*** Comments, questions, feedback?   Or just want a job on a great team? </g>  Send two coding samples and an explanation of why you chose them, and of course your resume, to me at michhu at microsoft dot com. I need a tester, and my team needs a data binding developer, program managers, and a product manager. Great coding skills required for all positions.