Skip Ribbon Commands
Skip to main content

Quick Launch

Delta-N Blogs > VSTS Blog
mei 09
What If…You delete a work item field ?

Recently I was doing some work on Work Items. I had to remove a field from a Work Item and wondered what would happen with History etc..

In this blog post I describe the things that happen if you delete a field from a Work Item Type Definition.

For this post I added a Field “Test.TemporaryField” to a Bug Work Item.

image

I added the field to the form and saved 3 revisions of the Bug.

image

This reflects in the history as expected.

image

Then I remove the field from the Work Item Type. Of course I removed it from the form first.

image

But then….

I hoped that the history would still contain the field, but the history only shows fields that are currently available on the work item.

image

But in the Tfs_Warehouse all history is still preserved

image

And then as a final test, I re-added the field to the bug. Magically, all history pops up again. Obviously it was not deleted at all..

image

Hope this saves you a lot of uncertainty…

april 24
Implement TFS or ALM? Same or different?

Introduction

The answer to the question in the title probably varies from person to person. Some people will say that an implementation of Team Foundation Server (TFS) automatically implies an implementation of Application Lifecycle Management (ALM). Other people will say that this is not the case and you don’t get ALM by implementing TFS.

I belong to the last group of people with some nuances. I firmly believe that an implementation of TFS (and of course Visual Studio along with it) is a really good start of an ALM implementation and that some aspects of ALM almost get arranged without any effort. Unfortunately ALM implementations often stop after implementing TFS and organizations do not get the value from the product that they actually want.

The reason for this blog post is that I want to raise some awareness around the implementation of ALM within your organization. What does it mean, what needs to be done and who are involved? I feel that it is very important to set expectations about an implementation up front.

ALM, TFS or both

People know that you are not an author after installing Word or a designer after installing Photoshop. Somehow this is different with TFS. At first hand some (or many?) organizations think they do ALM after installing TFS.

I work in the profession of TFS/ALM implementations since 2006 and because of this I can easily recognize if the implementation is a TFS or an ALM implementation. It is totally OK to install TFS without doing ALM and it can in fact be very useful, but the expectations must be set correctly.

I know I am doing a TFS implementation when I get questions like:

  • How do we structure Source Control?
  • How to make a Unit Test?
  • How to run Code Analysis?
  • How do I create an automated build?

The questions are “How” questions. There is a problem or a requirement and one of the TFS/Visual Studio features can solve this. These questions are often asked by technical people. Software developers, testers and/or architects. They are directly involved in building software and see the bottlenecks in that process.

Microsoft has the tendency to target most of the presentations and marketing on these people as well. “Look at this great feature and what it can do for you!”

It is definitely an ALM implementation when I hear:

  • We want to do better maintenance on our releases.
  • We want an overview of open issues, because we currently do not know.
  • We get a lot of bug reports. We want to increase our overall quality.
  • We want traceability from requirements to code.

The big difference with the “TFS” questions is that these questions are focused around a specific problem area. The “Why” is clear at this point or is at least the starting point. Something is wrong, we know why and we want to fix it. The “Why” questions can still be asked by the same Software developer, tester and/or architect. However, often the business, product owners and Head of IT are involved as well.

Instead of choosing to use a great feature because it is a great feature, both features and process changes are sought to solve a problem. In most cases TFS/VS can help in solving these problems but sometimes TFS is not even necessary.

Make sure you know what kind of implementation you are initiating up front. Is it mainly about features or tools, start a TFS implementation. If you want to solve business problems, start an ALM implementation.

It does not matter what sort of implementation you choose to initiate, just be aware of it. Both are valuable and are the best choice in a specific situation, both have a different goal and both need a different approach.

What you need to do

If you acknowledge the advantages of Application Lifecycle Management and you actually choose to do an ALM implementation, you need to arrange more then implementing tools. Generally speaking, you cannot expect an ALM implementation to be successful when only technical people are involved.

To facilitate a successful implementation prepare yourself with the following points.

  • Make sure you write down the business problems. Find out the “why” of certain questions and how things can be done differently.
  • Actively involve and convince higher management, the stake holders. Write Business Cases. What does an implementation provide to the organization and to the managers?
  • Involve as many roles as possible, and not only technical people. Generally speaking they are always eager to try new stuff. Involve the Project Managers, Business Analysts, Architects, Testers and sometimes even end users .
  • Analyze the information needs of different roles. What, when and how.
  • Target your presentations. Show different features of TFS and VS to different roles. Don’t show the source control features to the business. Show them a list of requirements in a specific release instead.
  • Roll out the implementation step by step. Roll out one part, evaluate, introduce next step. Etc. Make a high level roadmap to target & prioritize problems and to make the implementation transparent.

