spout

June 20, 2005 spout

Theoretical Computer Science

accounting is to mathematics as engineering is to computer science.

I’m an accountant sitting in a meeting run by mathematicians. Unless I can use the math to do my double-entry book-keeping, I just don’t care. A mathematician cares only for the power of ideas and never needs to see the numbers.

As an accountant, I’ve read papers written by mathematicians and applied their ideas sparingly, but I’ve never seen a quorum of them discuss things before.

Fun. : )

June 20, 2005 spout

My Weekend

Dear Diary, this is how I spent my Father’s Day weekend:

  • Friday, 7:30am, dropped my family off at the airport so that they could visit relatives in MN
  • Saturday, 1am, sent around the check-in notice for my day job and went to bed
  • Saturday, 11am, woke up in book avoidance mode
  • Saturday, 3pm, started porting styles chapter to Avalon b1
  • Sunday, 4:30am, heard birds chirping, thought it would be a good idea to go to bed, still not done porting styles chapter and my butt hurts from sitting, plan to bring in a butt pillow tomorrow
  • Sunday, 4:31am, reflected on why I’m working so hard on a book when my readers feel the need to compare me unfavorably to certain rotund movie characters, resolve to stop writing books so I can have a life back that includes exercise (and doesn’t include reviewer feedback)
  • Sunday, 9:30am, woke up, called my Dad to wish him a happy father’s day, called my kids to hear them do the same for me
  • Sunday, 10:30am, back at it porting styles chapter (butt pillow in place)
  • Sunday, 1:30pm, finished porting styles chapter, started applying reviewer feedback
  • Sunday, 3:30pm, shipped out 2nd draft of styles chapter for 48-hour quick-turn review, started reading data binding chapter reviews
  • Sunday, 10:30pm, went to bed with data binding chapter only 1/3rd finalized
  • Monday, 5:30am, got up to make the trip to Redmond, didn’t finalize both chapters as per this weekend’s plan, but I’m so happy to not be applying reviewer feedback right now that I have a hard time caring
  • Monday, 1:33pm, composed this silly entry and working happily at my day job where reviewer feedback is not currently a part of my life
June 14, 2005 spout

The End of an Era

Today is Sara Williams’s last day. Sara was the first Microsoft employee that I met. In fact, she was the first MS employee that a lot of people met. She’s been at Microsoft for 14 years, which was long before it was cool for employees to talk to the outside world. She was a key part of MSs Developer Relations Group, whose job it was to do the outside world stuff while the rest of MS stayed inside and slid flat food under the door to each other.

Eventually, like others, Sara grew tired of Microsoft’s insular-ism and specifically our developer network’s unwillingness to embrace the community, so she launched GotDotNet which, inevitably, lead to her taking over MSDN altogether, which she developed Developer Centers and pushed a whole new way for Microsoft to embrace 3rd parties.

However, by far her most benevolent act was to hire me, a guy that refused to buckle to the pressure to move to Redmond and then she let me run roughshod over my colleagues putting up the Longhorn DevCenter and re-launching the Smart Client DevCenter. This set the stage for me proving myself in a remote-hostile environment and allowed me to eventually get myself onto an honest to gosh product team. It was all her.

Her departure from MSDN will leave an indelible mark on that organization and I can’t say that it didn’t play a factor my own decision to leave. Her departure from Microsoft is unbelievably sad. In many ways, Sara is Microsoft to me. She embodies each employee’s personal responsibility to our customers. She’s certainly not alone in her thinking at Microsoft, but that makes me no less sad to see her go.

Thanks very much, Sara. You made quite an impact on me. I wish you all the best and my undying adoration.

XXOO,
Chris

June 13, 2005 spout writing

Love Reviewers; Hate Reviews

I took a quick glance at some reviewer feedback for the Avalon book and already I’m trying hard not to hate the folks that send it in. Mean, hateful things like who is this guy?!?” and well, he’s never written a book” spring immediately to mind.

The thing is, reviewer feedback, especially harsh, blunt, spit-in-your-face reviewer feedback, is an extremely critical part of the book writing process (although, ironically, I most hate the reviews that sound like stuff I would write when I review…). Without reviews, authors don’t have any idea how their writing will be received til it’s published and we’re bound to do all kinds of stuff that’s reader or subject hostile that need correcting. Please, feel free to hit me with both barrels when you’re reviewing my stuff; I won’t promise to act on all the feedback, but I promise to consider all of it seriously.

I do have one request, however. This is something I try to do when I’m reviewing (and I’ve been known to make grown men cry): please start with something nice. This does two things:

  1. Gives the author a little ego boost before you chop his legs out from under him.
  2. Establishes your credibility as a reviewer. If you say something nice, especially if it’s insightful, e.g. Avalon data binding is a large topic, but I really love how this chapter presents practically all of it in an easy to follow manner,” then I’m much more willing to take feedback like, don’t let the sample app drive the chapter, make the technology coverage drive the sample” (not to pick on anyone in particular : ).

Of the two things, establishing your credibility as a reviewer is by far the most important because w/o it, there’s a good chance that the careful thought you put into your reviewer comments will not be fully considered (who wants to listen to a curmudgeon?).

Anyway, if you encounter me in the next month and I’m grumpty, it’s cuz I’m spending my weekends dealing with reviews. I might be crabby and violent, but at least I’m slow and easy to see coming. : )

June 9, 2005 spout

Never Give Up, Never Surrender

