August 2007 - Posts - Willy-Peter Schaub's Cave of Chamomile Simplicity

August 2007 - Posts

Kenya Day 3 (30/8) - The journey back home and why a "team" is key

After last night's wandering handbag, I hardly slept and got up to switch to Eagle observation mode, keeping a watchful eye on everyone around us.

(Precision Air

The flight in the Precision Air, Aerospatiale plane was great, although storage space was very, very limited.

A quick stop over in Zanzibar and then on to Dar Es Salaam ... an airport that you may want to skip on your next holiday or business destination. There is no transit hall, the customs officers battled with the concept that all one wants to do it hop on the next flight without entering the country and buying the visa ... while the customs officer on the other side was looking for the visa and the entry stamp, not understanding the concept of transit passengers either ... it is scary how some authorities operate.

So why is a "team" the secret for success? ... the support!

While I am a member of the team ATC (ASTRA Technology Core), I work with the team ADS (Application Development Systems), because projects dictate the involvement, but also and primarily because both teams work on their own and as one entity as a harmonious team. If anyone needs help, support or just a cup of tea, a team member jumps and assists. We never feel like the lonely "Panzergrenadier" who, in the Swiss army, is on his/her own, fights every battle alone and has little to no support when the going gets tough.

The core list of principles after day 3 is:

  1. Implement, adopt and use a suitable SDLC process to guide and support, not enforce. 
  2. Strive for simplicity throughout.
  3. Implement a regular build process.
  4. Maintain the investment and present a professional facade.
  5. Create a team that supports and respects the "team".

Happy team building ...

Posted by willy

Kenya Day 2 (29/8) - A personal view of Mombasa and why maintenance is important

It was a great day today, that started with an interesting and encouraging meeting with a phenomenal business person in Mombasa. Combined with the friendliness of the Kenyans, the beauty of the coastline and the relaxing environment at the Voyager beach resort, the day promised to be a memorable one. Unfortunately a frustrating incident at dinner, where my friend's handbag suddenly "wandered off", made me realise that wherever we go, we have to watch out for the few individuals who show little respect for others. Fortunately the wandering handbag was noticed in time ... what frustrates me, however, and will probably keep me awake is that I did not notice a thing while watching the musical show, instead of keeping an eye on my friend and her possessions.

Let me try and focus on today's blog post theme for 5 minutes at least ...

(Voyager Resort) 

Having been to central Africa in 1989, visiting Rwanda, Burundi, Uganda and Zaire (in those days, today known as Congo again) I was interested to see what, if anything, has changed in the region. The people are as friendly and diverse as in the past, the country as interesting and different at every street corner, while the taxi ride from the Voyager beach resort to town reminded me of journey's through Burundi and Rwanda.

(Ocean view in Mombasa)

So why is maintenance important? Firstly, I have the greatest respect for IT specialists who are maintaining solutions as part of their daily routines. While the design, development and testing of new solutions appears far more exciting and rewarding, the maintenance of a fully functional and complete solution is, in my humble opinion, far more important and challenging than creating something new. The ecosystem, its maturity and entrepreneurial is often more visible in existing solutions and the maintenance thereof, than is commonly thought.

(Mombasa)

Going back to the world of planes ...

If you fly in a plane looking older than yourself ... and I am not the youngest ... with tape appearing to keep the wings in place, would you feel comfortable and eager to fly with the same airline's latest fleet, or would you associate the entire fleet's competence on the one scary flight you endured?

I would definitely switch airlines, no matter what, because if the maintenance on one part of the fleet is questionable, what guarantees are there that the other fleet areas are maintained properly? First impressions last and it is scary how evident this concept is in the world of flying, in cities, in countries ... basically in any type of ecosystem/solution. 

It is easier and far more cost effective to properly maintain an existing solution, whether it is a plane, a building, a road or am IT solution, than having to re-create/re-develop the solution when solution finally crashes, collapses or otherwise fails disasterously due to lack of maintenance. It is such an evident concept, yet we still see solutions and infrastructure of individuals, companies, even countries deteriorate ... it is difficult to understand. 

Again many solutions, including Team Foundation Server (TFS) give us guidance and support in the complete software development lifecycle, including maintenance.

Therefore, if you are a maintenance developer or support engineer, you have my full admiration and respect. Your efforts, professionalism and sheer endurance is giving our teams and company its public facade, its reputation and success.

 The core list of principles after day 2 is:

  1. Implement, adopt and use a suitable SDLC process to guide and support, not enforce. 
  2. Strive for simplicity throughout.
  3. Implement a regular build process.
  4. Maintain the investment and present a professional facade.

Happy maintenance ...

Posted by willy

Kenya Day 1 (28/8) - IT Solutions ... simplicity, build and delivery

Due to limited access to the Internet, I will have to wait until I am back in SA before posting these blog posts.

 (Nairobi International Airport)

During our flight to Central Africa and "enjoying?!?" an eventful flight from Johannesburg to Nairobi to Mombasa, I started wondering about a presentation covering MSF by Rafal Lukawiecki. It is an excellent session he delivered at TechEd 2007, track DEV210, during which he mentioned the Standish Group and the comparison of IT solutions and roller coasters.

Why would I think about the session while flying and what is the relevance ...

Let us look some statistics published by the Standish Group:

IT solutions currently enjoy an average of:

  • 45% cost overrun
  • 63% time overrun
  • 67% expected functionality delivered

The following chart, published in the 2003 Chaos report, shows yet another interesting aspect of IT solutions.

What does it mean? Flying over Africa, having zero control of the plane, I started wondering again. What if Boeing or Airbus delivered planes as per the above graph? In other words, one to two (1-2) planes out of ten (10) never leave the factory, five (5) planes go up in smoke or are delivered to airlines with challenging flaws and/or limitations, while only three (3) out of ten planes are fully functional. Would we board the plane, knowing these statistics? Would Boeing or Airbus be able to remain in business for long? Would we, as stakeholders, pay for such services?

Hhhhmmmm, according to the Standish Group the above diagram shows the averages of failed, challenged and successful IT projects. Fortunately the statistics in our company are a lot better, but if compared with roller coasters or planes ... or even a space flight to PLuto as covered in our third book ... I would still have a queezy feeling.

Finally, why does simplicity and a regular build appear in the subject description?

To increase the green area of the above graph, we need ... in my humble opinion ... (1) a solid and accepted process, (2) simplicity which reduces both maintainability and test complexity, and (3) a reliable build process.

  1. MSF CMMI, MSF Agile, Conchango Scrum, Lightweight Scrum and RUP ... all frameworks/processes that offer a solid foundation for an IT solution. It is important you select the right tool for the job ... i.e. do not use a sledgehammer to fit the bold that holds the engine under the airliners wings.
  2. Test code and test procedures are not for the weak and timid ... it is essential for reliable and fully functional solutions.
  3. The daily or continuous build ensures that we have an indication of how functional a solution team is, a counter-measure to future integration issues, a visible indicator and overall a solution heart beat. No build, no pulse, no comfort feeling.

Thinking about it there are many solutions, including Team Foundation Server (TFS) that guide, not enforce, the above prerequisites for a successful solution. Perhaps we should be more willing to embrace these solutions, or take a flight to Central Africa and have a similar "I wonder" journey, that I had.

I often have debates with various stakeholders, including project managers, analysts and developers as to the value of project lifecycle management, automated testing and automated builds. All these artifacts are possible with the buy-in of all stakeholders, with minimal impact to the team, but major contribution to the quality of delivery. We should not be satisfied with delivering less than expected functionality, less than expected quality, or for business and project management to put the software development lifecycle under pressure. 

Perhaps the sponsors and users of IT solutions should view the IT solutions as roller coasters or planes, raise the quality bar and lower the tolerance for less than perfect solutions. May the debates continue...

The core list of principles after day 1 is:

  1. Implement, adopt and use a suitable SDLC process to guide and support, not enforce. 
  2. Strive for simplicity throughout.
  3. Implement a regular build process.

Happy flying...

Posted by willy

Team System Case Studies ... for those that need some real life references ...

ROI Case Studies | Traditional Case Studies and Microsoft internal adoption stories ... a pretty impressive list and some very interesting implementations.

For up-to-date dog food stats, bookmark Brian Harry's blog as well. The following extract shows that Team Server is well and truly operating in even large scale environments:

Extract from Brian's blog and I quote:

  • We’ve finally reached 100 million files (actually over 120 million if you count folders too).
  • The LocalVersion table is at about 700 million rows.  The 1 billion mark isn’t too far away.
  • We passed 250,000 work items.
  • We recently passed 40 million requests per week for the first time.

WOW!

Posted by willy
Filed under:

Dullstroom Bird of Prey & Rehabilitation Centre, Dullstroom

If you every make your way through Dullstroom (South-Africa), please visit our two "birds" in the Dullstroom Bird of Prey & Rehabilitation Centre. The Tawny Eagle, "Rosie", sponsored by my son Jacques and "Sid", sponsored by our team BB&D MTU/ATC. I have just received a newsletter from Mark, one of the two dedicated falconers, which includes the following on Sid and I quote:

"Well can you believe it; all of us here in Dullstroom have been seeing warm weather for a change, a mini heat wave in fact. Both of us Mark’s, big and little, even managed to get our shorts on for a short while, scaring everyone by showing off our very white legs.

It has all changed today however with gale force winds, which of course brings its own dangers in the shape of veldt fires.

Two weeks ago, to the day, all demonstrations were canceled at the centre, as all the staff were actually needed to fight a huge fire on the farm. As usual all the local farmers rallied round and came to our assistance. Goodness knows what we would have done with out their help. The farm now has two shades over the landscape; winter brown and very black.

Some of the birds succumbed to the cold weather last month in the form of frost bite, don’t get me wrong they didn’t die thankfully, but some of them lost toes, which of course is terrible in itself. The worst-case scenario was Sid, one of our little Lizard buzzards.

Sid has always had a terrible habit of sleeping on the ground in his aviary rather than one of his nice high perches. On the ground he is far more susceptible to frost bite, and he has actually now lost three toes. In spite of this after a short spell in our hospital block he is now very perky and is now back home in his aviary once more. We are also very pleased to report that he is now thankfully sleeping on high perches; at last maybe he has learned a very costly lesson.

Other birds to lose toes were a Marsh owl and a Spotted-eagle owl, but only one toe each thank goodness and nowhere near as severe as poor old Sid. These owls are also now well on the mend."

... end quote.

Dullstroom Bird of Prey & Rehabilitation Centre,
Dullstroom,
1110,
Mpumalanga,
Tel No 013 254 0777
Cell No 072 3788 562
Email falconer@dullstroom.net
Web page www.birdsofprey.co.za

Posted by willy

Team System Quick Reference Posters ... going "Portugese"

Igor Abade Leite (Team System MVP) is translating our TFS focused quick reference posters found on www.drp.co.za to Portugese, which will complement the Spanish translations as per ... going "Spanish".

You can catch Igor on his MVP Profile and Blog.

The Team System Product Team and MVP family is simply the best. You all "rock"  q;-)

