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!