Ed Blankenship Recently I had the pleasure of sitting down with my good friend and fellow MVP Ed Blankenship to learn about the Team Foundation Server deployment in Infragistics. They have a global development team working 24x7 and their Team Foundation Server is now critical to the daily operation of the business.  Ed has plenty of tips and tricks in keeping TFS running with high availability but also in the organizational challenges when deploying the tools across a diverse, global software development organization.

We recorded our chat and I’ve just made it available as Radio TFS episode 23.

Play Now: Radio TFS - Using TFS with Ed Blankenship

As well as talking about the challenges of rolling out TFS to a large, global organization, we also discussed some of the innovative integration work Ed’s team has carried out to integrate TFS with Microsoft CRM. 

It turned out to be a longer show than usual, almost a double length episode.  Hopefully people will find time over the holiday weekend to listen to it.  I’m keen to hear your feedback. We are trying to step up the number of Radio TFS episodes that we put out to two a month.  If you haven’t subscribed to Radio TFS then now is the time.

Photo courtesy of Barry Gervin.

igate_logo

TFS has a many strengths.  Two of them that I particularly like talking about are it’s performance over a wide area network and the strong IDE integration available for both .NET and Java developers (the latter via Teamprise of course).  Microsoft have just posted a new case study with iGate, one of the top 20 global outsourcing companies which talks about this in depth.

iGate has been assesed at CMMI Level 5, Six Sigma methodologies and is COBIT, ISO 9001 and ISO 27001 certified.  They have 8 offices in 12 countries and manage global delivery centers in Mexico, Australia, and India. Like most software development organizations, version control is critical infrastructure and they chose TFS to manage software development projects across all platforms.

“When we implemented Visual Studio Team System, we noticed immediate process improvement through automation. It reduces the administrative burden and reduction in administration efforts leads to significant cost savings of 55 percent.”

Chella Namasivayam M
Vice President IT & IS, iGATE.

iGate chose TFS ahead of tools such as IBM Rational ClearCase, MKS Implementer and CVS.  For more information on why and what benefits they have got from standardizing on a single platform take a look at the case study.

Slotting into TFS 2010

| No Comments

In TFS 2010 quite a few things have been fundamentally changed for the better, but from an end user point of view people hopefully won’t notice.  Things like hierarchical work items will very quickly because just how work items should work and people will scratch their heads when they go look at a TFS 2008 or TFS 2005 server and wondered how we ever got by.

However in version control, the changes have been even more subtle from the end user point of view but are actually huge under the covers.  The biggest change by far in TFS 2010 is the move to Slot Mode version control from the current Item Mode.  Version Control PM Matt Mitrik has a excellent post entitled “Changing to Slot Mode in TFS 2010 Version Control” which I encourage you to take a look at.

“In TFS 2010, one of the more significant changes that we made to our version control platform was how we identify items.  Previously, version control operated in what we called “item mode” and in TFS 2010 it operates in “slot mode”.  To better understand the motivation and impact of these changes, and what “item mode” and “slot mode” actually mean, I’ve decided to provide some background and detail into the changes we’ve made.”

Matt Mitrick – Changing to Slot Mode in TFS 2010 Version Control

Basically a really fundamental concept at the heart of TFS has been completely changed – but like hierarchical work items I anticipate most people will just look at it in the future and think that’s how it should always have been.  Hopefully merges will be a lot less complex but the simple things are preserved like the fact that TFS shows the history of a file from before a rename.  Note that some of these changes have not arrived yet in the Beta 1 build that is currently publicly available so we’ll have to wait until Beta 2 to see exactly how the end user experience pans out. 

As well as simplifying the merge process the changes have also allowed for a big performance and scalability improvement on the server side.  Grant Holliday talks about some of the benefits that Microsoft saw internally when he discusses the “Schema Change” in the current episode of Radio TFS.

Team Build Screensaver in action alongside a build bunny I recently stumbled across a handy Team Foundation Build screensaver created by Jim Liddell and wanted to share it as it seems very good.  For my team build talks I created a Team Build Wallboard as a code sample, however Jim has created his own as a WPF based screensaver and it looks very nice.

A few features that I particularly liked:

  • Deployed as a screen saver (.scr) with full configuration options via the screen saver properties
  • Ability to display multiple builds from multiple team projects
  • Nice, clean WPF based vector graphics
  • Multi-monitor support