Posted by willy
Filed under:

MSDN Community Distribution August Release

MSDN Community Distribution August Release has just dropped in ...

This month's release continues with introductory lessons, spurs you to experience virtuality, touches Windows Presentation Foundation with several webcasts, supports developers to become architects and lets our academic audience examine the future of Microsoft's compiler technology...

For BBD'tonians the stuff is on softwarespace, for the community we can copy to external drives, DVDs, etc.

Posted by willy
Filed under:

TeamLook - an initial "look"

I have just installed TeamLook as the first step, of our team implementing the product to centralise and simplify our interaction with Team Foundation Server (TFS) from a project lifecycle management perspective. While Team Explorer creates a seamless integration into Visual Studio, for those that spend most of their time in the Visual Studio IDE, TeamLook creates a seamless integration into Microsoft Outlook, for those that spend significant time in Outlook.

We will be reporting on this exciting product once we have used it operationally for a while. In the interim you can visit http://www.personifydesign.com/ for more information on TeamLook, as well as another new product called TeamSpec.

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

BB&D | DRP Books - What are they, availability, cost and ordering

We have received a few queries on what our books are all about, when they are available, where they can be ordered and what they cost. To cut a long story short I have summarised all the pertinent information and have negotiated exciting pricing for book 3 (new) and a book 2 and 3 combo.

