So, you've been reading all the great stuff out there about Application Lifecycle Management (ALM) & Team Foundation Server (TFS) and how this can streamline your software development projects, ensure greater quality, and provide more value to your customers faster. But, how do you get started without making a huge investment in hardware and software not to mention the time and effort just to get everything setup? Earlier this month Microsoft announced the general availability of Visual Studio Online (VSO). Now you can take Microsoft's ALM offerings for a spin and all you need to do is sign up for a Visual Studio Online account at http://www.visualstudio.com, create your first Team Project, invite your friends and start working on your team project, etc.…all for free!
When you create a VSO account you specify the URL that will be used as the host for all of your projects, such as https://johndoe.visualstudio.com or https://mycompany.visualstudio.com. Once that is established you can create one or more Team Projects. You have a couple of options when you create your team projects related to source control and process templates. For source control you can choose either Team Foundation Version Control or Git depending on which type of source control best meets your needs. Make no doubt about it, Git is a now a first class citizen in the Visual Studio/TFS family. If your team is a big fan of Git you can now use Git with VSO for a more complete ALM experience. You also have the option of choosing the process template that best supports your project tracking style, (Scrum, MSF for Agile or MSF for CMMI).
Without procuring any hardware or going through an involved installation and configuration process you can create a VSO account, setup a Team Project, deploy a web site to Azure via a Continuous Integration build and take advantage of all of the ALM capabilities of Visual Studio and Team Foundation Server. What does this really mean? Here are the key features and capabilities. (Spoiler alert - Make sure you keep reading until you get to the automated builds and deployments section to see where this becomes more than just a TFS Team Project in the cloud).
Create, manage and track your project plans in VSO. All of your team members will be able to see and contribute to the project plan, such as providing status updates on the tasks assigned to them. As a project manager you can focus on the overall plan rather than spending a lot of time updating a local Excel file or Microsoft Project plan with the status updates that your team members gave you in a status meeting or sent you via email. You can see your (1) Requirements/Product Backlog Items, (2) Tasks and (3) Bugs at a glance.
You can also use Kanban boards and Task boards to visualize your project plan.
TFS provides complete traceability across requirements, tasks, source code changes, test case creation & execution and bug tracking. The items in the project plan will be linked to each other and to other things such as source code check-ins.
There are multiple ways to collaborate. All team members can add and update requirements, tasks, test cases, bugs, etc. as noted above.
You can customize the home page and team specific pages to include charts that you create, tiles that show recent build activity or recent source code check-ins and more. Use this to keep your team up to date on the things that really matter for your team project.
If you have an eligible MSDN subscription or a Visual Studio Online Advanced account you can participate in a team room. In a team room you can get alerts for (1) source code check-ins (2) automated build results (3) updates to product backlog items, tasks, bugs and other work items. You can also use the team room as a chat room (4). You could use e-mail alerts for these things, but a team room keeps all of this information in the context of your team project so that you don't have to sort through all of your other email to see when a specific item changed. Also, you can easily go back in time (5) to see what happened on the project yesterday while you were out playing golf with that big customer.
Store versioned copies of your source code in VSO. There is full support for branching, merging, changeset tracking, etc. When you check-in or commit your code you can associate the work to Tasks or bugs in the project plan, (see the reference to "12 – Bad URL related…" in the "Changeset Details" panel below). In the example below we can see the history for the "Dev" branch and by tracking Changeset 20, which is the fix for bug #12, we can see that the fix has also been merged into the "Main" branch.
If you have an eligible MSDN subscription you can create and run test plans, test suites and test cases in Team Web Access, or you can easily launch Microsoft Test Manager (MTM) to manage and run test cases. When you launch MTM from Team Web Access starts in the context of your team project, no need to explicitly connect to your VSO Team Project. Here is a shot of the web based test runner in action:
Part of the awesomeness of using these tools to create and execute test cases is the rich information that automatically gets inserted into any bugs that you create while executing test cases. Notice how the steps from the test case above get automatically transferred to the "STEPS TO REPRODUCE" field on the bug that got created when I pressed the "Create Bug" button in the test runner.
Ok, so far there have not been any real surprises if you are familiar with TFS, but remember, I got this up and running in a very short time and with zero infrastructure setup. Now things really begin to get powerful. When you couple VSO with Microsoft Azure for your web sites, you can have your web sites automatically deployed to Azure. Also, you don't need to set up and manage any build machines, you can use the hosted build services that are a part of VSO.
For my demo I created an empty web site on Azure and then told Azure to deploy this web site from source control. This gave me a way to connect my VSO team project with Azure. When that was complete a new build definition was automatically added to my VSO team project based on the "TfvcContinuousDeploymentTemplate.12.xaml" build process template (1). The hard work of connecting the build definition to my Azure subscription was automatically done for me(2)! All I had to do was put in the specifics of what projects(s) to build, whether this was to be a Continuous Integration Build, Scheduled Build, Manual Build, etc. and tweaking other build options if desired.
I choose to make this a Continuous Integration build. Every time I merge my changes into the "Main" branch a build gets kicked off and if it is successful, my web site gets automatically deployed to Azure! I didn't have to mess with downloading any publish profiles, writing any PowerShell scripts or anything! I simply told Azure about my VSO project.
Now that this is part of Azure I can also tap into things like Application Insights and Cloud Load Testing Service. Here is a snapshot of the Azure dashboard for my web site. Just look at all of the information about my web site that can be made available.
There are some differences between VSO and the on premises edition of TFS. For example, CodeLens support, customizing TFS, (e.g. adding your own fields or states to the Bug work item type), integration with SQL Server Reporting Services (SSRS) and SharePoint to create team project dashboards that show rich reports generated by SSRS are only available in the on premises edition of TFS. However, Application Insights and automatic upgrades to the latest version of TFS are only available on VSO.
In a very short time and with no infrastructure setup I was able to create a team project to track all of my work, store my source code, create an automated build that deploys my web site automatically to Azure, create and run test cases, track bugs and share all of this with selected team members.
Try this out for yourself! Once you've fallen in love with VSO and decide that you want to use this all of the time for your software development projects you can decide what pricing model fits best for you and your team. If you are a team has five members or less, you can use VSO for free, (some of the things shown above, such as team rooms and test case management are not part of all pricing models). If you already have Microsoft Developer Network (MSDN) licenses because you use Visual Studio as your IDE and/or Microsoft Test Manager for creating and executing test plans, etc., then you can host your Team Projects on VSO for free. Otherwise, you can take advantage of the VSO subscription based options outlined on the VSO overview page.
For more information checkout http://www.visualstudio.com, http://www.visualstudio.com/get-started/overview-of-get-started-tasks-vs, and http://azure.microsoft.com/en-us/. Or contact us at info@incyclesoftware.com for more information on how InCycle Software can help you get stared with Visual Studio Online and Microsoft Azure. We can also help you migrate your existing ALM process and artifacts to Visual Studio Online and Microsoft Azure.
Visual Studio is becoming so popular that I have even seen VSOr! (Visual Studio Onion rings)