ALM implementation is not only technical, but it is a process implementation also. Changing the process implies changing the way of working. You will notice that most people are willing to change but some people are very reluctant. Do not exclude those people but involve them. Try to give them value on their area. At a certain point things will change. Support of management is crucial here. They need to guide this process and keep everybody on board. , Understand, a business realize its needs by people, tools and process.

Conclusion

I would recommend everybody to use TFS and Visual Studio. Both are great tools that provide you with a lot of possibilities. However, make sure that you know the reasons and people behind an implementation. Is it TFS or ALM that you are implementing?

Be aware of your choice and define your strategy up front. It is perfectly OK to do a TFS implementation if that suits your situation. No matter what type of implementation you choose, make sure you manage the expectations accordingly.

oktober 03
Hidden Gems in TFS–Part 2 Work Item State Diagrams

In this series of blog posts I like to highlight some features of TFS/Visual Studio that people seem to overlook. In my day to day job I often see that people don’t know about certain feature that are available in Team Foundation Server, Visual Studio or some of the Powertools.

Some features are available as a Powertool. These can be downloaded from here

Earlier Posts

In this part…….

Work Item State Diagrams

Sometimes it useful to have an overview of all the states of a work item, and how the different states interact wit each other.

The state transitions and states are defined inside the Work Item Definition. Surely you can export the work item type definition and look at the XML or, for a better experience, open the Work Item Type Definition in the Process Editor. This is all possible but not very user friendly.

A better way to do this is use the Web Access Client that comes with TFS.

  • Navigate to your Web Access Client by using the url http://<tfs server name>:8080/tfs/web.
  • Open a work item or create a new one of a specific type

    image
  • When the work item opens Click State Diagram on top

    image
  • The Diagram opens. Note all the reasons and transitions that are also drawn

    image

Have Fun!

september 29
Hidden Gems in TFS - Part 1 Annotate

In this series of blog posts I like to highlight some features of TFS/Visual Studio that people seem to overlook. In my day to day job I often see that people don’t know about certain feature that are available in Team Foundation Server, Visual Studio or some of the Powertools.

Some features are available as a Powertool. These can be downloaded from here

In this part…….

Annotation

When you use Team Foundation Server Source Control you certainly know about history. Sometimes you want to see the history of a single file and see how certain pieces of code ended up there. Who did that and when was this done.

In TFS 2010 you get the possibility to annotate your file. Simply right click a file in Solution Explorer or Source Control and choose Annotate.

image

When you click this, the latest version of the file is loaded with annotations on the left side.

image

The blocks on the left show you the changeset number, the author and date. When you click the changeset number, the changeset details open directly.

Have fun !

september 06
My favorite TFS tools and links

I use TFS for a number of years now and I have a few tools and links that I always take with me.

Let me share them with you

Team Foundation SideKicks by Attrice

http://www.attrice.info/cm/tfs/

This tools has some great features for doing administration tasks in TFS. Looking at checked out files, workspaces or doing code reviews. Great Tool !

Import/Export Areas and Iterations tool by Neno Loje

http://msmvps.com/blogs/vstsblog/archive/2010/07/08/updated-area-import-export-tool-for-tfs-2010.aspx

This tool allows you to import and export all areas and iterations in a Team Project. When doing migrations this tool is priceless! Thanks Neno!

Import/Export Work Item Queries

http://wiqadmin.codeplex.com/

This tool allows you to export all Work Item Queries and folders and reimport them in another Team Project. Again when doing migrations or movements this tool is a must!

Report Explorer

http://rssexplorer.codeplex.com/

If you use a lot of reports it is sometimes useful to download multiple reports at once. This tool allows you to do this. Last time I looked it could not handle subfolders but this can easily be fixed in the code that you can download from codeplex as well.

TFS Administration Tool 

http://tfsadmin.codeplex.com/

This tool allows you to easily set permissions on TFS, SharePoint and Report Server all at once. This is very useful for administrators

TFS API Series by Shai Raiten

http://blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+API/default.aspx

This great blog of Shai Raiten has code examples and downloadable samples for a lot of different TFS API subjects. Work Items, Test Cases, Builds all can be programmatically accessed and Shai describes it.

