![]()
I recently sent round a list of broken builds at SSW and asked for them to be fixed or deleted if they are not being used. My colleague Peter came back with a couple of questions which I love as it tells me that at least one person reads my email ![]()
I think first we need to answer a couple of other questions related to builds in general.
Why do we want the build to pass?
- Any developer can pick up a project and build it
- Standards can be enforced
- Constant quality is maintained
- Problems in code are identified early
What could a failed build signify?
- Developers have not built and tested their code properly before checking in.
- Something added depends on a local resource that is not under version control or does not exist on the target computer.
- Developers are not writing tests to cover common problems.
- There are not enough tests to cover problems.
Now we know why, lets answer Peters questions:
Where is this list? (can we see it somehow)
You can normally only see the builds listed for each project. But, you have a little application called “Build Notifications” on your computer. It is installed when you install Visual Studio 2010.

Figure: Staring the build notification application on Windows 7.
Once you have it open (it may disappear into your system tray) you should click “Options” and select all the projects you are involved in.
This application only lists projects that have builds, so don’t worry if it is not listed. This just means you are about to setup a build, right?
I just selected ALL projects that have builds.

Figure: All builds are listed here
In addition to seeing the list you will also get toast notification of build failure’s.
How can we get more info on what broke the build? (who is interesting too, to point the finger
but more important is what)
The only thing worse than breaking the build, is continuing to develop on a broken build!

Figure: I have highlighted the users who either are bad for braking the build, or very bad for not fixing it.
To find out what is wrong with a build you need to open the build definition. You can open a web version by double clicking the build in the image above, or you can open it from “Team Explorer”.
Just connect to your project and open out the “Builds” tree. Then Open the build by double clicking on it.

Figure: Opening a build is easy, but double click it and then open a build run from the list.

Figure: Good example, the build and tests have passed

Figure: Bad example, there are 133 errors preventing POK from being built on the build server.
For identifying failures see:
- Solution: Getting Silverlight to build on Team Build 2010 RC
- Solution: Testing Web Services with MSTest on Team Build
- Finding the problem on a partially succeeded build
So, Peter asked about blame, let’s have a look and see:

Figure: The build has been broken for so long I have no idea when it was broken, but everyone on this list is to blame (I am there too)
The rest of the history is lost in the sands of time, there is no way to tell when the build was originally broken, or by whom, or even if it ever worked in the first place. Build should be protected by the team that uses them and the only way to do that is to have them own them. It is fine for me to go in and setup a build, but the ownership for a build should always reside with the person who broke it last.
Conclusion
This is an example of a pointless build. Lets be honest, if you have a system like TFS in place and builds are constantly left broken, or not added to projects then your developers don’t yet understand the value. I have found that adding a Gated Check-in helps instil that understanding of value. If you prevent them from checking in without passing that basic quality gate of “your code builds on another computer” then it makes them look more closely at why they can’t check-in.
I have had builds fail because one developer had a “d” drive, but the build server did not. That is what they are there to catch.
If you want to know what builds to create and why I wrote a post on “Do you know the minimum builds to create on any branch? ”
Technorati Tags: TFS 2010 ALM VS 2010 TFBS Silverlight SSW SP 2010 SharePoint
Smart Classifications
Each classification [Concepts, Categories, & Tags] was assigned using AI-powered semantic analysis and scored across relevance, depth, and alignment. Final decisions? Still human. Always traceable. Hover to see how it applies.
What to read next
Solution: Getting Silverlight to build on Team Foundation Build Services 2010
Step-by-step guide to resolving build failures when compiling Silverlight 3 projects with Team Foundation Build Services 2010, including …
Finding the problem on a partially succeeded build on Team Foundation Build Services 2010
Learn how to diagnose and resolve partially succeeded builds in Team Foundation Build Services 2010 by tracing test failures, identifying …
Do you know the minimum builds to create on any branch?
Explains the essential three build types, Gate, CI, and Nightly, needed per branch to ensure code quality, test coverage, and collaboration …
How to deal with a stuck or infinitely queued build
Learn how to identify, troubleshoot, and resolve stuck or infinitely queued builds in Team Foundation Build, including tips for monitoring …
Solution: Testing Web Services with MSTest on Team Foundation Build Services 2010
Explains how to configure MSTest for automated testing of web services on Team Foundation Build Services 2010, including handling dynamic …
What does a poor scrum team look, act and feel like?
Explores signs of a poor scrum team, including autocratic leadership, dysfunctional product ownership, lack of trust, and organisational …
Detecting agile theatre with real delivery signals
Why Most Companies Operating Models Fail in Dynamic Markets
A concise comparison of Predictive and Adaptive Operating Models, explaining why traditional structures fail in dynamic markets and how …
Don’t Manage Dependencies, Remove Them
Explains why dependencies are a sign of poor system design and outlines steps to eliminate them by aligning teams, clarifying ownership, and …
The Estimation Trap: How Tracking Accuracy Undermines Trust, Flow, and Value in Software Delivery
Tracking estimation accuracy in software delivery leads to mistrust, fear, and distorted behaviours. Focus on customer value, flow, and …
Flow of Value vs Flow of Work – Misnomer or Useful Shorthand?
Compares “flow of value” and “flow of work” in Kanban, explaining why only validated outcomes count as value and stressing the need for …
Why Outsourcing DevOps Fails, and How Real Engineering Excellence Starts With Your Team
Avoid DevOps vendor lock-in, discover how true engineering excellence starts with partnership, not outsourcing. Ready to transform your …
Detecting agile theatre with real delivery signals
Don’t Manage Dependencies, Remove Them
Explains why dependencies are a sign of poor system design and outlines steps to eliminate them by aligning teams, clarifying ownership, and …
The Estimation Trap: How Tracking Accuracy Undermines Trust, Flow, and Value in Software Delivery
Tracking estimation accuracy in software delivery leads to mistrust, fear, and distorted behaviours. Focus on customer value, flow, and …
Flow of Value vs Flow of Work – Misnomer or Useful Shorthand?
Compares “flow of value” and “flow of work” in Kanban, explaining why only validated outcomes count as value and stressing the need for …
Why Outsourcing DevOps Fails, and How Real Engineering Excellence Starts With Your Team
Avoid DevOps vendor lock-in, discover how true engineering excellence starts with partnership, not outsourcing. Ready to transform your …
Estimating Better in an Overloaded System Is a Poor Man’s Strategy
High work in progress (WIP) causes delays and unpredictability; improving estimates won’t help. Limiting WIP and focusing on flow is key to …