Thursday, November 12, 2015

JDeveloper and TFS

Oracle developers should be well versed with JDeveloper.
On the SQL side of things, Oracle actually has a plugin available for Visual Studio "Oracle Developer Tools for Visual Studio" giving you a very similar experience to the SQL Server Data Tools.
JDeveloper on the other has is "a freeware IDE supplied by Oracle Corporation. It offers features for development in Java, XML, SQL and PL/SQL, HTML, JavaScript, BPEL and PHP".

This should not stop you from using it with TFS though…
The only thing that intrigues me is the use of workspaces to establish the connection as apposed to creating a connection directly to TFS.

Enable the plugin:

  1. 1) In JDeveloper, go to the extension management page by selecting Help->Check for Updatesclip_image002
  2. Click Next on the sources viewclip_image004
  3. Wait for the extension to load and then type in “Team System” in the search box. This should highlight the Team System extension.
    Select it and click next.clip_image006
  4. Wait for it to download and install, you will probably have to restart JDeveloper.clip_image008
  5. Create a workspace either using Visual Studio or via command line :
  6. Connect to Team System ( Team->Connect to Team System). It may seem that nothing has happened, but go to the next step…clip_image010
  7. Select the workspace created in step 5 (Team -> Team System->Set Workspace and then select the workspace from the list presented):clip_image011
  8. When you open your applications, you should be able to add, check out etc. you files from TFS: by right clicking any files and selecting “Versioning”clip_image012
  9. You can preview the pending changes from Pending Changes (Team-Team System -> Pending Changes) pane.

TFS is no longer "just" a Microsoft / .Net tool… To prove it, have a look at

Monday, November 9, 2015

Multiple TFS_Configuration databases on a single SQL instance

I have been doing a number of upgrades over the last couple of months and have found that doing a migration to a test/dev environment is a good way to gauge the downtime needed to perform an upgrade on the TFS Collection databases.

This works well if you have a spare set of servers / VM's lying around and you are able to do a full migration. I have been in a situation where a new application tier was not much of a problem, but they had an enterprise SQL server setup that we "had to" use.
Even though the "duplicating" of the collection databases is no problem at all, the tfs_configuration database is a different story.

The options are:

  1. Install a temporary SQL server on the application tier and simply use that for the tfs_config database or
  2. Duplicate the tfs_config and then either "point" tfs to the instance in question or select the correct database during (re)configuration

To perform option 2,  simply create a backup of the tfs_configuration database and restore under a different name (on the same server). When you perform an upgrade or (re)configure the TFS application tier you have the option to select the "correct" config database:


If TFS is already configured and you want to change the database after the fact you can follow these steps:

  1. Open up command prompt (run-as admin)
  2. Go to the TFS tools directory (for 2015 the default is C:\Program Files\Microsoft Team Foundation Server 14.0\Tools )
  3. Put TFS to "sleep" : TfsServiceControl.exe quiesce
  4. Backup and restore the config database to the new name
  5. Re-register the database : tfsconfig.exe registerdb /sqlInstance:<<sql-server>> /databaseName:<<new config db name>>
  6. Finally, wake TFS up : TfsServiceControl.exe unquiesce

That should have TFS pointing to the new config database, meaning you can have multiple TFS instances using different configuration database hosted on the same SQL server.

Need help upgrading ? : give us a shout

Wednesday, November 4, 2015

ALM Days Event : TFS 2015 - Open for all!?

I can hardly believe we are heading towards the end of the year.
With this brings the time for our final event this year on the 19th of November.

This time we are going to have a look at how TFS is opening up to everyone/everything around it, both in terms of functionality and flexibility.
We will briefly explore how TFS is opening up its doors to embrace extensibility and 3rd party systems, platforms and languages a like.
We will then delve into how we can manage technical debt with TFS and SonarQube.
If time permits, we will see some of the new features (yes even more) in the pipeline (TFS 2015 Update 1 is already in RC and there are some really cool features bundled in this update!).

Register on Eventbrite

Hope to see you all there !

Presented by Team Foundation Consulting
Thanks to Microsoft for sponsoring the venue.

Wednesday, October 14, 2015

TFS 2015 Update 1 RC

In case you have not noticed RC 1 for the first update to on-premise TFS 2015 is in release candidate.

Amongst others, my favourite new bits are:

  1. Dashboards
  2. Card colouring


Need help upgrading ? : give us a shout

Monday, October 5, 2015

ALM Byte Sized Session: Database as source wrap-up

I must admit, it was a very interesting session we had on managing databases last week.

Thank you again to Riaan and Roelof from Capfin, who took the time to show us what they have achieved, what they are using and where their problems are.

