Wednesday, October 29, 2008

Now we are really talking... VSTS 2010 promises major improvements in software quality! (Part 2)

Supercalifragilisticexpialidocious... I just got back home from watching the musical Mary Poppins at the local opera with my teenage kids. It was a real treat, the performances where outstanding and the play itself leaves you with a really good vibe that anything is possible if you just set your mind to it.

Anyways previously this day I spent my time divided equally between following the PDC online and taking the middle son to the doctor and feeding the whole family :) ... I manage to watch two talks on VSTS 2010 the one on TFS by Brian Harry and one on agile development using TFS by Lori Lamkin and boy are we in for a treat. Yesterday I blogged about the news in the Testing and Architecture areas, today it's time for build automation, parallel development and project management.

Build Automation

Going from TFS 2005 to TFS 2008 we go a more or less rewritten build automation system and it seems that this is happening again, what is happening this time is that the build script is now a windows workflow which allows us to do all sorts of stuff such as parallel activities and much much more. Apart from the fact we get a graphical view of the actual build script and all the strengths brought to the table with workflow I'm abit worried how this will affect people like myself who have invested heavily in the msbuild based build projects (I'll get back to this topic in future postings when I have had more time to play around with the bits).

Another cool new feature is the build agent controllers that lets you pool build agents so that you do not have to dedicate a particular machine to a build project but you rather have a bunch of them serving you ondemand. A very cool feature here is the ability to tag the agents and then perform conditional evaluations based on these tags in your build agent selection process.

Also if you are a fan of continuous intergration you are going to love the feature called gated checkins which lets you configure a build trigger to occur prior to actually commiting the changeset to version control and if the build breaks the changes will be prevented from making it into the currently stable branch. You could compare them to optimistic and pessimistic locking strategies CI being optimistic and GC being pessimistic.

Prior to VSTS 2010 we have had to endure a rather messy build report altough it was complete and detailed it was a pain to work with, we have now gotten a completely rewritten report that include features such as a minimap with errors and warnings highlighted to quickly travese the vast ammount of data in the log. The summary section quickly gives you the details on any errors and warnings no more digging through the log files for that. The histogram over the last few build at the top is also really neat it gives you a quick input on what state the build has been in and how long you should expect to be waiting for completion.

Finally we have a new buddy report to the Build Quality Indicator which is called Build Success Overtime this gives us a nice heathmap over the build status for the last month this report could be really usefully as an information radiator upon a flatscreen in a project room I think.

Parallel Development

When working with branching and merging in TFS there has been some challenges in knowing the exact state on things which has lead to the fact that people are vary of using forward / reverse integration patterns for enabling a good environment for parallel development.

Now we have gotten a whole slew of new features to remedy this fact. First we have rollback incorporated into the gui and we have conflict during the merge process the conflict resolution is no longer model, you will instead find it incorporated into the pending changes window this will save tons of time when tracking down problems in merge conflicts.

A branch has gotten some elevated properties in the source controll explorer now it is not just a folder anymore. We have a specific icon to visually indicate that it is of the type branch and then we a some properties such as the possibility to create an description and an assign an owner.

The anotate feature which is great now even got greater, now we will not just se that a merge brought a change into the file in our branch but we will rather get the exact changeset information that the changes originated from even though they where not performed in our current branch. This is great stuff!

The final feature I want to point out I actually intended to write and implementation for myself (I still have the code for it so I might decide to dust it off and package it up for use in TFS 2008) although the fancy graphics would have been some what challenged in comparision to what we will get in VSTS 2010. The feature I'm blabbing about is the new branch visualization available through the show history and track changeset actions. Now you will get an hierarchical view of the changesets and their relationships including the full path information directly in the query results. And the track changeset will give you the possibility to visualize both from a timeline and organisational view of the changeset. The timeline view will show you which branches has incorporated a changeset and when and the organisational view will let you see the parent/child relationship along with the direction that the changes has travelled between the branches.

An super nice feature in these new branch visualisations is the fact that if a changeset is missing from a particular branch we can simply drag and drop it onto the branch we want to incorporate it in and viola it will trigger a merge.

...Phew... this post is starting to get a bit longish and I am starting to get tired so I'll continue with the project management stuff tomorrow take care until then!

No comments:

Post a Comment