A Django site.
July 28, 2008
» Blogging about testing

With our Rosario release, we are entering the software quality tools market in an even more serious way than we are today.  You've heard me talk before about the "pillars" of the Rosario release and one of them being - Testing and Application Quality.

Several months ago, we had a new guy join our organization.  His name is James Whittaker.  James is now an architect for our Testing products.  He has a long history of passion for the testing space - going back to his dissertation on model based testing.  He is an author and has written (or co-written): How to Break Software, How to Break Software Security and How to Break Web Software.

James has entered the blogosphere and I wanted to introduce him in case you are interested in following his sometimes controversial opinions.  Visit him at: http://blogs.msdn.com/james_whittaker/default.aspx

Brian

July 19, 2008
» Clearing up confusion

There has been quite a lot of confusion around the StyleCop free download tool that was put on Microsoft downloads a while back.  It first crossed my radar probably 6 weeks ago when it was initially made available because it was positioned as a generic source analysis tool and there was a ruckus in the VSTS community about how it related to FXCop and the tools provided in VSTS Developer and why we were releasing another tool to do the same thing, etc.

At the time we (the VSTS team) really didn't know much about it.  We looked into it and found that it was an internal tool that had been built by a developer in another division at Microsoft who was proud of it and wanted to share it with the community.  There was a flurry of activity to try to correctly position the tool that I was only vaguely aware of and the issue seemed to be settled.

It came to my attention again about a week and a half ago when our MVPs started a thread about how StyleCop is a useful tool and Microsoft is screwing it up by squashing community around it, etc.  That kerfufel was started by this blog (I think) http://lovethedot.blogspot.com/2008/07/come-on-microsoft-isnt-this-little.html.

I decided it was time to understand this situation better and engaged with the appropriate people - most notable Jeff Beehler, Jason Allor (author of StyleCop) and a couple of people from the Team Developer team to try to get to the bottom of this.

What we found is what I would characterize as a series of misunderstandings all the way around.  We found that StyleCop is, in fact, a very useful tool and it does things FxCop and TeamDev doesn't do (and it doesn't do the things they do).  It is a wonderful complementary tool.  StyleCop is a tool for doing coding style checking to verify that source code is formatted the way you want and follows the style guidelines for conventions.  While there is some overlap with FxCop (like checking identifier capitalization), the overlap is miniscule as StyleCop does not do the deep analysis that the other static analysis tools do to enable code correctness checks, security checks, etc.

So, after much going round on this one, we are going to be taking steps to further clean up the branding/positioning of StyleCop to minimize confusion.  We will also be clearing up how the tool can be used and extended by the community.  We will not be prohibiting any extensions or additions people choose to do.  We will be documenting the extensibility APIs necessary to make full use of StyleCop as a source code style checker.  In fact, we hope you find the tool useful and use it as extensively as you like.  Keep in mind that it is not a Microsoft product.  It is not even a Team System Power Tool.  It is a tool developed by a very passionate developer at Microsoft (on evenings and weekends).  There's no support, servicing, evolution or anything else beyond what he can get done in his spare time.  Style checking is an intersting feature and may show up in an official product at some point down the road but, until then, if you find StyleCop useful, please enjoy it.

I feel obligated to comment on one additional aspect of the controversy that came up.  In the conversations I saw some disdain for our policy of disallowing disassembly/reverse engineering in our license agreement.  This is a pretty standard clause in almost all commercial software license agreements.  Commercial software is all about intellectual property.  These reverse engineering prohibitions are how we, and others, protect the IP in our code.  They are not going away and, in fact, I expect StyleCop will continue to have one.  The way we are addressing this for StyleCop is by publishing the extensibility APIs to enable what the community is trying to do without reverse engineering.  In other cases, we have taken other approaches when there is a legitimate need.  For instance, with the .NET Framework, we released large portions of the source code to enable people to better design and debug .NET applications.  I don't want to make this long post any longer by further defending this approach - however, I feel strongly about it and am happy to start another post on the topic if someone really wants to debate it.

