I was sitting through the developer key note at TechEd on Tuesday morning and was actually blown away by the breadth of features that Microsoft is trying to address with Visual Studio Team Services. Although it’s too early to tell what the true scope of all the features is, it appears that this product is like an ‘Über’ version of Visual Studio that attempts to integrate the Process of software development. By process I’m talking about the ‘entire’ process of development as opposed to just the actual code portion of development which we are used to with Visual Studio.
Team Services provides integration with the full process including Project Management, Platform Architecture, Software Design, Development and Testing all integrated into the Visual Studio environment. Although this sounds very high strung, especially coming from Microsoft who have never really delivered on some of the process and architect level tools individually up until apparently now. However, not knowing more about how any of these integrated pieces will work, I can tell you that the concept is an extremely exciting one.
For me, I’ve always been somewhat short on the Process end. Yes I do spend time at the design level for my internal projects, but if I’m honest about it I’ve always cut corners with a full blown design, testing environment. I think the main reason is that using the tools is not particularly intuitive or integrated into the rest of the software development process. For me (especially on the projects I built internally) to be using these sort of tools they have to not get in the way of the development process itself. Obviously the rules are different for other types of projects that are larger in scope where cutting corners is not an option <g>, but the net result is the same: Integrating the high level tools directly into the day to day development work flow are key to get developers using these tools efficiently.
From the development end this means that the design tools should be able to understand or in someway cooperate with the code environment. Going from Design to Code and vice versa should be easy and each of these should be able to reflect changes in the other. Team Services seems to address this particular need quite nicely with integrated design tools and code visualization tools that make it much easier to deal with complicated pieces of code.
From a developer’s perspective Integration of Source Control, Project Status and Bug Tracking is also something that is vital and can result in much greater productivity for developers in team environments. Team Services uses a Sharepoint (or Sharepoint like) environment to let everybody in a project easily share status about project items and the overall state of the relevant pieces of code.
Built in Unit Testing, coverage and profiling as well as integrated load testing tools allow you to integrate common tasks that have been in the past have been left until the end of the project directly into the development process. In fact, rules can be set up to require testing to occur before global checkins so that these tasks are enforced throughout the project.
Ontop of all that sits project management that allows a Project Manager to more easily see the current status of a project, see issues and make intelligent decisions on assignment of work items.
I find all of this very exciting, but of course it’s hard to tell how well all of this functionality will actually work. Individually a lot of these pieces have never been publically made available from Microsoft so the jury is still out on functionality and just as important usability of all of these components that have been shown.
I also worry about the breadth of the functionality that was shown. A lot of the technology behind these tools is brand new V 1.0 for Microsoft. Several sources have mentioned that these tools are borne out of what Microsoft uses internally to manage their own projects, so there’s some hope that there’s been some serious pounding on these tools. But even if that’s the case it’s still a huge undertaking to mount all of this functionality on top of a brand new platform (Whidbey). There’s so much new in this next wave that it seems immensely difficult to pull all of these diverse pieces together into this new monstrous environment.
I really hope that Microsoft can pull this of however, because what was shown certainly shows some very innovative thinking in collaborative development and putting Process very prominent into the software development. It might just be the kick in the ass that I myself need to use better Process in my own development.