I was reminiscing today that I’ve been turned away from most decent places in my career:

  • I went to a stupid high school that raised my grades a full letter when I moved there from a decent school system, leaving me ill-prepared for college
  • I was turned away from MIT, CalTech and Stanford out of high school, settling for the U of MN instead
  • I didn’t even qualify for a phone screen from either Apple or Microsoft during or after college
  • I flunked most of my on-campus interviews and instead settled for a full-time position at the start-up where I’d worked during college (I was originally been hired there because it was run by alumni of my fraternity and I worked for beer money)

And yet, I got all I could out of every opportunity, performed all of the jobs I did manage to get with gusto, learned as much as possible and moved on to learn new things when it was time. Eventually, I found my way” and I think I did all right, but only because I didn’t let the door slams stop me. You shouldn’t either.

June 7, 2005 spout

Career Path for Developers?

Pete” email me the following questions:

I’m a senior software developer, age 34, specializing in C# development for Windows Forms / ASP.Net, having come from a VB background. Having had some (if not most) of my enjoyment of development sucked out of me by my current employer, I’m contemplating my next career move.

Thing is (and it’s not just me, several of my colleagues concur), where do I go from here? What is the career path of a software developer? I.e. junior developer, senior developer, guru, author,…? Is there such a thing as a career path for a developer (or anyone, these days)?

I surmise that developers such as myself (4th / 5th gen language developers) may actually be the first at the crest of this particular wave - I guess COBOL developers could have migrated into hardware / system maintenance, but what for folks like myself? I can’t see myself being a developer until I retire (31 years later), but I don’t really want to move into management either (perhaps software delivery manager, but not a full-blown person manager).

Or maybe this is just a mid-life crisis. Maybe those COBOL programmers were thinking the same thing. Maybe you’ve thought the same thing, and said Sod it, I’ll just learn as much as I can and write books.’ Maybe my malaise is indicative of the general malaise within IT at the moment (still suffering from the dot com crash, companies more interested in fixing up their offices than investing in IT, etc), companies not knowing their arse from their elbow when it comes to IT spending, etc.

We live in a world of ever-increasing technology, yet seem to be doing less development? Obviously there are still very clever people out there writing code for phones, text delivery. HDTV innards, etc., but is software development becoming stagnant? Are we still doing the same things with new tools? Why do we still not have modular development? Why are there many standards for Web Services? Where are the really, really cool applications?”

Pete,” those are all fine questions. I think there are a ton of interesting things to do for software developers in the world and being a part of a big company development machine is only one of them. I’ve done most of the rest (I consider Microsoft to my last job in this industry), so I can recommend start-ups, speaking, shared/open source development, consulting and writing as all valuable, interesting and fun experiences (although, as you might imagine, each of them has their downsides, too).

Or, even if you wanted to stay as a developer, I can recommend different kinds of software to be refreshing, e.g. I’ve spent a lot of time on code-based developer tools and now have moved to model-based developer tools (that’s not a big shift, mind you, but hey, I’m growing! : ). Maybe you’d like to switch away from front ends to back ends or to databases? Maybe you’d like to switch from imperative to declarative or logic? Maybe you’d like to go all the way on front ends and build games? Or maybe you’d like a platform like a mobile device better? (I personally lust after this one!)

Your malaise-related questions are good ones, too. It seems like you’ve identified a bunch of problems” in the IT industry. You’ve got two ways to handle this problem: ranting or doing something about it. You’ve done the former. Maybe you’d like to put on your start-up” goggles where problem” == opportunity,” bring some of your friends along and roll up your sleeves? Are you brave enough to risk the kid’s college fund to follow your heart? I’ve done it a coupla times and there’s nothing like it.

June 4, 2005 spout

More Skype Love

I was chatting with Mike in Australia today and we pulled up Skype as we usually do, cuz it just works, e.g. no connection problems, no echo/feedback problems, etc. However, we couldn’t get video4skype to work, so we tried switching over to MSN Messenger 7. The video worked just fine from MM7, but the audio was terrible, exhibiting volume, echo and feedback problems. So, we used a hybrid, i.e. MM7 for video and Skype for audio, which worked just fine.

This hybrid model is prevalent in my communications recently:

  • queued messaging: email for text and files, vmail for nuance
  • text chat: MSN Messenger 7 or Communicator, depending on whether the person is an employee or not
  • video chat: MM7 or Communicator
  • audio chat: phone, Skype, MM7 or Communicator
  • person-to-person app sharing: MM7, Communicator
  • group app sharing: LiveMeeting

Would it be too much to ask that one app do all of this well? Do I really need 6 different apps?

June 4, 2005 spout

Realistic Conference Expectations

I was chatting today with a friend that complained that he didn’t get any deep technical knowledge from a conference talk. I said that he had unreasonable expectations; the most he could expect from a good conference was the following:

  • Networking opportunities (hard for geeks; often works via friend-of-a-friend in bars and restaurants, but only if you have at least one friend and s/he has at least two)
  • Info triggers,” i.e. if you attend a 90 minute talk on MSMQ and you’re having or are about to have a problem that MSMQ solves well, the talk should a) let you know that MSMQ provides a good solution and b) where to go for more info
  • Entertainment (and that’s only the good conferences)

In general, every talk should be structured like so:

  • Name the thing
  • What’s the thing good for
  • A demo of the major use(s) of the thing
  • Here’s where to go for more info
  • Any questions?
  • Please remember to tip your waitress

That’s why I really love the idea of groktalks. If you attend 3 groktalks instead of 1 regular talk, the chances of you finding an info trigger are 3x, while still keeping your networking and entertainment chances even.