I expect to see updates to StyleCop in the coming weeks to address the positioning and extensibility limitations.  Keep your eye's on Jason's blog if you are interested in following it.  I'll try to post something at any major development.  I'm really happy we were able to clear up the confusion and make this valuable tool even more valuable.

Thanks,

Brian

» VSTSDB 2008 GDR July CTP is now available

 

Microsoft® Visual Studio Team System 2008 Database Edition GDR July CTP

http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&displaylang=en

Most important changes:

  • Project upgrade is now in place. For those of you who were kind enough to donate their database projects, thank you!
  • Mixed projects are no longer supported, from now on server projects represent only server creatable objects and user objects that need to be deployed to “master”. Another change is that server options will not get deployed; we only validate the settings as pre-requisites for a deployment. As such server options (sp_configure) have been added to the project system.
  • The interpreter now understands temporary tables, table variables and select into column sources.
  • The Static Code Analysis MSBuild task was added
  • XSD Reference user interface support is enable, but it does not yet create XML Schema Collections
  • And lots of fixes since CTP14

Brian

July 16, 2008
» July '08 Power Tools are available!

You can download them here: http://www.microsoft.com/downloads/details.aspx?FamilyID=00803636-1d16-4df1-8a3d-ef1ad4f4bbab&displaylang=en

You can read all about them in the preview I wrote a couple of weeks ago: http://blogs.msdn.com/bharry/archive/2008/07/08/july-08-tfs-power-tool-preview.aspx

This is the first release of the Power Tools that we did some limited pre-release testing with our MVPs.  It was very valuable because they helped find a few bugs that would have otherwise been in the release.  The Team System Web Access update and the SCOM management pack are still in the works and should be available shortly.  Also, for those of you looking for an eScrum update for TFS 2008, it's getting close to being ready too.

Although it's not as big a release as Dec or Mar, the feedback so far has been very positive.  We've started development on the next set already.  I hope to have them available in the Sept/Oct timeframe.  I'm building one of them myself and I'm really psyched about it.  I think you are really going to love this release.  I'll give you a preview some time in the next month or so.  Until then, enjoy the latest release and let us know what you think!

Brian

July 9, 2008
» Tickled by a Rosario feature

Today, I'm finally getting around to working on something I've been wanting to do for a while.  Rosario is a big release with a ton of great stuff and I've been thinking for a while that I really need to work on figuring out how to articulate all of that value in a way that people can really understand and be excited about.  To make sure I'm not forgetting anything, I decided to peruse our feature list to refresh my memory on everything we are doing.  In the process I got to use one of the new Rosario features (after all, we already dogfooding Rosario for some scenarios) and I was just so tickled I had to share it.

There are a thousand or more features in the Rosario feature database in various states, some related to each other, others not.  To help make sense of all of the features, we group related features into "Deliverables" that are a set of features we build and deliver at the same time.  So I really want to see the list of deliverables (there are far fewer of them) but I want to see the feature detail easily in the event I can't remember what is in the deliverable.  So, what I want is:

