Wednesday, February 10, 2016

Intro to VS Team Services Extensions

Over the last couple of months I have been quite busy with various VSTS extension as part of the ALM Rangers.
You can see some of the extensions that I have developed here and here, and I am currently involved with at least 3 others.

As a quick guidance we decided to do what we call a brownbag session (informal, bring your bagged lunch and listen in type of session) to try and get more of the rangers involved and up to speed.
The session was published on channel 9, so if you are interested in getting up to speed on creating your own extensions, feel free to give it a listen..

Feedback is always welcome.

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 :
    https://msdn.microsoft.com/en-us/library/ms181383%28v=vs.120%29.aspx
  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 http://java.visualstudio.com.

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:

image

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

Yours?

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  http://bit.ly/almdays 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 : http://bit.ly/almdaysSept15 
(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 : http://blogs.msdn.com/b/bharry/archive/2015/08/06/team-foundation-server-2015-final-release.aspx

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…

http://blogs.msdn.com/b/somasegar/archive/2015/06/29/save-the-date-visual-studio-2015-rtm-on-july-20th.aspx

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"..

image

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!

Thursday, November 13, 2014

TFS 2013 Update 4 finally released

For those of you who do not know, Microsoft released TFS 2013 update 4 with their Connect(); event yesterday/last night.

Some of the really cool stuff that I have been waiting for is the introduction of the Stakeholder licensing and Trend charts.

They also gave us a sneak peak of what is in the pipeline, and I for one am once again getting really excited.

One thing that caught my eye was some vNext features, for example the new build infrastructure that is going to be introduced. YES the build agent is finally going cross platform…
As per Brian Harry's post:

Sneak peek – Updated build service

I (Brian Harry) showed a preview of a major update to the VS Online/TFS build service that we’ve been working on.  We believe it will address a large portion of the suggestions to improve it that we’ve received.  Improvements include:

  • A much simpler customization experience that doesn’t require XAML/Workflow – just a simple sequence of tasks to execute.
  • A real time build output window to easily track the progress on your build
  • Build definition versioning/auditing so you can know who changed your build definition, what changes they made and why.
  • A web based editing/administration experience
  • The ability to share build agents across projects and collections, making shared build pools far more viable.
  • A cross platform build agent so that you can automate builds for Mac and Linux too (or even builds than span a PC, Mac and Linux).

See more exiting new from Brian's post.

Aaarrgghh; the wait…

Wednesday, October 29, 2014

4 Years of TFS and ALM…

In August 2014 Team Foundation Consulting celebrated its 4th anniversary. As the only consultancy in SA focussed solely on ALM it certainly puts us in a unique position as we really service a very specific target market.

VS_Progession

I will be the first to admit that when it all started in 2010, TFS was not as well received as it is 4 years on. Clients were apprehensive having consistent problems with Visual Source Safe and then trying to install TFS 2005 and TFS 2008. TFS 2010 slowly had clients coming around as they were finally able to get what they expected out of TFS. TFS 2012 and 2013 have made my job much, much easier.

The value that can be derived from the new versions of TFS are clear. The integration with Git, the value add of Release Management and the adoption of a much shortened release cycle for updates has seen TFS rise to the occasion…and without saying anything I can tell you that some of the VS talks and projects that we are doing at the ALM Rangers makes me really excited to see how TFS will evolve a year or 2 down the line!

To keep it short, I decided to share with you my 4 lists of 4 for our 4th anniversary;

My 4 favourite moments so far…

  1. Starting the ALM days SA event
  2. Seeing the demand for our services growing year on year
  3. This is a personal one but becoming a Visual Studio ALM Ranger has long been an ambition of mine… so glad to be a part of this passionate community since 2013
  4. Presenting at local events…I still love to engage with those who actually use the toolset every day, even if it is just for source control

4 things I did not expect when I started Team Foundation Consulting…

  1. Some of you think I work for Microsoft!
    While I do partner with MS SA to bring you so many ALM events each year, I neither “sell” their products nor am I employed by them. I am what you may call independent and free to share my own thoughts and opinions (as I occasionally tend to do…)
  2. The demand for TFS training in South Africa was unexpected
    I thought consulting would be at the core of the business, but it is our on-site training that has the most demand
  3. After hours and weekend upgrades
    Not all clients can have the luxury of a test environment or being able to shut down production during office hours… upgrades happen after hours – it’s a fact.
  4. TFS is being used in a wide variety of industries…
    You may think that most of my clients are dev houses, but these days it seems everyone has a dev department and many of them are using TFS to manage their work. Apart from the companies who develop solutions, some of the industries I’ve done business with include; mining, banking and financial /insurance provider, law, recycling, health, government, retail systems, call centres, logistics, entertainment, aerospace/arms, food stuffs, FMCG, fashion houses, clothing and textile, vehicle tracking, tourism, online booking systems, education tertiary, credit bureaus…to mention a few.

4 sad ways TFS gets used in large companies…

  1. Installed and being looked at wondering “what now?”…sad Sad smile
  2. 1 team out of 12 …very sad Sad smileSad smile
  3. Source control only …too sad Sad smileSad smileSad smile
  4. As a pilot project that was never completed…crying now…Crying face

4 ways TFS and VS is better now than it ever has been…

  1. Features features features
  2. Usability
  3. Customisability
  4. Reporting Mechanisms (keeping management happy)

Thank you to all my clients for their support throughout the years, I'm excited about the future!

image

Friday, October 10, 2014

Move from GIT to TFS Version Control

I have dealt with a couple of clients recently who were very keen to get into the GIT repo's that are available in TFS 2013. The unfortunate truth is that GIT is not the "same" as the widely used TFS Version Control (TFSVC), SVN, VSS source control systems. Some teams tend to have a problem with this and, after numerous missing changes/files and problems with branching, commit vs pushing and merging issues, will inevitably ask : "How do we go back to what we know?".

There are tools to move from VSS & SVN to TFSVC and there are instructions to move from TFVC to GIT, but what about GIT to TFSVC? Well luckily, for a simple migration, you do not need any commercial or "3rd party" tools.

You do need to get your hand on GIT-TF and optionally the git client, and you are "a" for away.

1) Clone the repository

