Thursday, 28 August 2014

TFS Transaction Marking on SQL Server AlwaysOn Data Tier

If you need to manually backup the Team Foundation Server – you might have several reasons for not using the OOB tool – you need to follow this walkthrough on MSDN.

What I’d like to share is a small script you might use while you have to backup your Team Foundation Server running on an AlwaysOn-backed Data Tier.

I created a hourly job in both nodes, running one minute prior to the Transaction Log Backup job, as it follows:


In our case, we backup the Primary Replica, so before initiating the transaction I check for the preferred Replica. If it is 1, it’s the primary, otherwise it is the secondary (2) or it is resolving (0), both cases where my job cannot run.

It might be a little bit overzealous, because if you run the very same job on a non-preferred Replica (the secondary in our case) you are going to get an execution error stating the databases are read-only, but better safe than sorry!

Wednesday, 20 August 2014

Why is my Incremental Analysis Database Sync going on forever?

Sometimes it happens...
And that’s just because I stopped it. Why does it happen?
The reason is pretty easy: if the job is running, but you have a network problem – an outage, like it happened to me – the TFS Job Agent might not report the state and it may goes on for hours, even if it has released all the resource locks.
You can safely stop the job by invoking the Web Service on the TFS Application Tier – you’ll need to set the SetAnalysisJobEnabledState to FullyDisabled first and then to Enabled in order to restart with the next scheduled job.
And remember – do NOT process the TFS_Analysis OLAP cube with SSMS, as it is not supported by the Microsoft CSS.

Wednesday, 13 August 2014

How did I learn to get on well with Git

Who knows me certainly know I am not the biggest…err…fan of Git Smile

Thanks to Gian Maria and its continuous support on it I managed to understand how Git works and why it is so powerful. I am not saying it is “better than” something else – it is different and it has some pros and some cons.

So, it’s distributed. Distributed does not mean anarchist – it means distributed. If you want to have some sort of centralisation, go for a Remote. You can use it as a shared repository to be used like a central depot without losing any advantage of the DVCS concept.

When you commit something is different than when you push something. A commit is local, a push is toward a Remote.

A Git Fetch gets all the objects from the Remote which are not in your local repository. A Git Pull does more: it merges those files on your local repository, like a Get Latest Version.

Eventually – install SourceTree. It’s an amazing GUI tool with a fantastic branch visualisation tool.

Monday, 4 August 2014

Can’t refresh the TfsOlapReport connection? Have a look at the Trusted Data Providers…

You open the SharePoint Dashboard and you suddenly see this error:


An error occurred during an attempt to establish a connection to the external data source. The following connections failed to refresh. TfsOlapReport

Fair enough, something happened to the Excel Services. Does it? Actually not – and if you try opening that specific report you will see your local Excel refreshing the data and working as usual.

What happened?

That specific error is a generic refresh error in our case. I tried back and forth on all the usual suspects – SSAS permissions, SSS token in the file, SharePoint settings, even firewall ports – but nothing changed.

Suddenly I noticed some reports were working (the Burndown one for example) while this (Active Bugs by Priority) didn’t. So what?

Looking at the Connection String I saw the Burndown report had MSOLAP.3 as a provider, while the broken report was using MSOLAP.5

A quick double check on the SharePoint server (Manage Excel Services Application –> Trusted Data Providers) brought to the solution: MSOLAP.5 was not listed as a Trusted Data Provider.

Once I added MSOLAP.5 to the list everything worked as expected again and the reports were correctly showing.

Tuesday, 15 July 2014

Demystifying the Scrum of Scrums

The Scrum of Scrums is often saw as something ‘which grew out of control’, ‘just for Scrum Masters’ or something suited just to very large organizations.

It isn’t, actually…and it’s not rocket science, either.

A Scrum of Scrums is the best possible way of clearing doubts and questions raised among teams. It must not be merged or confused with a bigger standup meeting (as I’ve heard it…) because it is something brought on by the teams’ representatives – the Scrum Masters.

Its scope is to get a clear understanding of the problem’s domain and provide a solution – as the Scrum Master is there to remove impediments.

And yes: a Scrum of Scrums can have its own backlog, Jeff Sutherland defines the Scrum of Scrums as “…an operational delivery mechanism”, so having a backlog is perfectly reasonable.

Thursday, 10 July 2014

Why is the new VSO Stakeholder Plan a game changer?

Yesterday Brian Harry announced the new Visual Studio Online Stakeholder Plan – basically, full access to Work Items only in Visual Studio Online (and on-premise Team Foundation Server) for everybody, free of charge.

I believe this is a true game changer: it’s at least four years that we talk about ‘involving stakeholders in the process’, ‘synergy among the parts in the organization’, Product Owners, etc. We could do that, for a fee (the Visual Studio Online plan or the on-premise TFS CAL) but it was perceived as a bit unfair against who could use that CAL/plan at full power (a developer would use all the features provided by the platform, a stakeholder certainly wouldn’t, 99% of the time).

Right now there are no excuses anymore Smile as you can involve as many stakeholders as you wish without paying a penny.

As there are evidences of how involving stakeholders in the development process is a staggering improvement compared to other methodologies, it is a great opportunity to push hard on the quality pedal and starting to achieve great results!

Tuesday, 8 July 2014

Test Suite and Test Plan customizations in TFS 2013 Update 3 – synergic work between development and testing

IMHO the most exciting feature of Team Foundation Server 2013 Update 3, among all its goodness, is the migration of Test Suites and Test Plans to plain Work Item Types – and the reason is pretty simple.

Despite all the effort spent, developers and testers still had a tiny line which kept splitting them and their worlds:


Which eventually led to limited shared information (pinned items on the Web Access) between them. Which was a cause of pain and frustration, especially among the testers. Using Tags was a way of sorting it, but to be fair not properly the best…

But right now all the testing artefacts are Work Item Types – Test Plans, Suites and Cases – so you can query them and, mostly important, you can easily add custom fields, rules and workflows like with the existing WITs.

For example, I might have Test Suites with a specific Feature Area (potentially reused across other Work Item Types) as well as a Planned Release field. I can easily add them to the Test Suite Work Item Type:


The cool stuff is that all of these are now queryable!


…and obviously, pinnable to the team’s home page:


That’s why it is way easier for testers now to access and share relevant information.