I too have been humbled and impressed by the other people’s stories in the Five Things meme so here are mine:

1. I am baffled by other people’s fascination with professional sports.

I can identify with playing a sport – I just cannot understand the motivation behind the activity and entire economies driven by watching, talking, and writing about sports. That a city cares whether or not it has a football team and whether they have a nice stadium when at the same time its schools suck makes no sense to me. That a soccer fan needs to throw a beer bottle at someone who does not like their team makes no sense to me.

2. My family set me up to meet a girl they thought I’d like – and it worked.

I met my wife Janet at a family Thanksgiving dinner after months of my family telling me “oh, we want you to meet this girl we think you’ll like.” We’ve been together since that day in 1987.

3. I am an Astrophysicist by education.

My career in software is a profitable side-effect. In school I was interested in everything and focusing on one thing to get a degree in was a challenge. Science seemed to be a recurring interest and my employer at the time (Hewlett-Packard) would pay tuition in that area so I chose to major in physics. After my BS I changed schools to work on a Masters. I was at Cal. State Northridge and they had a world class solar observatory and the astronomers were nice to work with so my M.S. in Physics was based on research into the solar magnetic field structure’s relationship with gas brightness and velocity. For my Ph.D. I wanted to work on something other than solar astronomy so amongst the multitude of choices I had (I think it was two) I joined the astronomy department at Indiana University, Bloomington. I was there five and a half years and finished my coursework, my Physics and Astronomy Ph.D. qualifying exams, and made good progress on my dissertation research. However, family and financial issues prevented my staying the extra one or two years it would have needed to complete my Ph.D so I left IU with a “thank you for playing” Masters in Astronomy. In the mean time I had picked up good programming skills that people were very interested in paying me for.

4. I am an artist by inclination.

My family is populated mainly by performing artists and musicians. Throughout my life I have built things with my hands and the design and construction of structures of fantasy remains my hobby. I’ve focused on model railroading but I also draw and build other 3D art forms. The artist in me determines whether I’m interested in a project: if there’s room for creativity I’m interested. If you just need me to turn the crank, I’d rather be digging ditches.

This might be something you already know. In which case my not realizing you know is a demonstration that I have Asperger’s Syndrome. That’s an Aspie joke.

I was not diagnosed until I was in my 30s. I had always known I had to work especially hard at things that appear easy to people around me and all my life I have been known as “really smart – but weird.” It has been really helpful to have a diagnosis. It hasn’t changed anything I do but it has helped me feel vastly better about the coping mechanisms I employ. I still have most of the traditional problems Asperger’s deal with. Let’s face it, most good software developers are what we call “on the spectrum” so I’ve always fit in really well in good development organizations. However, unenlightened employers almost invariably feel I’m stubborn and arrogant when I’m actually very shy and I strive very hard to be a nice person. As far as being stubborn, I like to think I mitigate it by usually being right (although I now know it usually doesn’t matter that you’re right, I’m still naïve enough to be surprised). Fortunately, I’ve had enough really good employment experiences over the years to be comfortable with what part is me and what part is them.

In my fourth grade class we had a two day workshop put on by representatives from NASA. The Space Race was big in American life at that point. The activity was a simulated mission to Mars with the class divided into mission control and crews of two ships traveling together. On the morning of the first day we were informed that one of the ships had crashed on the surface of Mars and was unable to make the return flight. I was in charge of life support on one of the ships. In a few minutes I provided a solution with charts and resource burn-down graphs. By doing that I effectively ruined the next day and a half of the activity for the whole class.

Soon, after days of tests and interviews I spent less and less time in my regular class and starting in 5th grade was moved to a special class with a only six students (2 each in 4th, 5th, and 6th grades) and told I could study whatever I wanted. I studied the history of transportation, astronomy, puppet theater, building geometric shapes out of manila folders, whatever my interests wandered to. As a class we regularly left school and took a bus downtown to get books out of the San Francisco main branch library as needed since we exhausted the resources of the school library after a couple weeks.

For the next four years I was in the San Francisco schools I never sat in a regular classroom and had the most fun I ever had in school (until graduate school). Every now and then someone would stop by with a textbook and say something like “Dan, you really need to learn some math. Work these chapters, please?” A few days later I’d hand in the work and could go back to following my interests.

When I was middle-school age I moved away from San Francisco. High school and college were much harder. Many teachers mistook my shyness (silence) and inability to flow with the program as stupidity. They would put me in remedial reading one week and only to return me to “A track” (college prep) the next after demonstrating reading over 1200 words per minute (as high as their machine could go). I graduated high school with a D-plus GPA but nearly maxed out my SATs. Only in graduate school and when working on a Ph.D. in astrophysics was I having fun in school again.