All deliverables for my team that have not been cut (no point in looking at the ones we've already decided not to do) and all of the related features that are also not cut.  I want them grouped by "feature team" and include the current state of the deliverable.  It turns out that in Rosario, this is an unbelievably easy thing to do and after 15-20 minutes of poking through it, I have a good overview of what we are doing :)  To make things even better, this functionality is in the Rosario CTPs we've already released so you can try this kind of thing out yourself just for kicks.

Here's the query that I wrote (in Team System Web Access).  Note we have a custom link type called "Produces" which is a relationship from a deliverable to the list of features that the deliverable will produce.

image

Running that query produces a really nice hierarchical list of deliverables and the related features...  A few of these, you'll notice we ended up deciding to release early in SP1 :)

image

The new features for helping you manage lots of work items with complex relationships are really just truly amazing.  I really think you are going to like it a lot.

Brian

July 8, 2008
» July '08 TFS Power Tool Preview

We are approaching the release date of our next release of the Team Foundation Server Power Tools.  We are targeting to have it available in about 3 weeks.  As I've mentioned before this is a smaller Power Tools release than we typically have done.  This is because so much of our effort has been on getting TFS 2008 SP1 done.  I am expecting that our Sept Power Tools release will have a lot more in it.  We'll start planning that feature set soon.  The other thing is that this Power Tools release is going to be more of a "wave" than a point in time release.  A few of the components are being released at different times and in different vehicles.

The main components of this release are:

  • A new UI for subscribing for TFS Alerts - This new UI is a VS plugin (and therefore much more friendly than the BisSubscribe command line tool) and enables much more flexible subscriptions.  This is, perhaps, the premier end-user feature in the July release.

The first thing you will notice is a new node in Team Explorer for "Alerts" that will open the Alerts Editor window.  The Alerts Editor can also be opened from a menu item on the Team menu.

image

The alerts editor contains your alerts categorized by the event type the alert is based on (Checkin, Work item change or build completion).  From here you can easily add or remove subscriptions.  When you create or edit a subscription, you get a query builder like experience for describing the conditions that will trigger the alert.  You can build very sophisticated queries and can also flip to the Filter Expression tab to see what XPath expression is being generated (the underlying subscription engine works on XPath queries).

image

Here's an alert definition that will notify me if any new work is assigned to "my team"...

image

When you first start out, the flexibility of the query builder will be a bit daunting.  To make it easy, we have several handy short cuts.  You can right click on a folder in the Source Control Explorer and select the "Alert on Change..." menu item.  You will be presented with the following dialog and after hitting Ok, you will be notified of all subsequent checkins under that folder.

image

In a work item query results list or in an open work item, you can right click and select "Alert on Change..." to configure an alert for that selected work item(s).  This includes an easy way to configure the alert for "Anything changes", "State changes" or "Assignment changes".

image

If these shortcuts are too constraining, we have more... When you add a new alert, you are presented with a list of templates to choose from.  For example, choosing "Check-In to a specific folder with a policy overridden" will fill out the query builder with the right clauses and all you have to do is fill in what folder you want to be alerted on.

image

I wish I could say the list of templates was customizable but it is not for now.  We'll certainly take suggestions for new templates and I hope that at some point we can make it admin or end-user editable.

One other thing people are likely to find confusing and/or frustrating is one particular characteristic of the work item tracking events.  There are two kinds of fields in work item tracking (for the purposes of eventing) "Core fields" and "non-Core fields".  Core fields are inherent to every work item type - State, Activated by, Activated date, Area path, Assigned to, Attached file count, Authorized as, Changed by, Changed date, Created by, Created date, Description, ID, Iteration Path, PortfolioProject, Reason, State, Title, Work Item Type and non-Core fields are all of the others.  The eventing system works by creating an XML message for every change that happens in the system.  Subscriptions work by running an XPath query over the XML message and sending alerts when the XPath query matches the message.  In order to reduce the data volume and overhead of processing events, the XML message for work item tracking changes contains only core fields and any field that changes.  It does not contain non-core fields that did not change.  When using the Alerts Editor query builder, you will observe this distinction in the list of operators that are available for different fields.  For non-core fields, you will only find "Changes", "Changes From" and "Changes To" because they are only available for matching if they change.  For core fields, you will find =, <>, and other equality operators in addition to the "change" based operators.  You can do this because they are always included in every message.  There is no way to identify additional fields to be included in every message and I suspect you will find this limitation frustrating.  We'll look at improving this in the future but that's going to require server changes.  Despite this limitation, you can create some powerful new subscriptions with the Alerts Editor.

I really hope this feature will go a long way to making the power of the notification system more available and approachable.  There are a bunch of features we'd still like to add to the alert system - enabling people to more easily subscribe for their whole team, scheduled summary notifications, etc but I hope this is a good step in the right direction.

  • TFS Best Practices Analyzer support for SQLServer 2008 - It wasn't ton of new work but this new version of the BPA tool now supports correctly identifying configuration issues when your TFS server is installed using SQLServer 2008.  We've done a variety of bug fixes and rule improvements along with that.

 

  • Support for changing user's names - One of the support issues we get from time to time is that administrators want to change the names of some of their users (in Windows or Active Directory).  What they find is that TFS doesn't cope with this very well and your work items, event subscriptions and a few other things get left behind with the old user name.  This release of the Power Tools contains a new tool called TFSUsers that enables you to update TFS's understanding of user name changes.  Ideally this would just be automatic (and we plan for it to be in our next release) but until then, the TFSUsers tool will help you.

"TFSUsers update" takes a mapping file and will update the user names as described in the mapping file.

"TFSUsers computedelta" can generate a mapping file for you by comparing the current Windows/Active Directory user names to a previously captured baseline set and automatically generate the mapping file needed for "TFSUsers update".

  • Team System Web Access Update - You can read more about the specific updates in my post on the CTP we released in April.  Due to our requirement (in this release) to simultaneously release in all 10 languages, the TSWA update is going to trail the July Power Tools release by about a month.

 

  • TFS SCOM Management Pack - In this wave, we are also releasing a SCOM management pack (the successor to MOM Management packs).  This is designed to help an IT operations team who is using System Center Operations Manager and managing TFS servers to setup automated health monitoring of the TFS server and take full advantage of the System Center features.  This tool will also not ship directly in the Power Tools release because there is already a defined web release mechanism for management packs and there's no point in creating a new one.  It is in limited "Beta testing" now with a couple of customers (the early feedback is good) and should be available on the System Center Operations Manager 2007 Catalog by mid August.

image

  • Bug fixes in WIT Templates and the Process Template Editor Power Tools

  • Improvements in TFPT.EXE
    • tfpt treeclean was an existing command that will delete files on your local disk that are in source controlled folders but are not in source control.  The primary difference is that it is now dramatically faster.  tfpt treeclean now replaces tfpt online /purge, which is no longer available.
    • A new tfpt scorch command - scorch is like treeclean except that additionally it re-downloads content that has been changed locally without pending an edit and content that has been deleted locally without pending a delete.
    • Important bug fixes in tfpt unshelve /migrate where the base versions for a 3 way merge were sometimes being computed incorrectly.
    • Improvements in online, scorch and treeclean to now handle folders as well as files, to properly handle single file mappings and proper treatment of items with pending changes other than "edit".

 

Well, that's it.  I think there's something in there for just about everyone.  I'll do a final announcement when each of the pieces are available for download.  Over the next few weeks we'll scope out what will be in the Sept Power Tools release and by sometime in August I should be able to give you an early heads-up.  Feedback is welcome, as always.

Brian

July 5, 2008
» Power Tools and Software Assurance

I love our Power Tool program.  I really enjoy the opportunity to deliver stuff that people are wanting every few months.  I also really like the very positive feedback we get on them.  I'm always looking for the next "killer" Power Tool feature that we can build.

One of the lingering questions that has never been answered and we mostly ignore is "How are Power Tools monetized?"  Right now, it kind of works like this...  Power Tools generally support the latest release of TFS.  So one of the benefits of buying the latest release is a new stream of Power Tools until the next TFS release.

The biggest lingering question is what about Software Assurance?  People who purchase Software Assurance are paying "extra" to make sure they get all the latest updates at no additional charge.  Many times, over the last few years, we've asked ourselves, "Should the right to use the Power Tools be tied to Software Assurance?".  From the customer's perspective, it would make them feel like they are getting even more for their money.  From our perspective, it would increase the likelihood customers would buy SA.

Why do I care if customers buy SA?  Well, of course I like the revenue but it's more than that.  We make decisions all of the time about how to release things, what to charge for them, etc.  When customers are on SA, it makes these decisions much easier.  We can simply release them to all licensed customers and not worrry about it.  Otherwise, we're left debating whether we should hold onto it for the next "big" release.  A great example is the features we put in service packs.  Every feature we put in there becomes one less feature in the next paid upgrade - meaning less stuff we can make a big deal about when the product ships and use to encourage people to upgrade.  However, if everyone is on SA, it's easier for us to accept because we can convince ourselves that people paid for it by having SA.

For these kinds of reasons, my goal it to have all of our customers on SA - then I don't need to spend any time worrying about how we are going to monetize things and I can spend all my time thinking about the next set of features we are going to get in your hands.

Anyway, there's no action right now.  However, I wanted to let you know this issue is on my mind.  The thing that brought it back to the top was a recent conversation with one of our sales people about a conversation with a customer who didn't want to buy SA and one of their reasons was that they get Power Tools without it and therefore they couldn't see sufficient value.  I'm going to continue to think about this issue and try to figure out how to have my cake and eat it too.  One idea that has flitted across my brain is releasing Power Tools to SA customers "first".  Perhaps we give SA customers access to Power Tools 3 or 6 months before non-SA customers.  I don't know...

If you have thoughts you'd like to share, I'm all ears.

Brian

July 2, 2008
» Another innovation in the evolution of Hotfixes

I've been keeping you all abreast of changes in our Hotfix plans.  More than a year ago, we introduced the notion of advertising hotfixes and enabling people to browse and download the hotfixes the find most useful.  Prior to that, the only way to get a hotfix was to call customer support with a problem and have them determine that one of our available hotfixes would solve it.  Six months or so ago, we introduced a new and much improved site (MSDN Code Gallery) for searching for and browsing hotfixes.  We also enabled notification via an RSS feed.

We have just added a new capability - localization of all Hotfix information.  Hotfix descriptions are now available in 10 languages (including English).  When you go to MSDN Code Gallery, you will now see a page with links for each of the supported languages.

clip_image002

I hope our international customers will find this to be a big help in keeping their VS, VSTS and TFS products up to date.

Brian

June 30, 2008
» Expression and TFS

Warning - this is early information and is subject to change but the Expression team cleared me to say something about it.

We get a lot of feedback from customers who would like more seamless integration between Expression and the rest of their development team using TFS.  Last week I saw a demo of work being done that will result in TFS source control integration into Expression Web and Expression Blend.  It was very nice.  All of the basic operations were there - add, checkout, undo checkout, history, diff, checkin, etc.  Checkin even used the same dialog as Team Explorer so you get full fidelity - work item integration, checkin policies, etc.

It was exciting to see us making progress in this key area.  I'm told this is all going to be in the next version of Expression - of course, I don't have any release date to announce :).  However, keep your eyes open for pre-releases (like CTPs) and check out the TFS integration.  We'll be eager to hear your feedback.

