Pigeon-holing, for fun and profit

I tried to explain my music tastes to someone today. I suppose I could have just added the usual pigeon-holes I use to identify the music I listen to when no one else is around: Industrial, Celtic, and other stuff. However, I was feeling somewhat overly precise, and it came out, "Industrial, that is somewhat between metal and techno; Celtic, heavy drum electronica... And Nina."
We all pigeon-hole music, it's how we define our tastes. Is it Country? Rock? Pop? Jazz? etc. Then, those who look deeper into a genre see all sorts of minor variations, for example, Yahoo Music breaks "Rock" down into:
  • Classic Rock
  • Psychedelic Rock
  • Glam Rock
  • Southern Rock
  • Surf Rock
  • Rockabilly
  • British Invasion
  • Pub Rock
  • Garage Rock
with most of those having even more sub-genres, such as the varying shades o' metal:
  • Speed Metal
  • Black Metal
  • Death Metal
  • Pop Metal
  • Rap Metal
  • Progressive
  • Goth Metal

Those outside of "the know" likely wouldn't be able to hear the difference between Death Metal and Speed Metal, and many wouldn't even care as they complain of their ears bleeding. However, some do, and define a difference. Thus, pigeon-holes a' plenty.

So, you ask patiently, what does this have to do with development? Well, a lot (IMO). Just as with music, developers have shades of definition: Web Developer (using .NET), VB developer (desktop), VBA developer, DBA, and so on. People watching a team see, "Developer", but those on the teams have their own particular pigeon-hole they like to go to when people aren't paying them for something specific. (That's my way of getting around the usual uber macho developer who says, "I'm not pigeon-holed, I'll develop anything." Everyone has a preference -- many could write anything from a device driver to a Web service, but it's what you prefer to write that matters here.)

Let's take a side trip into MSDN for a while. MSDN is many possible pigeon-holes. First off, it is The Library {insert dramatic pipe organ music and angels singing here}. The Library is a mirror of the online help for all of Microsoft's developer products. It is the Library of Congress, the OED, Hammurabi's stone and more. Tangentially part of The Library are the whitepapers written by Microsoft and many, many talented outside authors over the years. These are the annotations, magazine articles that explain just what was meant by the pure carvings of The True Library. Next, we have Search. OK, let's forget search for now (For all my complaints of search, it is better than it was, feel free to try it again, for the first time. I'll just keep using Google, thanks). Then finally (in this little story), we have the Developer Centers, the "radio stations" of MSDN.

When the idea of Developer Centers first came into being, they were broken down by the SKUs (product codes), plus the Framework itself, and the cool tech du jour, Web Services. When I came along and joined the team, I repeatedly said, "If someone doesn't identify themselves as a {foo} developer, we shouldn't really have a developer center." Let's play with that one briefly, "I am a desktop VB developer." Check. "I am a Web developer using ASP.NET." Check. "I am a Security developer." Bzzzt! I think all developers need to know security information, but having a single place for all that content (a Security DC) means that now I have two places I need to monitor.

The total number and scope of the developer centers grew over the last two years until we have many, many DCs. At the same time, the number of "Content Strategists" (what it says on my job plaque) has slowly dwindled to three (plus one manager -- and a few "open heads"). Many of the DCs are now managed by the product teams themselves, or their nominated representative (as in the ISV DC).

Can I possibly get onto whatever track started this rambling? OK. Let's gather all the threads of this, and finish.

  1. There are many developer centers today, generally aimed at a product from Microsoft
  2. It actually (believe it or not) takes a fair bit of work to keep a DC fresh and managed
  3. The team I'm on is losing ground to keep #2 true -- the Three+One mentioned above attempt to keep 13 DCs in the air with fresh content and information.

Thus, my question finally: Do the Developer Centers help? Does having your own "Progressive Adult Alternative" station point out the information you need to develop the apps you develop, or would the Library+Search do it for you? Perhaps just a listing of, "Here's what's new this week, and for the last n weeks" plus the occasional download help? I personally feel that the whitepapers are far more valuable than the pure docs, but I'm leaving you all with the final word on this. How would you surface the information on MSDN (not counting The Library) to make things more useful to you?

Print | posted on Monday, June 20, 2005 6:24 AM

Feedback

# re: Pigeon-holing, for fun and profit

left by Anonymous at 6/20/2005 8:49 PM Gravatar
Well I am a C# Developer, I develop websites, web services, server services and desktop apps depending on the job they want me to do. My take on developer centers are this. Yes I have went into them and seen them but they are not something I say Yeah I need to go check on this every day or weekly or monthly. I usually do a one time visit seen what it is like and go on my way to only end up back there if a Google search returns me there.

Now there is one exception to the rule, a new DC has me returning on my own, Coding for fun. I have often said long time ago that when I go home I code things for me, or things because I am curious not something I would typically get paid to do. That I think is the only DC that is well fun. When you think about developers yourself included, we are a lot like extremely intelligent kids. What's the best way to make a kid learn, let him have fun while he is learning. I have learned more about the .net framework and even my own architecture has vastly improved since .net because .net in general is just fun. Now how do you make security fun is another issue.

Now another thing though, like I said my own architecture has improved. This is because of the architecture of the .net framework is so good, it has made me want to become better. When you find something good people will copy it or emulate it. The .net framework is a great example of leading and teaching by example. Producing good code off the old operating system API's is horrible, remembering which API did what and how and they were all flat, no namespaces. One of the things that has always highly frustrated me with MS when they tell me to do something in the docs but do not do it themselves. A few examples of this is VS.net I remember beating up on Brad Abrams once IRL about VS and everything in it and all settings even the freaking start page being in the registry, where the whole time the preach was on about keeping your .net apps out of the registry and using config files. Frustrating, which is why I also think you are still seeing a ton of apps being written living in the registry. Another Example is I remember sitting there one day when something like the SQL Database Design checker or something like that came out, basically it looked at your SQL Database checked it out for possible problems, kind of like FXCop for databases. I thought hmm great idea, I ran it against one of my larger databases I designed and had only like 4-5 errors. Then I decided to run it against a BizTalk database, somewhere over a hundred errors, this left me kind of sick to my stomach, why would Microsoft put out a tool telling us to check our databases when they can not even make their own databases that pass it. So my biggest point to all of this, we developers look at what Microsoft does as well and follow their examples, we may read that we should do it differently however if Microsoft can do it why can’t we. Now I know better than this, and when I code for real and not coding for fun I refuse to put anything in the registry I run FXCop and so on but there are many times where the thought does cross my mind to take a shortcut only because I have seen MS do it. I Agree secure coding must be there, but the biggest thing I think that will help with security is to lead by example.

# re: Pigeon-holing, for fun and profit

left by acmeadmin at 6/20/2005 11:13 PM Gravatar
Cool -- thank you for all of this, Jeff.

C4F has been my favourite DC to work on. It took a few major battles by Duncan, Dan and Brian to bring it to life, but I think the response has proven just how much there is a need for something like it.

On the "lead by example" front, I agree. When I first joined MSDN, we were in the midst of a security push, cleaning out articles that showed really bad practices like "UID=sa;PWD=;" and so on. However, as you describe, it is an ongoing process. Brad Abrahms has been leading this charge, trying to ensure that all of the product teams get the message - consistency, security and standards (OK, that's three messages). I've watched as he ripped apart proposed APIs, either because they (badly) re-implemented features of the Framework or didn't do something as simple as run FxCop on their design.

It will get better, I hope, and will if people like you continue to encourage us to do better.
Comments have been closed on this topic.