September 2007 - Posts

Team Foundation Server best Practice Analyzer ... It has finally shipped!

The TFS BPA has finally shipped and can be downloaded from here. This has been a mamoth effort and many of the TFS BPA team undertook the project after-hours ... guys you "rock".

The Team Foundation Server Best Practices Analyzer (TFS BPA) is a diagnostic tool that performs the following functions:

  • Gathers configuration information from a Team Foundation Server deployment
  • Performs specific tests on the Team Foundation Server deployment
  • Analyzes the collected information according to specific rules and reports the findings as information, warning, or error messages
  • Provides links to articles to resolve warning and error messages

Use the Team Foundation Server BPA to perform the following tasks:

  • Proactively verify that the Team Foundation Server configuration is set according to recommended best practices
  • Determine configurations that differ from default, recommended, or required settings
  • Identify the source of problems in an unhealthy Team Foundation Server deployment
Posted by willy with no comments
Filed under:

Lightweight Scrum Process Template TFS v1

Light Weight Scrum Version 1.0 has shipped ... see http://www.michaelazocar.com/blog/?p=263.

Posted by willy with no comments
Filed under:

Techno'Hiker ... Boston Sibos ... 20070929

15 hours flight from Johannesburg to Dulles Washington, then 1 hour flight to Boston is nowhere close to the Redmond "trek" ... but we are still looking forward to the shower at the destination hotel.

Sibos ... 'gaining momentum' is the theme of the global financial community event. As the techno'hiker in our team I will be an alien amongst the business community ... The fact that we need to leave our normal poloshirt and jeans business attire at the hotel and wear suit and tie for the week is a daunting learning experience.

Well, today we can still relax in "civies" and enjoy the beautiful city of Boston. I will upload some pictures when I get back.  On the plan today ... after the shower ... is a Boston Duck Tour, which is a land and water journey in a good old army DUCK.

Watch this space for a regular update on the event this week.

Posted by willy with no comments
Filed under:

TFS Quick Reference Posters - New Spanish Waves

 Luis Fraile, http://www.lfraile.net, has completed the translation of more of our quick reference posters to Spanish. The following new translations have been uploaded to http://www.drp.co.za. Thanks Luis!

  • 0202 Microsoft Team System - Spanish
  • 0202 Microsoft Team System Branching - Spanish
  • 0202 Microsoft Team System Planning - Spanish
  • 0202 Microsoft Team System Project Source Migration - Spanish
  • 0202 Microsoft Team System Single Server Deployment - Spanish
  • 0202 Microsoft Team System Source Control - Spanish
  • 0202 Microsoft Team System Source Structure - Spanish
  • 0202 Microsoft Team System Workspaces - Spanish

We have monitored in excess of 32,000 poster downloads within the past year, which indicates that they are adding value to the community. Thanks to fellow MVPs, translating them to Portuguese and Spanish, we are expanding the horizon even further and flying where no poster has been before q;-)

Posted by willy with no comments
Filed under:

Tech-Ed 2007 Chalk&Talk Sessions - "Pencil in" these dates and times!

The chalk & talk sessions are posted and included in the agenda on http://www.tech-ed.co.za/Agenda.aspx.

Take note of some of the following sessions and please join us for some interactive discussions:

  • CNT203 - What is XNA - Game Studio Express?
    • Pieter Germishuys (MVP)
    • October 22, 13:30 - 14:30
  • DEV312 -Team Foundation Server Q&A with Brian Harry
    • Brian Harry 
    • October 22,  17:30-18:30
  • CNT204 - A quick tour through TFS/VSTS 2008
    • Willy-Peter Schaub & Jean-Pierre Fouche
    • October 23, 13:15 - 14:15
  • CNT205 - Introducing TFS Power Tools and 3rd Party Tools
    • Willy-Peter Schaub & Jean-Pierre Fouche
    • October 23, 14:45 - 15:45
  • CNT207 - WCF
    • Hilton Giesenow & Willy-Peter Schaub
    • October 24, 09:00 - 10:00

Remember that a XBox 360 is up for grabs, drawn from all Chalk&Talk evaluation forms, as well as three 1/2 Terabyte external disk drives, drawn from CNT204, 204 and 205 C&T session evaluation forms.

