0

Less of a question, more advice and suggestion to a "where TF do I begin?"

Start environment: VS 2010 Pro, C#, VSS 2005, single developer, multple VSS repositories, limited code re-use

Currently I have (mostly inherited and not had time to change until now) multiple VSS repositories, often with C&P'd utility/tool classes/projects. Documentation is on a network share (I include BRD, UAT test scripts, sql scripts for db builds etc. etc. all as "documentation" for this purpose). There is little or no Unit testing and no CI/ build automation.

I am about to get two new devs and therefore I want to change the environment

Possible End environment: VS 2010 Pro, C#, Java (not sure of IDE yet), 3 developers, documentation under source control, re-used code, (automated) unit testing, CI builds, incemental revision/build numbers

My initial thought is to move to SVN or similar, single repository, single "master" solution, multiple "working" solutions. MSTest (as it's built into VS2010?), CI through CC.Net or TeamCity.

I've read a lot on SO about doing each of these tasks independently e.g. arguments for/against each source control system, arguments for/against adding documentation into source control, but nothing on doing everything at once!

Note: we will still be a small team, so some manual work is allowable, but preferably minimal, and we have no budget, so needs to be free or "free to a small team"!

Does anyone have advice on where to start? What tools to use? How to go anout migrating from VSS? Should I be using a "master" solution or is there a CI tool that can "give the impresison" of this for me? e.g. one place to see if a "utility code" change has broken anything else?

(footnote: I know we still need to write the unit tests!)

Jonathan Leffler
  • 730,956
  • 141
  • 904
  • 1,278
BlueChippy
  • 5,935
  • 16
  • 81
  • 131

3 Answers3

1

A good option for small teams (free up to 5 team members) is Team Foundation Service: https://tfs.visualstudio.com/

Team Foundation Service is a cloud hosted version of Team Foundation Server. It will give you all the stuff you need to run your project such as Source Control, Work Items and Automated builds that you can use for Continuous Integration.

Microsoft released a tool that will migrate your repositories to TFS: Visual Source Safe Upgrade Tool for Team Foundation Server.

I would also advice moving to Visual Studio 2012. It's a really big improvement on VS2010. Since you are a small company you probably can apply for Microsoft BizSpark. That will give you three years of free software, Azure and support. It can really help you getting started.

Regarding your Documentation question, have a look at the SSW Rules for better .NET Projects. Rule 45 mentions how you could store your documentation with your project under source control.

All the other things you mention (Sql scripts, test scripts) should also be under source control. You can add them to a specific folder beneath your solution.

Adding Unit Test to an existing project will be a hassle. Working Effectively with Legacy Code is a book that offers some great advice on how to start. If you have no experience with writing unit tests you should first study the subject or hire an external consultant. In the projects I consult on a I see that people start enthusiastically but stop using unit tests because they run into problems.

Wouter de Kort
  • 39,090
  • 12
  • 84
  • 103
  • Thanks - unfortunately absolutely NO way we can store our code off-site. The company is pretty large - just M/F and not Win/Mac based...yet! – BlueChippy Dec 17 '12 at 08:08
  • What do you mean with M/F? You are already using Visual Studio and SourceSafe, how can you not use Windows? – Wouter de Kort Dec 17 '12 at 08:20
  • lol...what I mean is, I am currently the only Windows dev. There were 2 win devs, but both left before I joined. There are many mainframe (M/F) devs, and a BI team (AIX). I've proved in a year that thereis a massive opportunity for win development (internal web sites especially, but winforms as well) and therefore I'm getting resource...however, because I've been doing everything at breakneck speed I've not had time to examine what I'VE been doing...hence the question on "how to get myself out of this hole in a nice clean way'! – BlueChippy Dec 17 '12 at 08:27
  • Ah ok.. Team Foundation Service is still a viable option. With only three developers, it will still be free. The official prices for larger teams haven't been announced yet, but I'm pretty sure it will be priced reasonable. If you don't want to go to the cloud, the Server option of TFS is a good option. – Wouter de Kort Dec 17 '12 at 08:52
  • If you have VIsual Studio via a MSDN subscription you might be licensed already for TFS... – bryanbcook Dec 18 '12 at 04:29
1

I was you, 2 years ago. We went with SVN + TeamCity and never looked back. SVN is fully free and TC is effectively free*. Both work beautifully with Java and .Net. You can store and integrate your code onsite with as little as one server. If I were doing it today I might consider GitHub, but for a central repo model, SVN is great.

Regarding the transition out of VSS, this is sage advice. I spent a bunch of time manually converting the old VSS repos to SVN and there was zero practical value in keeping the (lousy, spotty) history around in SVN.

*TC is free for unlimited users and up to 20 build configurations. If you hit that wall, then you'll be realizing enough business value to get $MEGACORP to pony up for the full version.

Community
  • 1
  • 1
John Hoerr
  • 7,955
  • 2
  • 30
  • 40
  • Thanks John: Quick question - when I have e.g. MyCo.Utilities project and Test.MyCo.Utilities...where do I place these in SVN? Do they both go into the same Project/Trunk/ structure, or does Test have it's own Project structure? – BlueChippy Dec 27 '12 at 09:21
  • 1
    I keep them together in the same Trunk. This makes it easy to run the tests without having to check out and/or synchronize two trees. It also makes it easy to Branch the tree and changes features/tests in tandem. – John Hoerr Dec 27 '12 at 13:48
0

If you need:

  • To host your own code (not outside)
  • A free solution for up to 15 users
  • Strong branching and merging (which probably you do not need at the very beginning until you're fully unplugged from the VSS matrix ;) )
  • Ability to work distributed...
  • Excellent Visual Studio integration

Why don't you give a try to ww.plasticscm.com?

Disclaimer: I do work for the company... but still... it should be a good option for you! :) We define ourselves as the DVCS for Windows!

pablo
  • 6,392
  • 4
  • 42
  • 62