TFS Build Customization by Ewald Hofman

http://www.ewaldhofman.nl/?tag=/build+2010+customization

Ewald describes the most relevant aspects of customizing TFS Builds. This is a must read for anybody who wants to customize the TFS 2010 build processes!

Of course there are some great tools in Visual Studio as well. The most important one

september 05
Solving TF30042: The database is full. Contact your Team Foundation Server administrator.

I got this message a few weeks ago and it scared me. Why? Let me tell you.

The company where I do a lot of consultancy called me in the middle of the day that users started receiving this message. People could not check-in, create work items or add/edit any TFS information.

The support engineer already had looked in the Event Log and found the following result.

Detailed Message: TF30065: An unhandled exception occurred.

That scared me. I had had this message before and back then it was a full disk of the database server. That still is not nice as it not easily fixed sometimes, but at least it is obvious.

When searching the internet I found many suggestions, but most of them indicated that I should put the DB in Simple recovery mode, or clean things up.

Do not do that because this can have serious implications!

Our disk was not full, and existing artefacts (work items, source, builds etc.) where still accessible. The database was about 50Gb. I was not planning to do anything about the database structure or data so more investigation was needed.

Strange….When we looked a little bit further in the event log there were also different kind of messages.

“Could not allocate space for object 'dbo.WorkItemsWere'.'PK_WorkItemsWere' in database 'Tfs_DefaultCollection' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup”

Aha ! That was actually the hint I was looking for. As we already checked disk space I thought of SQL Server. You can fix a database. What I understood is that this is a trick a lot of DBA’s perform to increase performance on a database. Fix the size of the database file.

DBProps

In order to fix the problem, we opened the properties of the TFS_DefaultCollection database and changed the autogrowth property to Unrestricted File Growth.

Hope this helps!

juli 22
Using Config Transformation for easier (Azure) Development

Visual Studio 2010 has this nice feature for config transformations. When adding a new build configuration you also get the possibility to add a web.[Configuration].config file which contains specific settings for that specific configuration.

When using the publish function, the transformation uses pretty slick XSLT transformations to update the web.config with the settings you specified in the web.[configuration].config.

You can read all about this functionality here. http://msdn.microsoft.com/en-us/library/dd465326.aspx

When you are coding for Azure or coding in a team with a number of developers, web.configs and app.configs can really make life hard. Especially for Azure it is hard to maintain the different configurations for the Acceptance and Production environment.

Likewise when you are developing software in a team, it is also very unhandy that with every Get Latest Version, your config settings with all your connectionstrings and local paths are overwritten with the settings of your fellow coder.

Would it not be nice to use these transformations to solve these problems as well? Just create your own config settings and the build process takes care of everything? Don’t worry about wrong settings or connections? Yes it would ! Unfortunately, the transformations only work on publish and not on build.

Together with my friend and colleague from Delta-N Jasper Gilhuis, I figured out a way to use this transform functionality within Visual Studio and the TFS Build Server, which gives you loads of possibilities regarding different configuration files.

The solution we have found can be implemented in the following way:

  • Create a build configuration for your local machine (for example [ComputerName])

image

image

· Create a Web.Computername.config and perform the default transformations as described here http://msdn.microsoft.com/en-us/library/dd465326.aspx

image

  • Unload your project and edit the file

image

image

  • Add this piece of code at the end of the project file.
   1: <UsingTask AssemblyFile="..\BuildTasks\Microsoft.Web.Publishing.Tasks.dll" TaskName="TransformXml" />

   2:  

   3: <Target Name="BeforeBuild">

   4:   <Copy SourceFiles="Web.Config" DestinationFiles="Web.Original.Config" />

   5:   <TransformXml Source="Web.Original.Config" Transform="Web.$(Configuration).config" Destination="Web.config" />

   6: </Target>

   7:  

Make sure the path to the Microsoft.Web.Publishing.Tasks.Dll can be found. Best is to

copy the assembly to a relative folder of your solution. You can find the assembly here. C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web

  • Copy all files to local directory
  • Reload your solution
  • You’re done.

To test it, just put a dummy value in your web.config and a real value in your “own” config. Build Solution and voila!

For the Team Foundation Build Server, just create a configuration like you did before and point to that configuration in the Build Dialog.