Posted by willy with 2 comment(s)
Filed under: ,

Why the heck should I use Team Foundation Server ... a common question

Although I am most likely opening a can of rattle snakes, I will finally give my view on why we should be using Team Foundation Server as one of the possible supporting solutions for our solution team environments.

We will keep a bomb disposal unit in close vicinity, in case the topic becomes explosive...

Context:

  • Do I make money made from TFS sales? ... No
  • Is TFS the one and only solution? ... No 
  • Should TFS, in my humble opinion, be considered as a supporting solution? ... Yes

My view:

I created my first fully automated build and test environment back in the mid-1980's, working in the BTOS environment and a world of command line utilities. Since then we have automated the build in many different environments, using a plethora of tools, using Visual Studio, command line tools, solutions such as CruiseControl, BugZilla, Visual Source Safe, SharePoint and many, many other tools. So, why have I embraced TFS/VSTS as a solution, when we have been able to do it ourselves, often with free solutions?

Well, looking back I make the following observations in terms of the automation of the build and test environment:

  • Nothing new ... has been done since the 80's.
  • Not impossible ... was realised using a number of tools and solutions, often from different vendors.
  • Not comprehensive ... consolidating different environment and creating usable reports was often complex.
  • Not simple ... was often expensive in terms of time and resources.
  • OO dream ... was often loosely coupled, with explicit boundaries and using autonomous solutions.

Let's cut the waffle and get to the point. Why then, should we consider the Team Foundation Server (TFS) in a Microsoft pure or hybrid development environment? TFS offers ...

  • An environment that is integrated with the Microsoft IDE, as well as other IDE's. See http://widgets.accentient.com/ for a wide range of integration solutions.
  • A fully integrated solution, that consolidates all stakeholders of a solution such as the sponsor, project manager, developers and testers.
  • A comprehensive set of information through reports, giving an insight on the version control, code coverage, code churn, build stability and much, much more.
  • A set of integration and extensibility points, allowing solution providers, such as TeamPrise, TeamLook, TeamCompanion, ... to extend the integration.
  • A SDLC guidance solution, that mentors and guides all solution stakeholders.

TFS is not a silver bullet, it is not a breeze to install, it needs careful planning and management, it does not come cheap and it requires buy-in by all solution stakeholders in order to deliver its full value. If we accept that none of these characteristics are unique to TFS, we realise that TFS is one of many possible solutions that we could use.

Its core strengths, however, is that it guides the team in terms of the SDLC, integrates seamlessly with Microsoft and non-Microsoft IDEs and most importantly, makes available the true state of the nation, through a comprehensive list of out-of-the-box reports and the ability to add custom reports. The result is improved developer and project manager productivity, as well as real-time visualisation of the project status.

Before carrying on the same way as we have for the past 25+ years, we should consider and evaluate solutions such as TFS. Perhaps it will take care of a lot of the "plumbing" and allow us to focus on what is really important ... delivering business solutions and value!

Evidence:

But why listen to me, because I may be blinded by the passion for the technology ... have a look at some of the case studies, return of investment reports and customer evidence, as summarised in the following list and then make your own decision:

  • Case Studies
  • Customer Evidence
  • Others:
    • KBC Bank used Microsoft Visual Studios Team System and Team Foundation Server to improve application-building methodologies, increase productivity, and accelerate application deployment.
    • EDS used Microsoft Visual Studio Team System to support a more efficient global development strategy, realigning its internal software development assets and improving the productivity of its developers and testers.
    • Dell: By using Microsoft Visual Studio Team Foundation Server to deploy a global source code management platform, Dell is able maintain a centralized repository for all source code and provide it to developers on a just-in-time basis regardless of their location. Improved source code management has also enabled Dell to consolidate its source code onto fewer servers, redeploy 100 system administrators, and improve the productivity of its developers.

Join us at Tech-Ed 2007 at the Chalk & Talk sessions to discuss this topic further...

Posted by willy with 1 comment(s)

Tech-Ed 2007 South-Africa - Chalk&Talk Sessions powered by MVPs

Tech-Ed 2007 in South-Africa is just around the corner! The agenda shows a wealth of sessions, amazing presenters ... notice Brian Harry ... and finally we also see the Chalk&Talk sessions back in action. Not only are the Chalk&Talks back on the agenda, but they will be hosted in the midst of the main sessions where the hot labs used to be hosted and most are powered by South-African MVPs!

