Imagine, if you will, that there is somebody in Microsoft whose job it is to make sure that companies who want to develop software on the Microsoft platform have everything they need to do so successfully. They need to have developer tools like Visual Studio, they need information (MSDN and MS Press books, for instance), they might need training. That's not all, though. What else do software companies need in order to be successful?
I have some theories, but I suppose it might help to introduce myself. I'm a program manager at Microsoft, currently working on ISV (”independent software vendor”) programs (as in “offerings“, not as in “software programs“). I've been at Microsoft for almost four years, mostly doing marketing (Wait! Don't leave yet! I'm not doing marketing these days - please don't hold it against me!); before that I worked as a programmer and in other technical roles at a number of independent software vendors, including Asymetrix (now Click2learn), CenterLine, and Lotus. My early career was competing with Microsoft when I was working at Lotus, and spent a whole bunch of time working on Unix (Centerline made Unix C and C++ compilers and interpreters). So I hope I have, at the very least, some empathy for our ISV community, and all of the reasons they might love and fear Microsoft simultaneously.
Okay, so for those of you still reading (Hi Dad! Are you the only one?), here's where we're at: we have a bunch of things we give ISVs, including free or heavily-subsidized training, MSDN subscriptions, the MSDN website, the Microsoft Partner Program, the opportunity to list their solutions in catalogs (like the Windows Catalog at www.microsoft.com/windows/catalog), and logo programs (such as the “Designed for Windows XP” program).
What else should we be providing?