I’m a former United States Marine. That probably should make six things you didn’t know about me. I put it here in the Asperger’s portion because many of my most effective coping mechanisms were learned during training in the Corps and I’ll always be grateful for that. I also learned how to get shoes REALLY shiny.

I have recent experience with software development in Vista (literally IN Vista). I work in a .NET shop but we did not build our Vista app in .NET. We used good old unmanaged Win32/C++.

Richard Grimes is a frequent contributor to many professional software journals and his Wrox books Beginning ATL COM Programming and Professional DCOM Programming saved my ass and made me look smart when I was building a DCOM based system working over satellite networking for Ford Motor Company in the late 90’s.

He shows, and laments, that there is virtually no .NET beyond the .NET runtime in Vista. Further, he tracks that the amount of managed code within the .NET framework itself has measurably gone down with each release.

From this he concludes that Microsoft has lost confidence in .NET.

Grimes has missed the point. In building Vista, virtually every RECENT decision (over the last 18 months) has been driven by Microsoft ruthlessly pursuing stability and security. After umpteen intense code reviews this priority is now burned on my butt. At the same time Microsoft is also insisting on broad compatibility with existing applications and systems.

As Grimes demonstrates, the Microsoft OS (Vista) and application code base (Office, etc.) is almost entirely Win32/C/C++. What Grimes neglects to mention is that the Microsoft code base is also incredibly mature in terms of contained bug fixes and work-arounds.

Porting functionality to .NET would have directly increased security. However, porting any major function or system to .NET, while also faithfully replicating all the complicated legacy details contained is very expensive and error prone.

Microsoft does not have infinite resources and they cannot push hard on everything at the same time. Pursuing increased security and stability (in C/C++ those are directly and tightly coupled objectives) had the effect of reducing the goal of “more .NET” from a MUST into a “nice to have.”

The goal of a solid platform is worthy. Improving the security of the Windows platform is also a good idea. Looking at the history of Vista there is a clear pattern of tossing any new feature (WinFS, Avalon, …) if it cannot be guaranteed rock solid.

It’s gutsy that Microsoft has been willing to forgo attractive customer-facing features to pursue greater stability (which is only visible by a lack of instability…) and security (ditto).

It’s wimpy that they have not explained this well to the developer community.

The real issue Microsoft has to tackle is getting their marketing rhetoric in line with reality.

I do not entirely agree with Grimes but he represents a very important outside opinion that many eminent software developers share.

If Microsoft does not address the concerns of people like Grimes or the community he represents Microsoft could lose the “mindshare” race in the long run.

I just read a series of Kathy Sierra’s posts at the excellent Creating Passionate Users blog and I found a common theme in them: “when being stupid is the smart move”

Dignity is Deadly, Part Two - “When you evolve out of start-up mode and start worrying about being professional and dignified, you only lose capabilities.”

How to be an expert - “The only thing standing between you-as-amateur and you-as-expert is dedication.”

And Don’t forget square one… which was perhaps the most powerful. She discusses how you need to orbit back to the basics every now and then – but don’t spend too much time there.

I’ve been a software developer and engineering manager for a long time and to me, the key skill to moving forward is to constantly ask yourself: where am I still a beginner?

I know some people who seemingly do this constantly. They are also the severe early adopters (come to think about it, they are also often really annoying). I’m much more cyclical. I’ll go months “head down” on a project, just doing, and then finally pop up and look around.

And sigh.

Because I know it’s time to go be a beginner at something again.

Every time. Every single time, I find this process stressful. That’s because every time I forget that the LAST time I did this I thrashed around for no more than two days, got traction, and became competent at learning the new skill. Note I said learning the new skill, not competent at the skill. Once in the learning mode the stress is gone, I’m having fun. I feel young and vital again.

I strongly think that this makes the difference between a good developer and a great developer: good developers are competent and reliable. Great developers are willing to move away from the comfort zone of the place where they are competent and dare to be stupid: try a new skill where they are a beginner again.

I’m learning career advancement comes to those who blog. Stupid but true. Incredibly stupid but true. Spend less time actually working – spend more time writing about those 15 minutes you spent today actually being productive – and you will get promoted. It seems to really be a case of obvious over-enthusiasm being contagious.

That said, I am finding that blogging does bend your brain to organize how you communicate into cohesive messages.