The code is also pretty clean, and reminds a WPF novice like me how different a true WPF based programming model can be from WinForms.  The only issue I had with it is that I had to download the source code and recompile as x86 only against the TFS2008 API’s to get it to run on my main dev machine which is a Vista x64 machine with VSTS2010 Beta 1 installed.

Anyway, the code is up on CodePlex under the permissive MS-PL license, so I would encourage you to give it a look and give Jim your feedback or even contribute back features that you would like to add. 

Notice in the picture above that Jim has a Build Bunny sat next to his Build Monitor as well - great to see them breeding like, well – you know…

Policy Override Email Alerts

| 1 Comment

A guiding principle with Team Foundation Server is that all the flexibility of configuration and all the control should not get in the way of getting work done.  For example, if you try to do a check-in that fails a defined check-in policy, you get the following warning.

Policy Failure Dialog

The key thing about check-in policies is that you can always override them.  Some check-in policies (such as the Build policy) actually rely on this behaviour.  However, this fact can irk some software configuration managers when they first figure this out.  They’ve defined a check-in policy for a good reason, and gosh darned it they do not want their developers to be able to check-in unless they meet the check-in policy or they better have a really good reason.

Now, don’t get me started on how check-in policies can be abused in TFS.  Like all shiny new toys, sometimes people can go crazy with them and have check-in policies to enforce things (such as code coverage) that in my opinion would be best covered by an automated build system.  But that rant is off limits for today.  Let’s take a check-in policy that I wouldn’t have a problem with, the check for work item policy.  This policy ensures that you developer has captured which work item the check-in is related to.  The key point about this check-in policy is that if you do not capture that information now then it is hard to remember exactly which work item that should be later on. 

When introducing this new check-in policy to a team, you want to make sure that everyone understand the value in associating work item to check-ins.  Being able to explain this to a large team also makes you question the value yourself which is an important self check before switching it on.  Remember All check-in policies cost money.  Each check-in policy you enable will slow down the check-in process just a fraction.  As you want people to be checking in regularly this fraction is amplified.  Taking a rough figure of each check-in policy takes 5 seconds to ensure you have correctly met, roughly translates to 5 cents per check-in for developer time in a US company,  Say you have on average 6 check-ins per day (a figure that you are always trying to raise).  Therefore, this quick back of an envelop calculation puts the annual cost of a check-in policy to be around $70 per developer per year.

$ p.a. = devs x policies x 70

Not a huge amount, considering how much free soda a developer can drink in a year – but still not beer change either.  The key point is not so much cost, but that the cost is per check-in.  People always try to take the path of least resistance, therefore the more you penalise the check-in process by slowing it down the less often people will check-in – which is exactly the opposite behaviour that you want to encourage.

Anyway, once you have convinced everyone including yourself of the value of a check-in policy, you now want to encourage people adhere to it.  The problem of course is that check-in policies can be overriden by checking a box and typing in a single letter as the comment.  Overriding check-in policies is something that you want people to think carefully about, and in my experience the best way of making people think about something in the development process is peer pressure.

Configuring Email Alerts for Check-in Policy Overrides

For people to not override a check-in policy without thinking about it, there has to be some penalty involved in overriding the policy.  Often this is simply the fact that the policy warning box will pop up.  It is usually easier to find the valid work item than it is to go through the check-in policy override dialog.  That said, you can easily configure TFS to send an email to an individual – or more usefully in this scenario – a distribution list every time someone overrides a check-in policy.  This has two effects.  First, it makes them think if they have a good reason for overriding the policy – their managers and peers will get an email if they override, so this makes you pause for thought straight away.  Secondly, because the comment provided in the check-in policy override is in the email sent by TFS it encourages people to properly document the reason for the policy override in the comment box rather than just typing some random characters.

The easiest way to create a check-in policy override email is to install the Team Foundation Server 2008 Power Tools.  This includes the very useful alerts editor into your Team Explorer.  Double clicking the Alerts node in Team Explorer will bring up the alerts editor, where you can press “New” to create a new alert.

image

There are a number of default alerts provided with the tool, and the one that we want is under the Check-in Alerts section, “Check-In to a specific folder with a policy overridden”.

New Alert Dialog

In the alert, you then provide the email address that you want it sent to.

Alert Editor

If anyone now overrides the check-in policy, and email will be sent to the address provided in your alert along with the reason they provided for overriding the policy.  It’s then up to the organization to ensure that these stay rare events, that people not providing a good reason are suitably ashamed and that everyone just doesn’t set up an email filter to send those messages to the trash.

