If you could make Microsoft do five things for developers…..


Robert Scoble believes that MSDN Magazine is like the PDC  (in terms of content) but a cursory glance at the articles over the last 17 months doesn’t support that claim. There wasn’t a single issue in 2003 with content (that made the cover – most articles are referenced on the cover) focused on future technology. Three of five this year have covered/focused on future technology. I don’t think that is very consistent and it certainly does not indicate that it is like the PDC (which is virtually 100% forward looking) as you suggest.


The bottom line is that we (Microsoft) have development tools (VS.NET 2002, 2003) in use today. These tools have bugs (some big, some small) and they have not been fixed in the current versions of our software. There are many scenarios in which these tools can be used and many of the scenarios have not been written about in MSDN magazine or the MSDN on line presence. Don’t get me wrong, I think the content that is out there is generally quite good. However, if I’m a software developer trying to get my job done today, I want the following things:


1) Microsoft to fix the bugs (in Visual Studio .NET, .NET Framework, etc.) that make it harder for me to build software
2) Microsoft to create more content that addresses the topics/scenarios that I face everyday
3) Microsoft to give me the ability to redistribute .NET Framework QFEs with my product (regardless of what size ISV I am) and make QFEs available to a wider audience (yes, I know that means more testing, etc.)
4) Microsoft to put more mployees on the lists, newsgroups, forums, etc. That is, I want folks that can help me with support type issues and I also want folks with experience actually implementing the technology.
5) Microsoft to expose a Bugzilla like database for .NET development related bugs. I would like to know if a bug I’ve encountered has been reported, if a fix is in the works, etc.


If Im a software developer, I want Microsoft to spend as much of its resources as physically, humanly, and financially possible to address the things above. At face value, any sign that Microsoft is doing otherwise will be viewed as negative (waste of money in the case of Greg but there are many other negative views) by many. I think most executives and employees feel we are doing everything physically, humanly, and financially possible to achieve those goals. That said, I think there are many developers who are not happy with the some of the results.


I’ve been compiling many gripes, concerns, bits of feedback, etc. from the blogosphere and the field for over a year now and what you see above is a 30,000 foot level view on the problems most developers face. What are your thoughts? Am I way off base here? If you were in charge, what five developer related things would you have Microsoft focus or invest in to make the developer experience a better one?