Nice thing is, this works for all xml based config files because it is plain XSLT transformations. To use this functionality with app.config or any other.config, follow the steps described here http://stackoverflow.com/questions/3004210/app-config-transformation-for-projects-which-are-not-web-projects-in-visual-studi to make the other configs dependent as well.

Hope this helps!

For your convenience I added a zip with a preconfigured solution with web.config transformations

http://blogs.delta-n.nl/vsts/Lists/Photos/Transformations.zip

mei 26
Distributing Work Items Queries to others via mail

When working with work items, sometimes it is useful to send the results of a work item query to other people. Even people from outside of your development team.

For example the customer wants to know the status of his bugs and does not have access to your systems.

In this case you can use the mail functionality of TFS 2010. You can either use the Web Access Client or Visual Studio to send your emails.

Web Access Client

  • Go to your web access client. http://tfsserver:8080/tfs/web and navigate to the Work Items Tab.
  • Open a Work Item Query
  • When the results are visible open the Tools Dropdown list and select Email All Work Items as a List

image

A pop up window appears with all the work items. Here you can add email adresses and additional text. Press Send to send the list.

image

Visual Studio

  • Open Visual Studio and the Team Explorer
  • Navigate to the query and open it
  • In the Query Results Press Open in Microsoft Office and choose Send Query to Outlook.

image

Hope this helps!

mei 19
My DevDays 2011 Session–Adopting Scrum

In April 2011 I co presented the Pre-Conference for the Dutch DevDays. This Pre-Conference was all about adopting Agile Practices. My part was to tell something about adopting Scrum. I already mentioned this in my previous post

image

Below you find the abstract and the link to the Channel 9 Video

http://channel9.msdn.com/Events/DevDays/DevDays-2011-Netherlands/devdayspcALM1

Abstract

Agile and in particular SCRUM are becoming the defacto choice of companies who are looking to improve software development practices.
Every aspect of application development - requirements, estimation, development, test, and deployment - benefits from new ideas and techniques.
This pre-conference tutorial presented by Marcel de Vries, Rene van Osnabrugge, Ewald Hofman and Dennis Doomen will help you understand how to adopt and improve your agile practices for greater productivity and higher quality applications.

Adopting SCRUM
- Learn how Team Foundation Server combined with the Visual Studio SCRUM process template provides a solution for adopting SCRUM in your lifecycle;

Enjoy watching !

mei 18
Twitter Summary of the Future of Visual Studio ALM @ TechEd US

Yesterday I was looking the video of TechEd US. The Future of Microsoft Visual Studio Application Lifecycle Management. This session of Cameron Skinner gives a really nice overview of the new features that are coming up in Visual Studio vNext.

During the session I twittered some things that eventually give a nice summary of what I saw. I certainly recommend you watch the video, but if you are short in time, this is a good alternative.

While you are at it. Don’t forget to take a look at the white paper from Jason Zanders Blog.

Twitter Feed

Started Watching the future of #vsalm video from teched us #tfs

Teched on my flatscreen at home #VSALM that's nice!

Woot! intellitrace also on production servers in #vsalm vnext

Storyboarding in powerpoint ! #VSALM #vNext. Nice templates, custom shapes. Very nice for none technical users

The new #tfs webaccess client. All metro styled. #VSALM #vNext

Drag drop in your product backlog and easily adding items. Drag drop to sprints & integrated real time velocity and burndown. #VSALM #vNext

They really like urban turtle! they only made a better version of it! #VSALM #vNext assigning capacity and states is now getting simple!

For the people who are curious what i am looking at. http://t.co/063bvC2 good stuff!

That HUB looks sweet! Besides that, shelving all your workspaces , windows, breakpoints etc. Looks even sweeter! #VSALM #vNext

Analyzing code clones! where did you copy paste so that you can better reuse! semantical similar blocks code! brilliant! #VSALM #vNext

Built in NUnit and XUnit support and extensible to other framewoks. Automatic discovery of all those tests #VSALM #vNext

A feature that should have been available in #tfs 2005. Searching work items. #VSALM #vNext happy with that!

Built in code review workflow! Cool. Submit code review, shelve changes, open file, compare, give comments. Impressive! #VSALM #vNext

The provisional tab. While debugging all code files are opened there instead of in the common dock. Promote from here to normal area. #VSALM

I hope this all will make it to the beta and release #VSALM #vNext

Stakeholder feedback. Record clicks, video, audio from stakeholders while they are clicking through. Nice ! #VSALM #vNext

1 - 10Next
 

 Top posters