Check-in policy override email

As with all actions, there are consequences which you have to think through.  For example, by switching on the work item association policy and enabling policy override emails are you now making it so that people will randomly associate a check-in with any work item?  It’s because of constant issues like this that you have to make sure everyone understands why the check-in policies are in place in the first place and buys into the procedure that you would want them to follow.

My Current Podcasts

| 2 Comments

In the days before I worked for Teamprise, I had a 3 hour, 120 mile commute. Luckily, at that time a new thing called “podcasting” was starting to take off and so my travels were filled listening to the few podcasts that were available back then.  We are talking pretty early in the history of podcasting.  Back then Dave Winer and Adam Curry were still on talking terms.  Rory Blyth was taking over from Mark Dunn as co-host of DotNetRocks with Carl Franklin and shows would be multiple hour epics, occasionally spilling over into .NET technology but with plenty of tangential discussions.  Interestingly, I’ve actually been a DotNetRocks listener longer than I have been into podcasts.  Back when I strarted listening to the show I had to burn episodes onto a CD-R (sometimes 2) and it was listening to one of these shows that I heard Carl talking about putting the shows into an RSS feed for automatic delivery to an MP3 player.  It was then I got my first iPod and my commute was much more enjoyable.

Times have changed.  My commute has gone from 3 hours to 3 seconds, however I find I still have plenty of time in the day (when doing chores around the house, or when exercising etc) to listen to an increasing number of podcasts.  Recently, Grant Holiday tweeted to ask what podcasts people would recommend and as I couldn’t reply with them all in 140 characters I thoughts I would write this post.  Below is my list of podcasts that I am currently subscribed to.

  • Apple Keynotes – All the Apple announcements the day after the event
  • Stack Overflow – Jeff and Joel talking about software development and the StackOverflow website with the occasional interesting guest.
  • Creative Screenwriters Magazine – Interviews with the Screenwriters behind many of the big Holywood films
  • David Mitchell’s Soapbox – Video monologues from British Comedian David Mitchell
  • Diggnation – Two men, two laptops and several beers
  • Friday Night Comedy from BBC Radio 4 – Topical satire comedy from Radio 4
  • gdgt Weekly – Peter and Ryan talk about gadgets even though they have both left Engadget and are busy not releasing their next site gdgt
  • Hanselminutes – Scott Hanselman’s podcast
  • The History of Microsoft – Channel 9 show going through the Microsoft archives
  • iPhone Application Programming – Standford University course on iPhone Application Development with Apple engineers taking the kids through the course.
  • MacBreak Weekly – Leo Laporte and the gang talking about Mac News if there is any, or speculating about stuff if there isn’t. This is actually my favourite of the TWiT shows.
  • Mark Kermode and Simon Mayo Film Reviews – Wittertainment at it’s best
  • .NET Rocks – The original .NET podcast. Richard and Carl talking about .NET technologies
  • Peter Day’s World of Business – Peter Day’s insights into the business world
  • Podcasts for Running – Couch to 5k training program
  • Radio TFS – Mickey, Paul and I talking about Team System occasionally with various special guests
  • Robert Llewellyn’s Car Pool – Bobby Llew giving his famous mates an entertaining drive in his Prius
  • RunAs Radio – The IT Pro angle from the PWOP gang, with good guests
  • Security Now – Leo Laporte talks to Steve Gibson about security news.  Sometime’s Steve’s attitudes to development and computers drives me to shout back at my iPod in frustration, but it still is a great way of keeping on top of what’s happening in the security area.
  • TED Talks – Talks from people cleverer than me about interesting things.  Not only that, they are all much better at presenting than I am
  • The Thirsty Developer – Microsoft evalgelists Dave Bost and Larry Clarkin talking about technologies interesting in the Microsoft space but mostly from an Architecture angle.
  • This Week in Tech – Unedited ramblings of various technology commentators, mostly interesting
  • This Week On Channel 9 – Dan and Brian’s round up of interesting goings on in the Microsoft technology space
  • Google TechTalks – Google gets interesting people in to talk and makes many of them available to the public
  • Windows Weekly – Paul Thurrott commentating on developments in the Microsoft space, focussing on the consumer side
  • 10-4 – Nice short screencasts highlighting areas in Visual Studio 2010 or .NET 4.0

OK, I admit that I have a problem, but still I find that listening to these podcasts helps me keep an idea of what is going on in the technology world in my spare time, but I also find them all genuinely entertaining as well as educational.  If you have any that you think I should be listening to then let me know.