I am involved in the following sessions, during which we will demonstrate some exciting features of TFS and WCF, and have some interactive and hopefully interesting discussions.

  • CNT205 - Introducing TFS Power Tools and 3rd Party Tools
  • CNT204 - A quick tour through Visual Studio 2008 (Orcas Beta) new features
  • CNT207 - WCF

My MVP colleague Pieter Germishyus will be hosting another really exciting session:

  • CNT203 - What is XNA - Game Studio Express?

The MVPs will cover the good, the bad, the ugly and the passion of the technologies in their areas of expertise.

BB&D has sponsored some amazing prizes in support of the South-African MVPs, which will be drawn from the Chalk&Talk (C&T) evaluation entries. The more support you give the MVPs and the C&T sessions, the better your chances of winning these amazing prizes:

  • 1x Microsoft XBox 360
  • 3x 500GB External Hard Drives ... that's 1/2 Terabyte each!
Posted by willy with no comments
Filed under: ,

TFS Shadow Folders

We have often been asked whether TFS supports shadow folders as does Visual Source Safe and the answer "out of the box" is unfortunately no. I have, however, just noticed a blog post by Buck Hodges that contains the information "How to create shadow folders in TFS".

Thanks Buck, this will tick off one of the questions and hopefully nudge some of the remaining VSS resistance to move to TFS in the right direction.

Posted by willy with 1 comment(s)
Filed under:

Team System Version Control ... 123 ... Getting started with a Team Project VC

We have had a few discussions and workshops … the resultant 1-2-3 guideline we are currently considering is as follows:

1. Create the source tree in Team Foundation Version Control (TFVC)

Once we have created the Team Project, we should perform basic housekeeping before opening the sluice gates allowing the developers and testers in. One of the housekeeping tasks is the creation of the source tree for the solution, which is documented in great detail, as all other tasks, on the patterns and practices site for VSTS Guidance.

Refer to “How To: Create Your Source Tree in Visual Studio Team Foundation Server” on the patterns & practices site as above, which outlines the following basic steps and options.

1. Create a Workspace Mapping

2. Create Your Main Folder

3. Create Folders for Your Project Artifacts

4. Perform a Get Latest Version to export the server side structure to the workspace 

Once we have completed steps 1-3, we should see a source tree that resembles the following best practice tree:

An example view of an actual solution is shown in the following illustration:

The team project ScrapYard contains two applications, namely eApplication and fApplication.

2. Create the solution files (views) and add to the source tree

The next step is to create the various solution files, which we refer to as solution views, which break the solution into the various environments. The objective is that we have a master solution that includes all project artifacts and other solutions that contain only those artifacts relevant to specific team members. The advantage is that these views simplify the solutions, avoiding unnecessary clutter and speeding up the load and build time from a developer and tester perspective.

We have requested the creation of the best practice source tree and these base solution files to be optionally included in the team project creation process, however, for the time being, this is probably one of the manual and humanoid error prone processes that we should complete with great caution, again before opening the sluice gates.

The basic steps are as follows:

1. From the File menu select New, and then click Project.
2. Expand Other Project Types and then click Visual Studio Solutions.
3. Select Blank Solution.
4. Type the correct application name, i.e. eApplication, in the Name text box and select location C:\Sandbox\ScrapYard\Main\Source.
5. Click OK.
6. Repeat steps 1-5 for all known solutions.

If you need to create another solution view, proceed as follows:

1. Create an empty Visual Studio solution in a temporary directory, i.e. c:\temp\scrapyard and close it.
2. Copy the solution files from the c:\temp\scrapyard to C:\Sandbox\ScrapYard\Main\Source\XYZ, where XYZ is the appropriate solution, i.e. eApplication.
3. Open the solution in its new home.
4. In the Solution Explorer right click the solution icon and select "Add Solution to Source Control".
5. Repeat steps 1-4 for all known solution views.

3. Create the project files and add to the “solution views”

Add existing projects to the relevant solution file by copying the project folder to the solution in Visual Studio. The solution file will automatically be checked out for edit. Check the solution file back-in, which check-in the new project folder as well.