Some interesting question were posed and here is some feedback on the questions that we did not have a hope of answering on the spot:

Q) Is there any way to use something like Application Insights to trace database code?
A) As far as I can see not much to trace the code in a stored procedure or function. What is possible is something called "Dependency Tracker" that will track how long these calls to external systems (services calls, database calls etc.) take.

Q) How can we show Code Coverage in the new SonarQube C# plugin?
A) It seems you simply have to run the code coverage tool of choice and then import the code coverage result file as part of the runner settings. See this for more detail

Q) What is the table count limit in SQL?
A) Some useless information of the day: The sum of the number of objects (including objects such as tables, views, stored procedures, user-defined functions, triggers, rules, defaults, and constraints) in a database cannot exceed 2,147,483,647. (Cutting it close there Riaan Winking smile )

I hope everyone enjoyed it as much as I did, and hope to see you at the next and final session for the year where we will look at technical debt analysis and some new extensibility features in TFS 2015

Thursday, August 20, 2015

ALM days 2015 - Byte sized sessions : Database as source

I often see that the database does not get the love from developers that they give their code. One big topic is always around the tooling and how expensive some of the database management tools are.

Well this session will hopefully give you some insight into the "free" tools that are available and built into the Visual Studio ALM stack.

Interested in how to manage database schemas / source and to discuss some of the scars that one of my client is in the process of picking up?

Our next session is on 17th of September 2015 at the Microsoft Offices in Pinelands. Feel free to register here : 
(and invite anyone you think may be interested!)

Edit: We apologise, but Microsoft has scheduled Dev Days Cape Town on the 17th as well. Due to this conflict we a re-scheduling to the 1st of October 2015. We apologise for any inconvenience that this may cause.

Thank you to Microsoft for sponsoring the venue for this session.

Friday, August 7, 2015

TFS 2015 Finally released!

After waiting what seems like forever, TFS 2015 has finally been released after Brian Harry decided to hold back and get some more testing done.

This time it seems to be the real thing Smile :

I've had some people ask me if they should upgrade or wait a while to have all the "kinks" worked out. My answer is twofold:

  1. Evaluate the release first and make sure that there is value to be had out of the upgrade
  2. Secondly, I would not worry toooo much about encountering any "kinks". TFS is pretty much production tested in VSO so there is not much of a chance that you will encounter any significant issues

If it makes sense for you to upgrade, by all means do (of course taking necessary precautions as you would in any upgrade situation!).

That said, it is always a good idea to keep up to date with updates and upgrades. This will make future updates less cumbersome and quicker, as well as keep you in the support band (TFS 2010 is not supported anymore and Visual Source Safe should not exist anymore!! (even though the tragic truth is I'm still doing the odd VSS migration Sad smile ))

It should be noted that this will probably be a longer update/upgrade than most. There are some significant database changes due to the project rename (finally!) capability that was added. In most small TSF instances this will not be much of an issue, but I have dealt with some large instances that needed careful planning! Luckily there are ways and means to make it a bit easier.

Need help upgrading ? : give us a shout

Wednesday, July 1, 2015

Visual Studio 2015 RTM on July 20th

woohoo.. finally the RTM date for Team Foundation Server 2015 and Visual Studio 2015 has been made public…

Edit: Visual Studio will be released, but Brian has decided that quality is more important than timelines.. So we will have to wait a bit longer for TFS 2015 to land, but be assured the quality will be right up there Smile

Need help upgrading ? : give us a shout

Wednesday, May 6, 2015

Installing and configuring TFS 2015 on-premise xplat build agent

One of the things that really got me exited about TFS 2015 was the cross platform build capability, and that was the first thing that I started to play with as soon as I got hold of the RC.

Interestingly enough, in VSO it is fairly easy to setup when you have the "alternate credentials" on VSO, but, as I was to discover, there are a few more things that you need to do before you can get it working on-prem.

So with my TFS server and newly installed Ubuntu box ready, I started the xplat (pronounced "cross plat(form)" if you were wondering) configuration. The install was fairly straight forward as per the steps indicated. Then came the configuration.

1) Authentication
The first thing the vsoagent configuration asks for is an account to run the xplat agent under. Linux does not play well in an Active Directory environment, and I have spent waaayy to much of my life trying to get linux working on AD. This hinted towards authentication problems…
But there is a Solution
VSO has the concept of alternate credentials, which is basically a "Basic Authentication" mechanism. What we need to do on-prem is to enable this type of behaviour.

  1. Log onto your TFS Server and install Basic auth on IIS 
  2. Go to the TFS application in IIS (Sites\Team Foundation Server\tfs) and enable basic auth
  3. Edit and set the domain and realm to the domain used for authentication

Basic Authentication

2) Security
Once you have the authentication mechanisms setup you need to pick the account that the agent is going to run under and assign the correct rights in TFS and in the build pool. To set the rights for the build pool you need to

  1. Navigate to TFS server web access admin screen (http://<<server>>:8080/tfs/_admin)
  2. Go to the "Agent Pools" tab and either create a new pool or select the default pool
  3. Then assign the account that the agent is going to run under into the "Agent Pool Service Account"

Assign Pool Rights

Not doing this may give you a "Failed Request: Forbidden (403)" error when you try and run the agent

3) Boot her up…
Finally you need to "boot her up". If you have followed the steps outlined here, you should be able to run "node vsoagent" in the agent folder of the newly "installed" agent and you should see something like this beauty..
Agent Config