Road to TFS2010 Now that TFS 2010 Beta 1 is publically available, I thought it would make sense to share our plans with everyone.  Teamprise has been working closely with Microsoft on the TFS 2010 release.  First of all, can I quickly thank all the people at Microsoft who have been helping us so far. All the way from the individual developers working on features all the way up to the very highest leadership, we have had nothing put fantastic support and rapid responses to our questions.

I remember attending meetings almost two years ago now with many of the Teamprise developers at the Microsoft offices to talk about this version back when it was known only with the codename Rosario.  We’ve been actively working on builds since last year and in fact Brian Harry demonstrated Teamprise talking to TFS2010 at PDC in October 2008.

But we have a long way to go.  The current plan is that Teamprise 4.0 will be our “TFS 2010 compatible release”, including many of the new TFS 2010 features.  We aim to ship Teamprise 4.0 with-in a couple of weeks of when Microsoft launches TFS 2010.  Before that date we will have previews of Teamprise 4.0 for people wanting to test our clients against their TFS 2010 beta environments.  The current plan is to ramp up our preview program around the Beta 2 timeframe of TFS 2010.  We will also have TFS2010 Beta 2 compatible versions of our Teamprise Build Extensions.  If anyone is on Microsoft’s early adopter programs and is blocked from being able to provide Microsoft with TFS feedback until they also have Teamprise clients to test with, then please drop a line to support@teamprise.com so we know about you as soon as possible.  We plan to be dogfooding against TFS2010 beta’s here at Teamprise very early.

If you want to use current versions of Teamprise today with TFS 2010 Beta 1, then there are several known issues.  However the basics of version control and work item tracking are both operational.  That said, using TFS 2010 Beta 1 with Teamprise is not supported so use it at your own risk.

First of all, you must be running the latest version of Teamprise (3.2.2) for anything to work.  We had to make some changes to the 3.2 release to allow check-ins to work against a TFS2010 server and we included those in the 3.2.1 public release.

Next, Team Foundation Server must be configured to not be in a virtual directory.  By default, a fresh install of TFS 2010 Beta 1 will exist at http://server:8080/tfs where “tfs” is the virtual directory for the TFS application.  This makes TFS much easier to host inside an existing web site (i.e. on a single port shared with Sharepoint etc) – however Teamprise 3.X doesn’t know about virtual directories.  Therefore when you install TFS 2010 Beta 1 you will have to do a customised installation and blank out the Virtual Directory text box in the Application Tier settings.

Application Tier settings for TFS2010 

Teamprise 3.X (like Visual Studio 2008) also doesn’t know about Project Collections.  Therefore you will only be able to access the default project collection on each TFS instance using Teamprise 3.X.  Once you have this configured – the TFS 2010 beta 1 server will look much the same as accessing a TFS 2010 server does from Visual Studio 2008.

 Eclipse 3.4 with Teamprise 3.2.2 talking to TFS 2010 Beta 1

And there you have it.  The next few weeks and months are shaping up to be great fun as we all get to test out this massive new version of the Team System products.  Visual Studio Team System 2010 is a huge release, but one that addresses many adoption issues that people have today with the product.  I’m incredibly excited now that the Beta of VSTS is publically available so we can all start talking about it and figuring out new best practises etc.  If you thought adoption of Team System was going well up until now, the adoption of this 2010 release is going to be huge.  With all the new stuff to learn, and the potential even this early beta of the product is showing – now is a very exciting time to be in the Team System space :-)

If you have any questions or comments about Teamprise and TFS 2010 then please drop the support team a line, or contact me.

Archives

Recent Comments

  • Kenneth: Sounds great - longer episodes are more than welcome! And read more
  • Stephen: Ah, nevermind about the captcha. I had NoScript turned on read more
  • Stephen: I guess they could have telecommuters that expand the country read more
  • Martin Woodward: You know, that is an excellent question. read more
  • Stephen: This is very cool! Still I am confused... How can read more
  • Ashish: Today , i stuck at same issue to overwrite old read more
  • Derek: Thanks for the tip, just saved me a ton of read more
  • Will Crick: Nice work. Next step is invoking builds on a Linux read more
  • Tom Hall: Funny that you've blogged about this because the other day read more
  • William Bartholomew: Those naughty naughty rabbits! read more
Creative Commons License
This blog is licensed under a Creative Commons License.