Add new projects to the relevant solution file by creating the new projects as normal and ensuring that you specify the target directory to be in the correct path within the source tree.

4. Double checking the source tree and workspace

The Source Control Explorer view of the source tree should reflect the best practices source tree or your customised source tree as shown:

Looking at your workspace on your local storage, you should see a replica of the solution as shown:

5. Prepare the project team

Before letting the team project members loose, it is important to run a quick TFS workshop preparing everyone for the following bare minimum, plus more where appropriate:

1. Quick TFS demonstration of the basic tools for those not experienced with TFS.
2. Explain the source tree and agree on what goes where, what goes to the team portal and what has not place in either.
3. Define and agree on the stakeholders, especially team project administrator and build master.

1, 2, 3 … GO! Open the gates …

Oh, we have one last issue we have not addressed in this post. When we have the best practice source tree structure, do we start on DEV, MAIN or PROD trunk and branch when needed, do we start on MAIN, branch immediately to DEV ... many, many options and as the answer is probably "it depends" we will mull over it. Watch this space.

Posted by willy with 2 comment(s)
Filed under:

TFS Quick Reference Posters ... new 123 guides and posters now 'also' speak Portuguese

123 step-step guide quick reference posters are being prepared for TechEd 2007 Chalk&Talk sessions. The first of these new quick reference posters 0202 Microsoft Team System Orcas 123 Guides focusing on code profiling, code metrics and setting up a TFS source tree, has been published to www.drp.co.za this afternoon.

Thanks to Igor Abade V. Leite (Team System MVP igoravl@tshooter.com.br, http://www.tshooter.com.br) the following TFS quick reference posters have been translated to Portuguese and are now available in PDF and high-quality JPG format from http://www.drp.co.za.

  1. 0202 Microsoft Team System BPA - Portuguese
  2. 0202 Microsoft Team System Editions - Portuguese
  3. 0202 Microsoft Team System Orcas Top Seven Wonders - Portuguese
  4. 0202 Microsoft Team System Project Source Migration - Portuguese
  5. 0202 Microsoft Team System Security Mapping - Portuguese
  6. 0202 Microsoft Team System Single Server Deployment - Portuguese
  7. 0202 Microsoft Team System Source Control - Portuguese
  8. 0202 Microsoft Team System Source Structure - Portuguese
  9. 0202 Microsoft Team System Workspaces - Portuguese

The DRP site now contains a large set of English posters, which thanks to MVPs are gradually being translated to Spanish and Portuguese. The site has also been improved to have more granular categories. You are not able to view posters by category, i.e. WCF, WCF, TFS-ALL, TFS-ENGLISH, TFS-SPANISH and TFS-PORTUGUESE.

Yet another delivery by the MVP community!

Posted by willy with no comments
Filed under:

Code Metrics ... unraveling what it all means

Trawling through TechEd2007 presentations I have finally found some "simple" explanation of some of the CodeMetrics artifacts. Assume we are staring at the following code metrics results ... what does it all mean?

Let's start on the left and work our way to the right hand side.

Maintainability Index

The Maintainability Index gives a view of the maintainability of the analysed code, whereby the higher the Maintainability Index, the better. The formula used to determine this index is specified as:

MI = 171 - 5.2 * log2(Halstead Volume) - 0.23 * (Cyclomatic Complexity) - 16.2 * log2(Lines of Code)

Refer to http://www.sei.cmu.edu/str/descriptions/halstead_body.html if you want further information on the Halstead Volume.

Looking at our results above, we realise why areas in the code are highlighted with the yellow triangle and the red stop light. We would need to dig into the WaitingYard project and so some major panel beating to ensure that the code becomes maintainable.

Cyclomatic Complexity

Cyclomatic Complexity defines the number of unique paths through a method, made up of statements, loops and switch cases, plus 1 for the final return. The lower the Cyclomatic complexity, the better.

The TechEd presentations used a common piece of code as an example as shown:

 

     bool ParseCommandLine(string[] args)
     {
1        if (args.Length == 0) ShowHelp(); return;
2        for (int i = 0; i < args.Length; i++)
         switch (argsIdea)
         {
3            case "/?" :
                 ShowHelp();
4                return false;
5            case "/input" :
6,7              if (args.Length > i && File.Exists(args[i + 1]))
                     InputFile = args[i++];
8                break;
9            case "/c" :
                 Colapse = true;
10               break;
         }
11       return true;
     }

Looking at our results above, we realise that the maintainability index in the previous point is driven mainly by the poor Cyclomatic complexity results of the WaitingYard project.

Depth of Inheritance

The depth of inheritance is probably a well understood metric. The higher the depth of inheritance, the greater the chance of a ripple effect that can introduce a bug from the base to the outer orbit inherited classes.

Looking at the Base - GrandFather - Father - Son inheritance, we would see a 0, 1, 2, 3 depth of inheritance respectively.

Obviously the lower the depth of inheritance, the better.

It comes as no surprise, that the WaitingYard is one again the project in our code metrics results that raise some concern.

Class Coupling

Class Coupling indicates the number of dependencies a particular method or type has on other types, and thus the likelihood that a change of one of the coupled types is likely to affect other types. Low numbers are good, high are a concern.

Perhaps we should seriously consider rewriting the WaitingYard project, because again it is the one that tales the prize for high class coupling and therefore potentially unmaintainable code.

Lines of Code

Lines of Code represents the number of actual executable lines, excluding comments, braces, whitespace, member declarations, and other source only constructs.

Obviously the more code, the higher the maintenance.

Therefore a low value is good, whereas a higher value is a potential maintenance problem.

    #region Application Entry Point
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
1        Application.EnableVisualStyles();
2        Application.SetCompatibleTextRenderingDefault(false);
3        Workflow(args);
    }