Where can you order these books and how?

Easiest way is to email your contact and book details to drpsupport@bbd.co.za. Please indicate if you are a MVP, or a member of any of the South-African IT communities, such as SA Developer or SA Architect as special pricing will apply.

Why do we write these books?

Definitely not for the debates and arguments we have with our reviewers, management and editors, the long and often laborious nights of painstaking proof changes, the missed soccer games ... but to consolidate  years of experience and information in a format that can be re-used in our evangelism and developer readiness program.

The more we sell, the more we can contribute to the community, to ensure that we share our knowledge, grow the general knowledeg and awareness and in the end deliver better solutions to the business.

What are they and what do they cost?

I hope the following List will summarise the information for everyone...

----------------------------------------------------------------------------------

_NET-Book-Cover-003 cut

BOOK 1

.NET Enterprise Solutions ... Best Practices for the Connoisseur
ISBN: 0-620-33013-9, published September 2004.
Authors: James Pereira, Willy-Peter Schaub
Contributions: Ernst Marais, Peter Scheffel, Rooan Vos, Oliver Bischoff, Caspar Lessing, Russel Davidson, Louis Lewies, Peet van der Walt, Marius Smit, Christoper Penkin, Paul Vick, Vince Risi and Hennie van Dyk

Information technologies change frequently and rapidly, but the principles, experience and best practices of system analysis, design, construction and deployment remain timeless. “This book is a small step towards making the toothpick of experience a reusable commodity”.

