I recently had an interesting discussion with Giles Davies, Giles is from Visual Studio UK Team @VisualStudioUK. The discussion was about group based projects and how academics and students could use technology to assist them in this task.
So I asked Giles to write a short summary of what he believes is best tool for group based projects Team Foundation Services.
So wouldn’t it be good if you could use an integrated team environment for your development projects, and you didn’t need to set anything up or have any connectivity other than the internet?
Well, that’s exactly what Team Foundation Service (TFS) provides and I want to set out the reasons why I think it could really help groups of students to work together on software development projects.
Before I start on the reasons, a quick background on what it is. Team Foundation Service is the Azure hosted version of Team Foundation Server, providing an Application Lifecycle Management (ALM) solution for software development teams. Marketing speak aside, that means that you get integrated version control, requirements and bug tracking, agile tools, a build engine and more.
So, why do I think you should be looking at Team Foundation Service?
Simply go to http://tfs.visualstudio.com and sign up for an account. There’s no server or server install because that’s all being provisioned in the cloud with Azure for you. It’s quick and painless and there are plenty of tutorials.
If your team consists of 5 people or less, or you have MSDN you’ll never need to pay for TFS. In fact, at the moment, any number of people can use it for free, but the licencing will be put in place sometime this year.
No VPN, nothing fancy, just an internet connection. So your team can all contribute and collaborate from anywhere that you’ve got a connection (home, the pub, the train, maybe even the faculty J ).
To authenticate you just need a Microsoft account (what used to be called a Live Id, e.g. a Hotmail address). Not got one? Create one for free.
What’s the most important tool for a software development team? Version control. What does TFS give you? A choice of either Team Foundation Version Control (TFVC) or Git, so if you want to work in a completely distributed way with local repositories, go for Git, otherwise choose TFVC.
It doesn’t just have to be source code, and it doesn’t have to be “Microsoft” source code, so you can version control artwork, documents and other artefacts as well.
I won’t go into the choice in detail, but if you want to know more I ran through why you might choose which version control option here.
When you’re working on your project, in your team, where do you record ideas? Where do you assign tasks within the group? How do you know what each person is working on and how much work is left to do? Where do you record bugs? How you manage your project using Scrum or Kanban? I think you know where I’m going with this – all this, and more, is provided by TFS, including inviting new people to the project, Product Backlogs, Sprint Backlogs, Task boards, Capacity Planning, Burndowns, Velocity, Kanban and collaborating in Team Rooms.
No more scribbling something down in a file, or on paper, or having stale data in an email. Your group can work remotely, at different times of the day, but you’re still all looking at THE current set of information for your project. You have a great idea at 3am – add it to the Product Backlog.
Build your code either on a schedule or continuously. You can build it locally on a build machine, but TFS also includes hosted build servers in Azure, so you don’t need to find a local machine if you don’t need to. Include unit tests in your build to drive, and demonstrate, quality in your project. More information here.
Don’t forget to test your code J Define a test plan, set up test cases, execute tests and even use the cloud based load testing with Team Foundation Service.
Are you coding using C#, VB .NET, C++, F#? Carry on using Visual Studio (and don’t forget that students can get Visual Studio Professional for free via DreamSpark.
Are you coding using Java or other languages in Eclipse? Carry on.
Are you developing iOS applications with XCode? Guess what, XCode’s supported too.
TFS is used in a large number of organisations, of all sizes, all over the world. You’ll be using an environment that a lot of professional development teams use and gain an understanding into how, and with what tools, software development teams work together.
The UK Microsoft Visual Studio team, covering Agile, ALM, Quality, TFS and Visual Studio and have a great blog at http://blogs.msdn.com/VisualStudioUK