Now to transfer this and other stuff onto a new quick reference poster for easy lookup ...

Posted by willy with 1 comment(s)
Filed under: ,

Light Weight Scrum Process Template RC1

Have a peek at Mike Azocar's Blog ... we have just published the release candidate 1 of our light weight scrum process template.

Posted by willy with 1 comment(s)
Filed under: ,

TeamCompanion ... a first look at this solution

As mentioned, are busy evaluating both TeamLook and TeamCompanion, whereby this post list some of the features we liked during the evaluation of TeamCompanion

  1. Seamless integration into Outlook 2007
  2. Seamless integration into TFS with Team Explorer 2005
  3. Work item details are shown in a separate view, making the scrolling through a number of work items easy and visual.
     
  4. Rick-click on work item offers a limited set of options, but the new email and new appointment options are relevant to the task at hand.

TeamCompanion is still in BETA and we are therefore unable to integrate it into our operational environment. It does, however, show great promise and also introduces immense productivity when it comes to work item management.

The product currently gets three and a half out of five smiles from us as a team :) :) :) :) :)

Watch this space for more feedback ...

Posted by willy with no comments

TeamLook ... a first look at this solution

As mentioned, are busy evaluating both TeamLook and TeamCompanion, whereby this post list some of the features we liked during the evaluation of TeamLook

  1. Seamless integration into Outlook 2007
  2. Seamless integration into TFS with Team Explorer 2005
  3. Easily change the status of a work item with a button on the toolbar.
     
  4. Rick-click on work item offers a lot of options, with the “Send to OneNote” quite a cool one.

TeamLook has become part of our daily life, as the tool integrates tightly into TFS/VSTS and Office, but most importantly as it introduces immense productivity when it comes to work item management.

The product currently gets four out of five smiles from us as a team :) :) :) :) :)

Watch this space for more feedback ...

Posted by willy with 4 comment(s)
Filed under: ,

Debug Server Symbols ... educate your Visual Studio development environment

Do yourself a favour and educate your Visual Studio environment with symbols for debugging, for Microsoft artifacts. This is both useful in debugging sessions and in performance profiling ... the latter of which we will be focusing on for a while. Why? The profiling power "hidden" within Visual Studio must be liberated, so that performance analysis and improvement becomes part of everyone's solution life cycle from the start ... not only when the testers or even worse the users start complaining about dismal performance.

  • Configure Microsoft Symbols, provided by Microsoft to enhance debugging by automatically retrieving debugging files for various Microsoft products during a debugging session.
  • Options --> Debugging --> Symbols
  • Define http://msdl.microsoft.com/download/symbols as the symbol file location.

 

Posted by willy with no comments
Filed under:
More Posts Next page »