Topics covered:

  • Fundamentals of technical architectures
  • Analysing business requirements and envisioning a solution
  • Designing an enterprise solution
  • Constructing an enterprise solution
  • Testing the solution
  • Deploying the solution
  • Office Integration
  • Java Integration
  • Mobile Devices
  • Share Point Web Parts

Availability and Cost:

  • OUT OF PRINT
  • PDF included in Developer Readiness Program Handouts
  • PDF available at no cost when purchasing the book 2&3 combo as below

------------------------------------------------------------------------------------

NET Book Cover Indigo 004

BOOK 2

.NET Enterprise Solutions ... Interoperability for the Connoisseur
ISBN: 0-620-34680-9, published August 2006
Authors: James Pereira, Willy-Peter Schaub
Contributions: Hennie Walters, David Morrison, Ernst Marais, Peter Scheffel and Peet van der Walt

Our new BB&D DRP book 2, entitled “.NET Enterprise Solutions … Interoperability for the Connoisseur”, ISBN 0-620-34680-9, is complete and currently on the printing press. We thank the authors, the contributors, the coordinators and the reviewers for sharing their knowledge and experience. The book continues the discussion and sharing of best practices we introduced with book ".NET Enterprise Solutions … Best Practices for the connoisseur, ISBN: 0-620-33013-9", focused specifically on interoperability and integration of similar and dissimilar (heterogeneous) solutions. Rather than specialising on any one concept or technology, this book presents a "broad scan" introduction to a variety of technologies within that scope.

Topics covered include:

  • Interoperability decomposed
  • Technology chatter,
  • Exploring technology used in the space of interoperability and integration
  • Interoperability challenges and countermeasures
  • Technology journey simplified, looking usage of common technology
  • Indigo in easy steps
  • Introducing Windows Communication Foundation
  • Reference blueprints and building blocks

Availability and Cost:

  • Available from BB&D
  • Standard Price
    • ZAR250 per book, $US34
    • excluding VAT (SA only)
    • excluding shipment costs
  • Included in Developer Readiness Program handouts

B3Cover.jpg

---------------------------------------------

BOOK 3

Software Engineers on their way to Pluto
ISBN: 978-0-620-38514-5
Authors: Geoff Bruce, Willy-Peter Schaub

This book continues the discussion and sharing of best practices we introduced with the books “.NET Enterprise Solutions … Best Practices for the connoisseur, ISBN: 0-620-33013-9” and NET Enterprise Solutions … Interoperability for the Connoisseur, ISBN: 0-620-234680-9. Unlike its predecessors this book is not focused on technology, but instead takes a critical look at how we are typically building information technology solutions, the way we define the modus-operandi of the team and the product life cycle.

  • Why are so many solutions failing before they reach a “happy” client?
  • Why are so many solution teams stressed before they ship their solution?

We do not have all the answers and will probably never find the necessary oracle … but we will nevertheless take a look at four typical software solution teams, building their own spaceship and flying to Pluto therein in search for answers.

Also featured is the Lightweight Scrum Process Template for the Team Foundation Server (TFS) developed by the community, for the community.

Availability and Cost:

  • Available from BB&D September 2007
  • Standard price
    • ZAR75 per book, $US10
  • Special for MVPs
    • ZAR50 per book, $US7
    • ZAR225 for book 2 and 3 combo, $US30
  • Special for SA Community
    • ZAR 60 per book $8
  • Special for SA TechEd 2007
    • ZAR 60 per book $8
    • ZAR255 for book 2 and 3 combo, $35
  • All prices
    • excluding VAT (SA only)
    • excluding shipment costs
  • Included in Developer Readiness Program Handouts