Combine this with the recent release of TFS integration for Dynamics developers and we are really making progress on ensuring everyone can participate in team development regardless of what kind of development you do.

Brian

June 27, 2008
» TFS on Hyper-V

With the announcement of the release of the new Microsoft Hyper-V virtualization technology, I've seen a surge of questions about TFS support for Hyper-V.  We have tested TFS running in a Hyper-V virtual machine.  It works well and is officially supported.

TFS Components & Support

One thing to keep in mind is that there are 2 major components of a TFS server.  The first is the TFS application tier.  It runs fine in Hyper-V, Virtual Server and VMWare.  You must remember that the TFS application tier in TFS 2005 and TFS 2008 is 32-bit only - so, if you are going to use it on a 64-bit Win2008 machine running Hyper-V, for example, you will need to run a 32-bit OS in its VM.  Our support team will work with you on support issues regardless of which virtualization technology you use.  However, we may ask you to reproduce problems outside of the virtual environment if we suspect it is causing a problem.  The exception to this is Hyper-V.  With Hyper-V, we are introducing full support on the virtual environment.  We (Microsoft) are also working on a certification program so that all virtualization technologies that meet the requirements can achieve the same level of support.

The second major component of a TFS server is the data tier.  The data tier is a SQLServer and the only TFS code that runs on it is TSQL stored procedures.  Of course, in a single server TFS install the application tier and the data tier run on the same machine.  My understanding is that SQL server 2005 and before do not officially support any virtualization technology.  SQL is introducing virtualization support with SQL 2008.  If you are going to use TFS with SQLServer 2008, make sure you use TFS 2008 SP1 (to be released this summer).  In general, my advice to TFS customers has been that it's fine to run the TFS application tier in a 32-bit VM but always run the SQLServer on native hardware (preferably on 64-bit if you need the system to scale).  One reason for this is for performance (see more below).  Another reason is that I have seen one or two instances of data corruption problems with SQLServer running in an improperly configured VM - the one that comes to mind was a customer who was running SQLServer in a VMWare VM and had delayed I/O enabled in the VM.  Delayed I/O is not something you want at all on a SQLServer machine - it violates key guarantees that SQL relies on to guarantee data durability.

