Nightmare on ALM Street

29 באוגוסט 2011

After an intense three months of work, the training kit that my colleague Yuval Mazor, and I developed for Microsoft has finally been published! You can download it at http://www.microsoft.com/download/en/details.aspx?id=27152. The training kit is designed to take novices to level 200 knowledge, i.e. to enable users, developers and administrators to competently use the most important features and understand how the various parts work with each other. What Does it Cover? The training kit contains presentations about the following topics: Introduction ...

11 באוגוסט 2011

As previously hinted by Microsoft’s Brian Harry, in a comment on his blog distributed version control (or DVCS) is on the TFS team’s backlog. Now, with last week’s announcement, the upcoming version of TFS will take a step towards distributed VCS. This change comes in the form of a new concept: Local Workspaces. What this means, in simple words, is that rather than having to make all your changes in a TFS approved environment (Visual Studio, Team Explorer, Source Control Explorer, etc.), you will be able to make all your changes (i.e. rename, move, delete and edit files) locally,...

29 ביולי 2011

A client of mine came to me with the following problem: She has several server plugins that manipulate work items, one which I wrote, and another that was downloaded from codeplex. When applied to one work item, e.g. via the Team Explorer, everything works fine. However, when applying to a bulk of work items (via Excel publishing, for example), the process freezes for several minutes, until it completes and is only then freed. I came up with the following solution: A server plugin that queues a job for the TFS Job Agent, and a Job Extension to handle...

28 ביוני 2011

Shmulik Segal, the head of the ALM team at Sela delivered a presentation on building software with TFS 2010. With a true-to-life story about a fictitious team of developers trying to deliver a product, he took us through the steps to creating a robust automatic build infrastructure for our product: from relying on drops provided by a developer, generated on his local machine, to an automatic build on a dedicated build server. From this point, Shmulik showed us how to make our build stronger, by adding rules and policies that must be satisfied, such as architectural decisions, coding...

Today Yuval Mazor and I gave the talk above in front of ~20 people, as part of the ALM day of Sela Group’s Dev Days 2011. People were quite receptive – and I believe we got them to understand not only how you do things in TFS 2010, but also why. Some of the things we talked about: Best practices for managing software development projects with TFS 2010 What are work items and how to use them (including customizations and links) How to properly build a branching plan...

31 במרץ 2011

If you’re using the Agile MSF process template in TFS 2010, you might be using the built in Iteration Backlog document. If not, you might really want to. It’s a nice and simple to use Excel document, backed up with some macros for calculations (.xlsm file). If you’re already using it, you may have come across the following problem: some days that you mark as planned interruptions from work do not affect your remaining days! This problem occurs in countries where the work-week is not Monday-through-Friday. Notice that the marked Days and Remaining Days are zero....

13 בפברואר 2011

The decision to store team projects (TPs) in separate team project collections (TPCs) has implicit security aspects to it. Separating projects into multiple collections promotes security. To understand this, one must understand TFS’s topology. Figure 1: TFS Logical Hierarchy In TFS 2008 all of the team projects were stored in the same database. In 2010 this has changed; team projects are stored in team project collections, and each collection is stored in its own database. This is often stated as a disadvantage of splitting projects into multiple...

18 בנובמבר 2010

In my previous post I described a VCS branching plan that will remove the need to initiate code freezes. A few of my friends pointed out that their teams do not use that or similar methodologies not because they were unaware of such simple possibilities, but because performing reverse integrations (or any kind of merge) is so difficult with TFS (their ALM tool of choice), that most developers do everything they can (e.g. initiate code freezes) to avoid having to perform a lengthy and painful merge. My advice is twofold. First, methodology-wise: Merge often! The more often you...

8 בנובמבר 2010

It never ceases to amaze me, that to this day, I come across so many development teams that still initiate code freezes every time they release software. In this post I will show you why this is wasteful and how the need can be avoided altogether! Code Freezing is the act of temporarily stopping all new development while focusing all of the resources on maintenance of the latest release. While releasing the latest feature set is usually the highest priority, it is often the case that the development team must divide their efforts between fixing the latest version...

18 במאי 2010

Hello all,
Last week I gave a lecture at Microsoft on the subject. It was a great experience for me, and I’d like to thank everybody who was there, and gave feedback. I hope to see you all again soon and really get to dig into the subject of exploratory tests with Pex.
As promised at before, here is the presentation and code samples I showed. Leave a comment or email me, if there are any questions regarding the code or the content.
The Presentation
Basic TDD Example
Example of Dependency Injection for TDD
Example of a Nondeterministic Dependency Problem
Classic TDD Solution to Nondeterministic...