... that's all byteonauts.

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

Team System Quick Reference Posters ... going "Spanish"

Luis Fraile (Team System MVP) is translating our TFS focused quick reference posters found on www.drp.co.za to Spanish.

An exciting initiative which will hopefully allow us to add more value to the TFS community.

You can catch Luis blogs at http://www.lfraile.net or http://geeks.ms/blogs/lfraile ... just have an English-Spanish dictionary in cose vicinity q;-)

Posted by willy
Filed under:

Visual Studio 2008 (Orcas) - Performance Explorations

In our recent Orcas exploration and readiness session we received two questions, namely:

  1. What constitutes a small function, when configuring the performance session to exclude small functions?
  2. Why are Quick, Slow and VerySlow methods highlighted in the hotpath ... the demo anomaly?

Thanks to further explorations and experimentations, with expert guidance by Chris Smitch and John Cunningham from Redmond, we have managed to answer both questions. Well, here we go...

1. Small functions

For small function exclusion, the criteria are that the function does not make calls and that it has fewer than n instructions (for native, n = 5, for managed, n = 9).  The primary motivation here was to exclude simple managed property getters/setters from instrumentation.

2. Hotpath ... anomaly

To explain the second question we have to digest a few things. Firstly, let us review the "simple" main console application which we used to run the performance demo:

namespace ScrapYard
{
    class Program
    {
        static void Echo(string message)
        {
            Console.WriteLine(message);
        }

        static void Quick()
        {
            Echo("Quick Start");
            WaitingYard.WaitingClass.WaitingGame(0);
        }

        static void Slow()
        {
            Echo("Quick Start");
            WaitingYard.WaitingClass.WaitingGame(1);
        }

        static void VerySlow()
        {
            Echo("Quick Start");
            WaitingYard.WaitingClass.WaitingGame(3);
        }

        static void Composite()
        {
            Quick();
            Slow();
            VerySlow();
        }

        static void Main(string[] args)
        {
            Console.WriteLine("Hit ENTER gently when you are ready to proceed ...");
            Console.ReadLine();
            Quick();
            Slow();
            VerySlow();
            Composite();
        }
    }
}

For those that wonder what WaitingGame() is all about, herewith the simple code:

namespace WaitingYard
{
    public static class WaitingClass
    {
        public static void WaitingGame(int value)
        {
            for (int i = 0; i < value; i++)
                Thread.Sleep(1000);
        }
    }
}

We then perform a performance instrumentation of the program, select the call tree view and then gently select the hot path toolbar button to get an insight into the "hot paths" of our solution. The result is as shown:

In the shown scenario, the inclusive allocations hot path has been expanded.  This is the default for allocation profiling and the hot path algorithm expands ScrapYard.Program.Composite and sees three children: Slow, VerySlow, and Quick with 2, 1, and 1 inclusive allocations, respectively.  2, 1, and 1 are all within a factor of 3 of one another. This results in the profiler to advise that results are too close and that we have to make a decision.

The elapsed inclusive time values are ignored completely, which is what created out demo anomaly. It is, as explained, an expected behaviour.

To do hot path on elapsed inclusive time, which is what everyone expected, we right click on some row in that column and choose “Expand Hot Path on Elapsed Inclusive Time”.

As shown, and as expected, Slow and VerySlow are included, but Quick is excluded.

As Chris correctly points out, the benefits of hot path are only apparent in deep call trees and less useful in situations like this with shallow call trees and close values. We hope, however, that the demos we presented in the session and these blogs will highlight the immense power that the Visual Studio 2008 powerhouse will deliver to the development environments of tomorrow.

Chris and John, thank you very much for your help ... you guys are what makes VSTS/TFS such an exciting product.

Cheers until next time.

Posted by willy
Filed under:

Brian Harry - A Technical Fellow

I mentioned Brian and the Microsoft dogfood stats that he posts regularly in one of our Orcas readiness events today. Anyone interested to monitor how Microsoft's adoption of TFS is going should bookmark Brian's blog. Take note of the August Dogfood stats, which are truly amazing.

Anyone going to TechEd 2007 South-Africa will likely have the huge privilege to see Brian in action and see his passion for the technology.

