What is the purpose of Beta2?

So i thought i would talk a little about what it is we want to get out
of our Beta2 release.  Currently, every team inside the developer
division is at a different point in their release cycle.  Some
teams are trying to finish up all work, whereas some teams have a lot
of work still to do by the time we ship.  This is completely
ordinary and is generally determined by how much work the different
teams wanted to do and how risky they thought it was to be doing work
late in the game.  Now certain teams are what we consider
"platform" teams.  They work on the components that we consider
pretty critical and we want to nail down earlier because the risks of
changing are pretty high.  One example of this is the C#
compiler.  Many teams depend on this feature and it's imperative
that it not undergo massive changes that would then cause pain. 
Other components, like the C# Language Service have very few people who
depend on us.  So it's safer for us to shut down later because we
don't risk other teams if we change our plans.  Basically, when
determining the set of all dependencies, the components that have lots
of dependencies on them would be safe to call "platform" components,
and the rest are called “VS” components.

Now, that said, even though we’re a “VS” component our team is trying
to do very little feature week post Beta2.  And, in actuality,
we'd prefer to do none at all.  Beyond the Implement-Interface
work i mentioned in an earlier blog, we haven't really done anything
else that you won't be seeing in Beta2.  By not changing our
feature set in this way, it lets focus on stability and performance of
the features we already have.   We feel that this gives us
the best chance to deliver the best C# experience to you.

Now, here’s why the above is important: If you have tried out Beta1 or
you try out Beta2 and you want something to be changed YOU NEED TO TELL
US.  I cannot stress how important this is.  We are pretty
darn happy with the product we’ve created and how our current features
work.  So if you use something and go “damn, that’s stupid, but of
course they’re going to fix it” you need to back up and realize that
that isn’t the case.

So, back to the original question.  What’s the purpose of Beta2?  Feedback! 

Feedback, Feedback, Feedback, Feedback,

We’re showing you what we want the final release to be like and this is
pretty much the last chance for you to tell us if it’s good or
bad.  If it meets your needs or not.  If our defaults suck or
not.  If there’s something that’s going to make our break your
decision to go with VS2005.  etc. After Beta2 it’s pretty much all
over.  We ship the final version in a box and that’s it until the
next release or service pack.  

At the end of the day, what you need to realize is that we are very dumb people. 

Here’s a few ways that we’re dumb:

  1. We’re really bad at knowing how every single user is going to use
    our product.  Despite all the research we do; all the design
    reviews we do with customers; all the councils we communicate with,
    etc. etc. etc.  we still don’t know exactly how you will use our
    product.  And, it’s quite likely that there are ways that you
    could help us make it better for you and all other users.
  2. We’re very good at becoming complacent with the job we’ve
    done.  We’ve been using these features for months or years now and
    we’ve gotten so used to them that it’s hard to think objectively about
    them.  Bringing in a fresh set of eyes is invaluable to clearing
    up the cobwebs that are blinding ours.

You need to help us not be dumb!  Together we can make the C#
experience even better.  Feel free to contact me about anything,
or go to http://msdn.microsoft.com/ProductFeedback to enter an
issue.  No topic is too minor, and through your contributions and
the community’s feedback on those contributions we’ll know what to do
for you.

Thanks very much in advance!