Virtual Machine Performance Guidance

I often get asked about recommendations about hardware configuration for virtualization.  I generally focus on 2 things: memory and disk I/O.  The memory recommendation is pretty easy.  If you want to run TFS in a VM, remember that there is also a host OS running.  Sum up the memory requirements of every app in every VM you are running on the system and add about 1GB for the host OS.  I've generally found that algorithm to work well for people and I expect it will work well for Hyper-V as well.

The more complicated one is I/O.  One of the historical problems with virtualization technology is that it adds overhead when virtualizing I/O (in this case I'm mostly concerned about disk I/O).  A high scale TFS server performs a ton of I/O and any overhead can be a problem.  Fortunately, disk I/O on the application tier is generally not too high (except in the most high scale systems).  The only major source of I/O is a file cache that reduces the load on the SQLServer for commonly requested files.  TFS's use of SQLServer, however, can be very I/O intensive.  My advice to anyone running any I/O intensive application in a VM is to make sure you have a high performance disk subsystem.  Error on the side of extra disk performance.  For example, use 10K RPM or better drives, consider using RAID 10 that enables more concurrent I/O.  Make sure you have a good disk controller card.  If your system is particularly high scale, consider using a high performance SAN.

Some of this guidance may change over time with Hyper-V.  Hyper-V is a very efficient virtualization technology but I don't have enough experience with it yet to say for sure how it will affect these recommendations.  As I learn more I'll keep you up to date.

Good luck and let me know if you have good or bad experiences with TFS and Hyper-V.

Brian

June 23, 2008
» Rally connects to TFS for Agile project management

Today Rally is announcing that they have built a connector to enable its web based Agile project management tool to connect to TFS.  This new connection enable source code checkins and TFS builds to be tied to the project management features in Rally, enabling a more comprehensive picture of the state of your projects.

Rally is hosting a web cast on June 25th at 10AM PDT.  Click here to read more and to register for this web cast.

Here's Rally's press release: http://www.rallydev.com/press_release_080623.jsp

Brian

June 18, 2008
» TFS support for Dynamics developers

Less than a month ago, Dynamics AX 2009 was released.  This new version enables Dynamics developers to store their source code and have an integrated experience for checkout, check in, get and history - the basic version control operations in TFS.  I'm excited about this because I get the question fairly often and people are always surprised when I tell them we don't have a solution.  Now I don't have to disappoint any longer.

It's great to be able to bring a whole new community of developers into the Team System collaborative development fold.  You can get a peek at what is there today by viewing this screencast.  I expect future versions of Dynamics AX will integrate additional TFS features.

If you are interested in giving this new combo a try, you can look at this whitepaper for how to set it up: http://www.microsoft.com/downloads/details.aspx?FamilyId=EFC24EDC-522E-40AA-8F36-6367ED7AB92D&displaylang=en

Let me know what you think,

Brian

June 16, 2008
» PDC 2008 & precons

Preparation is in full swing for the Microsoft PDC this fall (Oct 27 - 30).  PDCs are the primary event where we talk about the future (as opposed to events like TechEd where we primarily talk about the present).  This PDC promised to have a great deal of new content for developers.  Among them, I think this will be the first conference where we really talk in depth about what is coming in the Team System release code named "Rosario".  If you are passionate about ALM, it will be a great show.

In addition to the core PDC event, there will be a set of pre-conference presentations the preceding day.  Among them will be sessions on VSTS today to position you to really understand the "tomorrow" stuff coming in the PDC.  There is also a great session on Agile development.  Check them out if you are interested.

I'm planning on being at the PDC and look forward to seeing you there.

Brian

» Coolest Team System Gadget contest

Mike Azocar (one of the Team System MVPs) has come up with the idea of running a contest to see who can come up with the coolest Team System add-on.  It seems like it could be fun.  If you've got some great idea for an add-on that you've been eager to try, now might be a great time to do it and submit and see if you can win.

http://www.michaelazocar.com/blog/?p=485 

I'm trying to think of things I can provide to Mike that would make great prizes (other than lot's of money, which I can't do :)).  If you have any ideas, I'd be interested to hear them.

Brian

June 10, 2008
» TFS & Teamprise for enterprises doing serious cross platform development

We recently published a case study with Thomson Reuters on their experiences adoption TFS in a cross platform development team using Teamprise for their Java developers.  It's a great testament to how the combination of these two products can work together to create a comprehensive ALM solution for a significant development team.  I frequently get asked about how well TFS + Teamprise can meet the needs of a Java development team.  I'm really glad to actually have something concrete to point at instead of having to ask you to take my word for it :)