So what is a technical fellow? Based on Anutthara's WebLog the definition is and I quote: "Technical Fellows represent the highest stage of technical achievement at Microsoft. To be a Technical Fellow at Microsoft, one must truly be a thought leader and drive innovation that has industry-wide influence and impact. We expect these most senior technical leaders to embody the best qualities of technical leadership, innovation, communication, results and customer focus"

Brian, well done and congratulations to a tremendous and well deserved achievement!

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

TFS Powertools for Orcas Beta-2

Refer to VS Team Architect Blog for the latest on the Team Architect Power Tools for Orcas Beta 2.
Posted by willy
Filed under:

A brief tour though Visual Studio 2008 (Orcas) Beta 2 and Co.

Here is a brief summary of the features we explored during the recent "What's new in Orcas VSTS and TFS" technology review. We scored the features 4.75/5 or 95% which indicates that the improvements are immense ... some features are small, some are major ... we prefer to cover everything the early adopters placed on our radar as part of our technology readiness briefing sessions.

Here is the script of the latest technology briefing hosted at BB&D:

  1. Explorer shortcut
    Ever needed or wanted to go to the file system where your project and solution files are located? Right click the solution or project in the solution explorer and select Open Folder in Windows Explorer, to take a quick "beam me over Scotty" journey. A small, yet productive feature.
     
    5/5 for this feature!

  2. Windows Communication Foundation Integration
    There was a minor hiccup with the SvcUtil not being signed in Beta-2 and the Discover in solution option in the Add Service Reference dialog has not worked for us yet, when using WCF services developed with .NET and included in new solutions. 
      
    Putting these minor Beta-features aside, the new add service reference dialogs are immensely powerful, allowing fine grained control of proxy generation and delivering productivity to the IDE.

    4/5 for productivity improvements in the WCF development environment.
  3. VSTS/TFS Working in offline mode
    By sheer mistake I dragged an old solution to the Beta 2 VM and opened the solution. The IDE notified me that my TFS server was not accessible and that I may want to work offline ... WOW!
     
    Once in offline mode, you will notice the Go Online button, which will improve productivity many-fold ... especially for those that remember the TFS command line utilities, i.e. TFPT.EXE, that had to be dusted off when a developer returned to work after working at home or at a remote destination that was not prepared to communicate with their TFS server.
      
    The other great nugget we noticed is that renaming files in the solution is now handled seamlessly by the check-in process!
    5/5 for this feature and associated productivity improvements.
  4. VSTS Multiple Targets
    For those running Visual Studio 6, Visual Studio 2003 and Visual Studio 2005 in parallel, and have not invested in hard disk storage shares, the need to run numerous IDE's in parallel is vanishing with Orcas, supporting .NET2, 3.0, 3.5 and upwards. Select properties on any project and notice the Target Framework option.
      
    4.5/5 for this feature and associated productivity improvements and disk space savings!
  5. VSTS Code Metrics
    A really cute feature to look at isthe code metrics. Right click your solution and select Create Solution Metrics , which creates and presents a "quick" and so far accurate analysis of the code and its maintainability.
      
    4.75/5 for this neat feature and the punch it will deliver on behalf of maintenance developers.
    • What does it mean all mean?
      1. Maintainability Index – An index value between 0 and 100 representing the maintainability of the code. High is good, low is bad.
      2. Cyclomatic Complexity – Measurement of the structural complexity of the code, created by calculating the number of different code paths in the flow of the program. High implies  that more tests are needed to achieve good code coverage and will likely be less maintainable.
      3. Depth of Inheritance – Number of class definitions that extend to the root of the class hierarchy. Deep hierarchies indicate more difficult and less maintainable code.
      4. Class Coupling – Good maintainable software strives for tight cohesion and low coupling, hence low is good. This stats is measured through the coupling to unique classes through parameters, local variables, return types, method calls, generic or template instantiations, base classes, interface implementations, fields defined on external types, and attribute decoration.
      5. Lines of Code – Indicates the approximate number of IL lines of code. High counts could indicate that methods are hard to maintain.
  6. VSTS Performance Profiling
    Ian does far more justice to the performance profiler than I ever will and you must catch his blog at http://blogs.msdn.com/ianhu/ for an in-depth and interesting journey through the world of profiling.
    Below are 5 features we "noticed" in the performance profiling world, which appear really useful, namely configuration options, paused profiling, data collection control, hot path'ing, comparing performance reports and mimimising the "noise" when looking at performance reports.
    5/5 for this feature and the backup support it will deliver to developers, testers and anyone investigating solution performance.
    1. Profiling Configuration
      It is beyond the scope of this script/post to explore every configuration setting, but it is imoportant to note that the options are vast, neatly arranged and well documented.

    2. Launch with Profiling Paused
      If your startup sequence is lengthy or you wish to profile specific sections of the code, make use of the Profiling Paused option. It works in conjunction with the data collection control ... see next point.
        
       
    3. Data Collection Control
      When profiling is launched with the Profiling Paused option, the data collection control shows that profiling is paused for the session. 
       
      We can now add new mark points (bookmarks) or resume the collection of the profiling information.
       
    4. Hot Path'ing
      Ever wondered where to start looking in a profile report? If yes, take note of the hot pathing button, which highlights the areas we should start investigating:
       
       
    5. Profile Difference Report
      Now we ask the developers to make a million and one changes ... what has changed and where are we quicker or slower than before the changes? Again Orcas comes to the rescue with the Compare Reports feature, which compares two profiling reports and with the help of red "up" and green "down" arrows (probably bad choice for the many battling to distinguish the two colours), quickly highlighting where we are slower and/or quicker. We are therefore able to baseline our solution and continuously determine the impact on performance of code changes.
        
       
    6. Minimising the noise and clutter
      Probably the most exciting feature is the right-most button, which activates the Noise Reduction feature.
       

      The two options Trimming and Folding help in reducing the unnecessary noise dramatically and in future explorations we will investigate them both in much more detail.
        
  7. TFS Annotation
     
    Code annotations are exciting for the testers, the code reviewers and even the developers. They will add value in the documentation (annotation) of code changes. Each changeset is highlighted as shown above, which allows the readers to visually position code changes, based in terms of changesets.
    4.5/5 for this feature and associated productivity improvements.
  8. TFS Build Wizard

    There is simply too much good news in this department to do it any justice in this brief technology review script. Again we will cover the build in much more detail in later sessions.
    What are the main nuggets? Comprehensive and easy configuration of build properties, the support for incremental and scheduled builds and details and configurable viewing of builds ... queued, failed, successful, in progress, as well as parallel builds.
     
    5/5 for this feature and associated productivity improvements.
  9. TFS Best Practice Analyzer
    This tool is not part of Orcas, but is part of our evangelism and readiness drive. The tool has been used by Microsoft support and in a limited scale in the MVP community for early adoption testing. It will be released as part of the TFS Powertools in due course ... the count down had begun. In its limited exposure it has resulted in amazing best analysis analysis and guidance, promising to deliver immense productivity gains in both the pre- and post-TFS implementation phases. While a pre-install best practice analysis verifies that the potential TFS host is adequate to host TFS services, a HealthCheck allows you to regularly check the health of your TFS deployment. The following screen shot shows an example health check analysis report:
      
    5/5 for this feature and associated productivity improvements.

