API Changes between CTP [Pablo Castro]

We’ve been seeing several comments on email and blogs lately about changes in the APIs between CTP (Community Tech Preview) releases. I understand the frustration that these changes could cause, so I wanted to jump in and comment on the topic.

As part of being increasingly more open in our development process, product groups at Microsoft such as Visual Studio and SQL Server are using this CTP-centric model as an extension to the traditional Beta programs. Personally I love the CTP model because it allows us to get bits out much more often for our developer community to take a look, start experimenting with the new bits and provide feedback on things they like (or not like :).

Now, this is great but it comes with a cost: releasing CTPs more often means that more of our internal development process is more exposed. During development of large products such as SQL Server or the .NET Framework we experiment, try things out and do some early, tentative implementations. Most of these “experiments” end up being features and we clean them up, add tons of new tests for them, etc. There usually are a few of these experimental features that we decide not to ship, either because we think it won’t be ready for a particular release, because we get strong feedback from our customers saying that the feature is not what was expected, or because the result is not what we expected.

If we decide to remove a feature that we introduced in-cycle, we mark these APIs as [obsolete] for a while, and then we remove them. This gives folks that have applications that were built with these experimental features a chance to see the obsolete warnings and fix their applications before the APIs are removed. At this point is where you see something that you like and just when you got exited about it you realize it’s marked [obsolete] :(

Note that this flexibility during development is key to us. We need to be able to add and remove features so we can see if they’ll live up to the our and your expectations.

So basically the trade-off is: get only a couple of relatively clean Beta version during the development cycle and see a few changes, or get several CTPs during the development cycle (including some betas) and see more of these intermediate features coming in and going away.

Pablo Castro
Program Manager - ADO.NET Team

Disclaimer: This posting is provided "AS IS" with no warranties, and confers

Comments

  • Anonymous
    April 05, 2005
    And will there be CTPs between Beta2 & RTM? (Sorry for the peicemeal question asking thing :-P )
  • Anonymous
    April 05, 2005
    I would personally like to have the ability to get the CTPs. I can always choose to ignore them if I find them too volatile, but I'd much rather have the ability to see them - even if it is at the cost of too much change.

    In short - My vote is FOR the way things are right now.

    BTW - How much change do you anticipate between BETA2 & RTM?

    - SM
  • Anonymous
    April 05, 2005
    Hi Pablo,

    I'm certainly keen to see the info continuing, even when it might be in rough form. Watching it evolve helps with understanding the intent of what's done in the long term.

    Regards,

    Greg
  • Anonymous
    April 08, 2005
    Having the CTP's available has been great. I think the value of seeing the product earlier and the evolution of it far outweighs any changes we have to suffer through. Keep it up guys!