Brian

June 9, 2008
» Sharing Team System Process Templates

There are as many processes for software development as there are software teams.  Ever since we shipped TFS, I have hoped that a community would form for sharing process ideas and for sharing process templates.  Creating new process templates can be a significant undertaking.  It's way easier if you can start with a process template that's reasonably close to what you want and just tweak it.  Wouldn't it be nice if there was a library of process templates available and an easy way to share ones you create?

We'll a new CodePlex project has just been created for this purpose.  It's too early to tell whether or not it will thrive.  It will depend on how many people decide to contribute something and how actively it is managed.  If this is an area that interests you, then I encourage you to check it out.

http://www.codeplex.com/templex

Brian

June 5, 2008
» DB Pro Database Extensibility

Also, at the TechEd Keynote, I demonstrated VSTS for Database Professionals working with DB2.  The first step in the process is a release we are working on now called the VSTS for Database Professionals 2008 GDR (I'm not going to waste your time trying to explain what a GDR is - just think of it as an update - not too much unlike a service pack).  This GDR will be the initial trial of a bunch of extensibility work we've been doing.  The first proof point is that SQL 2008 support is implemented on top of this extensibility and then DB2 and others can follow after that.  There are many other things in the GDR release that I think you will like.  Gert has written about them here: http://blogs.msdn.com/gertd/archive/2008/06/03/vsts-2008-database-edition-gdr-june-ctp.aspx

Brian

» TechEd 2008 Keynote

I just got back from TechEd.  I had a great time and met some terrific people.  This is the first TechEd where the conference has been split across 2 weeks - the first for developers, the second for IT.

This TechEd has a first for me.  I got to do one of the big demos in big keynote with Bill - his last big keynote as full time chairman at Microsoft.  One of the things I learned in this exercise is the amount of work that goes into putting this together.  The work on the demo, the rehearsals, getting everyone to agree on the talking points, all of the back stage logistics.  I'd estimate I spent days preparing for my little 7 minute appearance.  It was fun though :)

In my mind (admittedly biased), the demo was terrific.  That's not to say my delivery was particularly amazing but rather the demo itself was very good and the technologies we were showing are just amazing.  The demo I did basically highlighted two things - the new direction we are headed in architecture tools and modeling and the work we are doing on DBPro extensibility along with the extension IBM is building that enables Visual Studio Team System for Database Professionals to give you the same great experience against a DB2 database that you can get against a SQL server database.

The architecture tools we are building are so unbelievably exciting to me that I can't stand it.  I'm wishing I'd have had these tools years ago.  I can tell you for certain that we could have shaved months off of the development of TFS over the past few years if we had had them.

The thing that has me the most excited is a new feature called a layer diagram.  This layer diagram allows you to design the logical layering of your application and specify the dependencies you intend to have.  For example, you wouldn't want your client to have a dependency on you data layer in a 3 tier app.  You wouldn't want your server business logic taking a dependency on something in the Windows.Forms assembly, etc.

image

Once you have this logical layering, you can associate the layers with specific assemblies, namespaces or classes in your actual application.  Now, the magic happens.  VSTS can parse/reverse engineer your code to determine the "actual" dependencies in your application.  Having done this, it can compare the actual to the "desired" as specified in the layer diagram and let you know about any problems you have.  Going even further, you can configure a checkin policy to validate this on every single checkin.  This way you can prevent people from checking in spaghetti architecture in the first place.

It's very hard to communicate an architecture to everyone on the team.  It's even harder to prevent them from accidentally violating the architecture.  These tools are a huge leap forward in ensuring that you end up with the architecture you designed.

On top of this cool new layer diagram and validation is another feature called the "Architecture Explorer".  It is a very handy tool for visualizing the architecture your code implements today.  It allows you to graphically browse through your application and its dependencies and understand them.  As you update your code, you can see the Architecture Explorer diagrams change.

image

All of this (and more) represent a pretty big shift in our approach to the VSTS Architecture SKU towards tools that are applicable to a broader set of problem domains and compelling to a larger constituency of users.  It catapults the architecture SKU from a moderately interesting overall value to one the the most exciting things in Team System.  I can't wait for Rosario to become "go-live dogfoodable" so that we can use this new stuff in our daily jobs.

Brian

May 28, 2008
» Translating Team System Web Access to your langauge

We have gotten some requests for translations of Team System Web Access into additional languages (beyond the 9 we already do).  I am speculating that the additional interest here comes from the fact that TSWA targets a broader audience beyond the core development team and as such translations are even more valuable than for Visual Studio itself.

We aren't set up to create and test these translations, however, we would like to satisfy the demand.  Fortunately, translating TSWA is not a massive undertaking.  In all, it only involves translating a few hundred strings.  For our own localization effort, we have already separated these strings into separate .resx files that are compiled into satellite assemblies.  In short this means that if we give out the .resx files and a relatively short instructional document, it should be reasonably straight forward for you to localize TSWA into any language you choose.

I'd also like to make it possible for you to contribute your translations back to the community for others to use if you choose to do so.

Our thinking is that we will create a CodePlex project for TSWA translations.  We will upload all of the .resx files for the 9 languages we currently support and a document explaining how to create and install translations.  You can download the files, translate, build, install, test, and use them.  If you choose to contribute your translations back to the community, we will provide a way for you to request contributor rights to the CodePlex project and you will be able to upload your translation to CodePlex for others to download.

We're still working through the plans but this is the rough idea.  I expect it will take a few weeks to get this all set up - we're still working out the schedule so I'm not sure but I don't think it's going to take a long time.

I hope this will be helpful to you.  If you have any thoughts and/or comments, I'd love to hear them.  Keep an eye on my blog for further announcements as we get this ready.

Brian

» Professional Developers Conference this fall

We'll be holding a PDC this fall in Los Angeles Oct 27 - 30.  Registration opens today at: http://www.microsoftpdc.com/.  There are many developer oriented conferences that present an opportunity to learn about Microsoft technologies.  The PDC is the most forward looking of those conferences.  It is an opportunity to learn what our plans and directions are for the next several years.  It's a unique glimps into the future and a chance to mold your plans.

This PDC is going to be the first really big splash for the Rosario release of Team System.  We'll be holding quite a few talks, doing lots of demos, etc.  Whether you are a customer or a partner, it should provide some valuable information.

I look forward to seeing you there.

Brian