The bottom line is, that Visual Studio 2008 packs a productivity punch in both the VSTS and TFS environments and we can look forward to a great product in February 2008. The next readiness sessions will be focused on TFS Build and 3rd party IDE integration in a TFS environment ... see you there.

Posted by willy
Filed under:

Team Foundation Server Version Control - 101 on creating the recommended structure

The TFS best practices and our posters 0202 Microsoft Team System Source Structure and 0202 Microsoft Team System Branching, which can be found on http://www.drp.co.za, all talk about a recommended structure.

How is this structure created is a common question? Herewith our take and we are open for comments and constructive criticism, so that we can streamline the process and hopefully create a TFVC structure 101 creation guideline poster one day:

  1. Create the source folder, i.e. c:\sandbox\MultipleSolutions, which will be the home of multi-solutions.
  2. Create an empty Visual Studio solution in a temporary directory, i.e. c:\temp\scrapyard and close it.
  3. Copy the solution files from the c:\temp\scrapyard to c:\sandbox\MultipleSolutions.
  4. Open the solution in its new home.
  5. In the Solution Explorer right click the solution icon and select "Add Solution to Source Control". By default the solution will be added by using the solution name for the server folder name. Change it to the name corresponding to the Source folder name, to enable us adding more than one solution in the future.
  6. Add existing projects to 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

Unfortunately the process is very manual and we are open to suggestions.

Posted by willy with 1 comment(s)
Filed under:
More Posts Next page »