I recently spoke at the Louisville .NET Meetup on July 16, 2015 – what a great audience and a rewarding experience. In my talk (My Happy Place: 10 Reasons I Love Visual Studio Online), I shared why Visual Studio Online continues to be one of the great collaboration platforms for development teams of all types (yeah, that’s right it’s not just for .NET developers). A special thanks and shout-out go to my friend in the front row of the presentation – through a strange series of events he was known to all at the meetup as “Pizza Handshake”, and by the end of the talk #PizzaHandshake was trending on Twitter!
10 Reasons I Love Visual Studio Online
Visual Studio Online is my happy place. When I get to talk to teams about good developer behaviors, agile methodologies, team collaboration, automation, and requirements management, Visual Studio Online is something I always reserve time for.
Reason #1: Backlog Management
Every team has a backlog. I love Visual Studio Online because it provide you with a very simply mechanism for managing a backlog of requirements. You can track project work items (user stories or product backlog items), define acceptance criteria, organize by iteration/sprint, and track the details of work items such as a description, status of development, impediments, and the assigned team member. Adding and re-ordering backlog items is simple with a “quick add” feature and drag and drop re-organization support right in-browser.
Reason #2: Kanban
Backlog management through lists is good. I like lists. Much of what I do is managing lists to ensure I’m doing everything; however, some people need visual cues. That’s where Kanban steps in. Visual Studio Online has a very customize-able Kanban board experience to manage both your product backlog and a sprint backlog. You can customize the columns (name, definition of “done”), add a WIP limit for each column, add swim lanes, and quickly add new work items to the board. Once a work item has been added, you can drag and drop the item between lanes, assign the work item to team members, and update the status. I like to use the sprint kanban and organize my team’s tasks by Person, which allows your to conduct efficient stand ups, helping to drive the tam to keep information up-to-date by quickly interacting with the board while we’re discussing our progress. The user interface is simple and smart.
Reasons #3 & #4: Querying, Charts, and Dashboards
Sometimes, you need more advanced backlog management capabilities, with custom views of your work item data. For example, you may want to view all of the outstanding bugs with “save” within their description. With VSO custom queries, you have the ability to create and share a virtually unlimited number of customized views of your work item data.
After developing and sharing queries, they can be used as the foundation for building charts and graphs of the underlying data.
Once your queries and charts are created, you can pin them to a team project dashboard. The team project dashboard is the default landing page for most project team members. Pinning your customized queries and charts is a great way to share information and metrics about your team’s progress.
Reason #5: Choice of Source Control Providers
What is your source control provider of choice? Git? Team Foundation Version Control (TFVC)? If you’ve answered “yes,” you’re in luck – VSO provides both distributed and centralized version control technologies with Git and TFVC.
Reason #6: Meaningful Collaboration Tools
VSO has a “code” area, where teams can collaborate on source code changesets and checkins without using an IDE. One of my favorite features of the changeset review feature is the ability to make comments that are shared with your team. I like to use this feature when prepping for a code review. After making the comments, I can easily review with the team and create work items linked to the comment and source code right in the browser.
Reason #7: Build vNext!
VSO has recently introduced it’s third revision of build automation. Dubbed Build vNext, the current VSO build process can be fully-configured within your web browser. An extensive collection of build steps can be added to your build definition. Build steps come in a variety of categories including Grunt & Gulp scripts, Ant, CMake, and Android builds, Maven, and classic MSBuild. Batch scripts, PowerShell, Linux shell scripts, and command line executables can be invoked. Cloud load tests, web performance tests, and Visual Studio tests and test agents are also available. Simple deployments to Azure via Azure Website deploy and Azure PowerShell can even be called.
In addition to build steps, an important milestone with VSO build has occurred. In previous versions of VSO (and TFS), builds were executed on build machines via a build controller and build agent. Each Team Project Collection (TPC) required it’s own build controller. for most organizations, this didn’t pose a problem; however, in organizations with hundreds of TPCs (like ours), you would need a build controller for each. The worst part – you could only install one build controller per OS installation. With build vNext, this restriction has been lifted with a new build architecture. Build vNext has ditched the concept of Build Controllers and introduced build queues and agents. I won’t describe how these all work here, but the bottom line is that you can host as many build agents on a single server as you want. To find out more about Build vNext, see https://msdn.microsoft.com/en-us/Library/vs/alm/Build/overview.
Reason #8: REST API
Just in case you felt VSO was too restrictive in how it works (or if you just dislike the user interface), you can build your own through an integration leveraging the REST API (https://www.visualstudio.com/en-us/integrate/api/overview). The REST API allows you to interact with VSO features such as Build, Cloud Load Testing, Code Policies, Git, Projects and Teams, Service Hooks, Shared VSO Services, Team Rooms, Test Management, Agile “Work”, TFVC Version Control, and Work Item Tracking.
Reason #9: Service Hooks
Service hooks is a recent addition to VSO, which allows you to receive pub-sub-like push notifications when events occur within VSO. For example, with Service Hooks, you can subscribe to Build Notifications, Code Checkins, and other events. In addition to the pub-sub notifications, a large number of out-of-the-box interactions with well-known tools exist (Trello, UserVoice, Github, ZenDesk, Slack, Campfire, etc.). With a few simple clicks, you can configure your third-party system to receive and respond to VSO events.
Just in case the out-of-the-box integrations are not sufficient, VSO provides custom integration via Web Hooks, which respond to VSO events by creating an HTTP POST to a web endpoint of your choice. This option provides you with a maximum level of customization.
Reason #10: It’s Free
If you feel the previous 9 reasons don’t give you enough motivation to check out Visual Studio Online, the fact that it’s FREE should turn your head. VSO is 100% FREE for teams of up to 5 individuals, and if you already have MSDN, you’ll always be FREE.
Wrap-up
I hope I’ve given you at least a few reasons to browse over to http://visualstudio.com and check out Visual Studio Online. As always, if you’d like to chat or see how my team is using VSO, don’t hesitate to reach out.
We are using Visual Studio Online with a team of 100+ member. We are maintaining 112 projects there currently. Using rest api, we get project list. Actually I dont find any good location where I can en query. We are getting only 100 projects list, but from Visual Studio Online, I can see 112 projects. Is there any project limitation which rest api can not retrieve after 100 projects? or api version/dll conflict or upgradation needed?
Great question. I suspect the REST API is limiting the data it returns to you. First look at https://www.visualstudio.com/integrate/api/tfs/projects. You may need to make two requests – try adding the $skip=100 parameter to your query string. This may return the additional projects you were expecting. Let me know if this works for you.
thanks for your reply. Adding skip=100 still response 100 project. We are now using team foundation api and it resolves.