Comments (21)

  1. Anonymous says:

    1) Don’t just fix bugs, fix the underlying problem.

    2) Go back through the framework and look for ways to improve it. A good example is ADO.Net why do I end up writing the same lines of code, over and over. If I am writing the same code and just the parameter changes then give me a method or object that encapsulates that pattern. The application blocks are a good start but market them more. And make them easy to install and use to build actual applications.

    3) Where are the application objects or put another way where the heck is my 5GL. I know I am in the minority here. I remember programming mainframes and minicomputers with 4GL languages like Magic and PowerHouse. The nice thing about these were I could spend more time focused on a typical application logic and issues rather than mundane tasks like data access. In a lot of ways it seems we have gone backwards not forwards. J2EE EJBs promised that I could focus on business and application logic. It never delievered. Maybe .Net can deliever. I want to go back to focusing on the problem I am trying to solve not how to connect my grid to my view.

    Seems to me these days I spend more time on database access than on application logic. More time than even the bad old days programming COBOL.

  2. Anonymous says:

    Your five wishes seem hopelessly naive. How do they help Microsoft’s bottom line? Actually I think a couple of them might, but your post is focused on the benefit to the external developer, not the benefit to Microsoft. When I want to change other peoples behavior, I have to communicate how it benefits them or I’m wasting my time. I think your post and Greg’s rant are both a waste of time, until you can show how Microsoft would benefit by changing its behavior.

  3. Anonymous says:

    Rabi: I guess I figured fixing the underlying problem was assumed. I’d say fix the bug in the existing product (so I can have it now) and fix the underlying problem going forward.

    Thanks for the comments.

  4. Anonymous says:

    John Canvar-Johnson:

    Considering that Microsoft is doing work in many of these spaces, I don’t think it is that naive.

    I’m pretty sure most people can extrapolate the effect (short and long term) to the bottom line as it relates to my post. In other words, I don’t think I have to spell it out for people to see the value for both sides.

    Ultimately, all of these issues relate to customer satisfaction (fewer bugs, better support, etc.) and platform adoption (vibrant ISV community, innovative applications). If you don’t have both of those then you will wind up with no bottom line to worry about.

  5. Anonymous says:

    But what’s it worth to you? Yes, all of your suggestions are "good things", but is fixing a bug in the current framework more important than getting the next version of the framework out the door? More employees on the lists, newsgroups, and forums means fewer employees fixing bugs, coding the next version of the framework, and developing the content you say we need. What do you think Microsoft should stop doing (or reduce their effort at doing) to achieve those things you want them to do? I would be interested in knowing whether developers would like to see a service pack for the framework/VS.NET that fixed the top X number of bugs, if it meant an Y number of months delay in VS 2005. I know some developers would like Microsoft to put resources into fixing bugs in the 1.0 version of the framework, but, personally, I would rather they didn’t (unless the bugs are security holes).

    Without knowing the tradeoffs, your list seems useless, and yes, I still think it’s hopelessly naive.

  6. Anonymous says:

    Well, tell me this John – do you think the majority of companies are adopting new technology the day it is available? Do you think the majority of companies are adopting new technology within 12 months of its release?

    I don’t have hard numbers but based on my experience in the field I would say that the majority don’t adopt the new technology in any significant way until 12 or months after the release of the software. Given that they are prepared to spend years on that version of the framework (none of them make the decision to use .NET or the .NET Framework with the idea that they want to use the next version) I’d say that it is worth it to fix the current version.

    Why would you rather Microsoft didn’t fix the bugs in the current version? Is it because you are one of the minority that can/will adopt the technology as soon as it is available? Most will not and that, in essence, validates the list.

    You are correct in that you have to know the tradeoffs before you could truly say one way or the other what would be most beneficial. That said, I believe what I am advocating is most beneficial based on adoption rates and current usage of the platform.

  7. Anonymous says:

    I think point 5 you mention is very important. It would be good to have a clear list/database/searchable thingy where I can find which items are known to have problems (either in functionality or documentation), and to get some clue if the issue is being worked on, is considered too low priority to spend time on or has already been fixed.

    Also it might working as a ‘here be dragons’ sign when starting work with an API you haven’t been working with before.

    Another issue is to improve the bug reporting experience. I recently stumbled across a problem with the PropertyGrid control, but I have no clue how or where to report it.

    (There is a problem with the code that preselects the previous selection from a dropdown list of a field that has a custom TypeDescriptor. That code passes no ‘context’ argument to TypeDescriptor.ConvertToString.

    Or more correctly: it passes the context in one call but not in other calls.

    This makes the existence of the ‘context’ argument a bit moot, because you now need to pass it to your TypeDescriptor in a different way for those TypeDescriptor implementations that need it.

    One issue is of ethical nature: I used Reflector to discover the precise nature of the problem and locate the problem, probably violating some license; should I still report that problem in the implementation of System.Windows.Forms.PropertyGridInternal. PropertyGridView.GetCurrentValueIndex() ?)

  8. Anonymous says:

    To your list of software to be fixed in step (1), I’d add Internet Explorer. When developers on weblogs.asp.net complain about it and switch to Firefox, that’s bad news since most of us want to use Microsoft products when possible. That browser market share can slip away quickly – Microsoft snatched it from Netscape in a few short years.

  9. Anonymous says:

    I find a view that bugs shouldn’t be fixed, only new code developed somewhat, hey, great if my customer’s thought like that! Tragically, they don’t, they want what they have got to work.

    I think your list of 5 is good – but too biased towards .NET. There are a lot of other technologies still in use (yes ye goode olde IE) and the list applies to those as well as .NET.

    I’m going round and round MS employees blogs hoping that someone, somewhere, can point me at the headers and lib that will help me test IE on XP SP2 – I still haven’t found an answer.

  10. Anonymous says:

    Pete,

    What, specifically, are you trying to test with IE/SP2? Please shoot me some more information out of the comments at alexloweATmicrosoft.com. I’ll see if I can’t track down some more information for you.

    Alex

  11. Anonymous says:

    How about, free Visual Studio ! Even if free-VS users have to agree to develope for MS platforms only.

    Make APIs simpler. "Simplicity is the ultimate sophistication."

    Make device driver and application use the same programming model. OK I know this won’t affect most developers, but it’s a real pain to develope drivers.

  12. Anonymous says:

    The first five things MS could do is fix VS2003’s file locking problem so that I dont have to check in all my code, close VS2003, delete all the files that refuse to be released when I try to build, reopen VS2003, check out the code, go to where I was and then build again. Repeat about 10 times a day.

  13. Anonymous says:

    Alex,

    I’m really trying not to take sides in the cutting edge vs. current technology argument. I work with clients at all stages. In fact, my current client is still NT4/Office 97 on the desktop. I’m much more interested in Microsoft asking us more sophisticated questions. The least sophisticated question to ask developers is "What should Microsoft do for you?". A more sophisticated question is "What problems are you having implementing Microsoft’s platform?". Better yet is identifying the tradeoffs inherent in potential solutions and letting us give feedback based on those.

    Microsoft has finite resources. You’re asking for our help in suggesting how to allocate those resources. I’m responding by saying that I’d really like to know what it would cost me if Microsoft implements your suggestions. Opportunity costs are most important here, i.e. what will Microsoft not be able do because it is using resources for those solutions.

    To respond to your specific points. I expressed my preference about making fixes to version 1.0 of the framework. I don’t consider that the current version of the framework. Version 1.1 has been out for over a year now. You’ve made some assertions about technology adoption rates that I can’t verify or refute. I think your statement that "none of them make the decision to use .NET or the .NET Framework with the idea that they want to use the next version" is flat out wrong. I’ve been involved in several projects that had phased delivery dates spanning releases of the framework (1.0, 1.1, 2.0). Sometimes these projects do, in fact, target future versions of the framework, despite the obvious risks that entails.

  14. Anonymous says:

    John,

    For many people, "What should Microsoft do for you?" IS asking them what problems they are having. Presumably, people will answer by telling Microsoft that they should do or fix x, y, and z because those are pain points (read problems implementing Microsoft’s platform).

    I am certainly not in a position to provide the costs associated with the various options. While I think that would be an interesting conversation, it is one that could only be held with an executive who has the information and it would only be held internally. I wanted to hear general feedback on things that folks would like to have done knowing that you don’t have every bit of information to make the decision (and that is OK).

    I should have added a qualifier like "most" when I said that they don’t decide to use a framework with the next one in mind. My point wasn’t that you don’t consider future frameworks. My point was that most customers don’t decide to build their first .NET application on version 1.1 of the framework because of things that might be in 2.0. That said, your scenario of phased delivery on multiple versions of the framework is even more reason to fix the issues that exist in the current (1.1) framework. If the customer has a great deal of problems with the first phase, they may never make it to the second or third phase.

  15. Anonymous says:

    a non-security bug viewable database would be excellent …

  16. Anonymous says:

    I guess I am the minority here, but I am fairly happy with the resources that Microsoft provides me as a developer.

    The online MSDN Website is awesome, and answers most of my questions, most of the time. If I can not find the answer there, I can usually find it in newsgroups, friends, or just figuring it out for myself (the built-in help in Visual Stuido.NET is great).

    The development tools they provide are top notch, I work with a group of Java developers and their tools are no where close to what we have.

    Microsoft also supports the development community, they make an effort to support our local .Net user group (www.azdnug.com) and they often send speakers (Scott Guthrie is presenting next week).

    If there is anything I would ask for from Microsoft, it would be that they better market their technologies, I can not tell you how many non Microsoft Developers I have talked to that STILL think that VB is NOT an Object Oriented language. I also know that a lot of non technical managers have no clue what .NET is, but they sure can tell you all about JAVA, why is that?

    Just my 2 cents, and no, I do not work for Microsoft!