and in TFS :Active Agent in TFS

and "thar she blows"..


Please note that it… .. use at own risk Disappointed smile

Thursday, April 30, 2015

TFS 2015 RC & VS 2015 RC announcements at //BUILD/

As expected there is a bunch of stuff being announced at //BUILD/.

Catch some of the highlights of TFS & VS 2015 from Brian's post and for a more comprehensive list of changes and features go here

Time to play Smile 

Thursday, April 9, 2015

Agile : Failing is a good thing!

I've had this discussion a couple of times over the last number of years, and people tend to not believe me when I say that in the Agile world, we want to fail!
For emphasis I will repeat that : In the Agile world we want to fail

Let that sink in a bit…

OK, now that you think I am full of it and must not have a clue as to what I'm speaking about, lets continue.

Waterfall or Structured methodologies / processes
Let's take the example of a waterfall approach. We analyse the work, get to development and finally deliver the functionality. The only problem is that this could take anywhere from months to years to get the first working software out there.. And now the customer or client can look at it and decide that this is not what they wanted in the first place or the business has changed making it irrelevant.

Here are some very interesting numbers on failing software...
The Standish group released some stats last year stating that "Only 9% of projects in large companies were successful." and that "The most projects, 37.1%, were impaired and subsequently cancelled (Resolution Type 3) in medium companies, compared to 29.5% in large companies and 21.6% in small companies."

With this high rate of failure, how can it possibly be good? Well it is not! Failure is never good, but it is inevitable. What we do however strive for is to mitigate the losses that are incurred due to the failure.
How do we do this?

Fail fast fail often…

Agile methodologies / processes
In contrast to the structured "long running" processed described above, in agile we get working software into the hands of customers, business or clients as soon as possible. They can then interrogate it and communicate where the problems (if any) are and what needs to be done differently or how to fix it. We can then"pivot" to fix the issues, change the focus or scrap unnecessary functionality to continue delivering business value.
The difference here is that if we do "fail", we lose an iteration's worth of work, which should be 2 - 3 weeks. Compare this to the months or years that a structured process could take...

Another difference is that we can then learn from the mistake, make an adjustment and continue delivering value. In structured processes the monolith has been developed and you may very well be too far down the path to make the required changes or fix the issues.

In a nutshell:

Failure is not good, but it is inevitable. Things are changing too rapidly for us to start with a plan and be able to deliver relevant software months/years later.

We need to deliver small chunks of work that can be interrogated and evaluated, gather that feedback and communication and adjust what and how we do things to mitigate the risk and exposure of the failures or losses!

Wednesday, March 18, 2015

End of TFS 2010 Mainstream Support

Wow, time flies. I can remember going to the launch and being really exited about the "major" changes that TFS 2010 brought with it.

And now, it is at the end of its mainstream support

Looking back, it is amazing how much has changed since TFS 2010 to TFS 2013 and even what is coming in TFS 2015.

Here is to some exiting times!

BTW: if you are considering upgrading to maintain support, feel free to give us a shout.

Monday, March 9, 2015

ALM days 2015 - Byte sized sessions : 11 June 2015

The first of 4 ALM sessions planned for Cape Town will take place on 19 March 2015* 11 June 2015 at the Microsoft Office in Pinelands.
Session topics:
What’s new in TFS ALM
We look at what has happened in the world of TFS in the last year. The new bits and pieces and some of the licensing changes that came into play making TFS much more affordable and accessible.

Real World Session: Let’s talk Release Management

MS Release Management is a great tool for pushing software into different environments. We hear some real world experiences on how RM can be used to move issues into production very quickly or alternatively leverage it to make your life a lot easier.
Register to join us.
Thank you to Microsoft for sponsoring the venue for this session.

*Note: Due to unforeseen circumstances we have had to re-schedule. We are looking forward to seeing you on the new date!