git clone http://<<servername>>:8080/tfs/<<Project collection>>/<<team project>>/_git/<<repo name>>

2) Replace the repository bindings

git remote rm origin
git tfs configure http://<<servername>>:8080/tfs/<<Project collection>>     $/<<team project>>/<<destination folder path>>

3) Finally check in the changes

git tfs checking --deep

Remember the --deep parameter - this will replay the commits as check-ins in TFS


The only thing you should be aware of here is that the check-ins will happen in chronological order, but the time will reflect the time and date that the check-in is occurring and not when they were committed into the GIT repo.


Tuesday, September 16, 2014

A Day of DevOps, Release Management, Software Quality and Agile Project Requirements Management Recap


Thank you for everyone attending the Microsoft event. There was a huge turnout which led to some interesting discussions.
My session around Work Management using TFS I mentioned some tools. I highly suggest that you go and browse the VS ALM Rangers solutions in general, but the work plug in that I used was Word4TFS.


I have also uploaded the slides here for the couple of people that asked for them:



 

Friday, September 5, 2014

TFS 2013.4 Stakeholder access

The stakeholder access has been mentioned a couple of times here and here by Brian Harry.

If you recall correctly the Limited access group means that if you are in that group, you do not need a CAL to access TFS Web Access. It also meant that you can only see a very scaled down version of web front end which basically  gave you access to the work items that you created.

image

Things have changed.. Now you have power!
Instead of the previous "Limited Access" group, there is now a Stakeholder group.
The allowed features have gone from "View My Work Items" to :

  • View, add, and modify items on the backlog
  • View team home pages and portfolio backlogs
  • View, create, and modify work items such as stories, features, and bugs
  • View, create, and save queries
  • Sign up and receive alerts when changes are made to work items.

Where TFS has  been hiding in the developer realm within corporates, this move IMHO opens up TFS to adoption in big business, where getting everyone on board from a licensing perspective can be a huge expense.

Don't get me wrong, trend charts and pull requests in TFS 2013.4 CTP 1 are big, but you can have all the charts in the world, if the bar to entry for the stakeholder is too high, it is not going to give you the benefit that you need.
I can't wait until the CTP2 when the Stakeholder licensing is suppose to be finalised!