Visual Studio ALM Q&A: Microsoft's Sean McBreen
With the release of Visual Studio 2010 Ultimate and Team Foundation Server 2010 this spring, Microsoft has made great strides in improving its suite of products designed to streamline the end-to-end process of developing and maintaining software.
Sean McBreen, Microsoft's senior director for Visual Studio and MSDN product management, discussed the new tooling at length in a recent interview for the July cover story, Enabling ALM. Edited portions of that interview are below.
What is Microsoft's definition of application lifecycle management (ALM)?
We focus at one end of the spectrum on our large enterprise customers, where we offer a rich set of features, integration with other backend source code configuration management tools, portfolio management, etc. But our biggest vision at Microsoft is to bring the benefits of ALM to all developers, so we really have tried to democratize [it]. We have been calling it the whole ALM market. We want everyone who is using things like Subversion or Visual SourceSafe even--basic source code and configuration management tools--to get the benefits of ALM. So in this release, we did a huge amount to bring ALM to the masses. We reduced the price. We included TFS in all of our MSDN subscriptions. We have really focused on simplifying the experience as well, so in TFS for instance, we include the basic configuration and that means in 15 minutes you can get going with the entry point of our ALM solution, which is Team Foundation Server.
Software development is intrinsically a hard thing to do and the reason for that is because the economics of software development predicates that you are doing something for the first time. And if you are not doing something for the first time, at least in some way, shape or form, you've probably licensed some software or used some open source package that is out in the market. That is very different from other engineering disciplines. In civil engineering, you build the same building or the same architecture over and over again. In software engineering, we are doing something unique each time. You have an inherent risk factor in software development and a degree of uncertainty. ALM tools are really about driving down the risk of that project and increasing the certainty of your delivery. And for us what that means is that we believe you have to have very integrated teams, a team where the flow of information from team member to team member is totally streamlined so that you get efficiency not only at the individual level but from every member of the team.
A great example of what we've done is we have taken the role of the tester and put them directly in the lifecycle as a first class citizen. Historically, test and development were very separate professions and one of the most common things that you'd hear from developers was, "Well it worked on my machine," and "I can't reproduce the bug that you filed" [to] a tester, and it was a very frustrating workflow that would go between those two roles. In our 2010 release, one of the things we've done is provide a generalist testing tool, which covers the majority of testing. Testing today is done without tool support--they use things like Word and Excel--and we have provided a mechanism where just as a tester walks through the [file] and tests it through the UI, all of the information can be captured into what we call a rich actionable bug and passed onto the developer. That rich actionable bug includes things like the environmental details of the server and client PCs at the time of the bug. It includes a video log of what was going on. It includes screen shots. It includes a script of what the tester did so that it is totally repeatable the next time through and also an option called an IntelliTrace log that is like a time machine to developers. Developers can go back in time to what the tester was doing and actually do a debug of what the application was doing, fast forwarding and rewinding through the bug itself. And last but not least, you can even capture a full server-side environment and attach it to the bug as well.
What are some of the new concepts in Visual Studio 2010 that weren't in 2008?
We've brought additional roles into the project lifecycle and a good example is testers. Also we have brought architects more directly into the lifecycle with new architecture tools that are UML compliant. And the thing that we do there that is different from the competition is those diagrams can be based upon your existing code so the truth is in the code. You can also do things like discovering the architecture of your code by asking our tools to span over an existing code base and diagram it. So it helps with documentation and picking out existing code bases.
The other thing that we've done is we really have expanded out the scope of the offering to smaller teams with things like the basic install of Team Foundation Server and then we've done a huge amount of just enhancements across the whole product line.
What issues were addressed in this version? I've heard that there were issues with installation of Team Foundation Server in the past, for example.
The loudest bit of feedback that we did receive--you nailed one right away--is the fact that Team Foundation Server was pretty hard to install. It took a lot of expertise to get up and going with it and so we put a huge amount of investment into this basic configuration. And literally we present demonstrations, where we have an hour long session and at the beginning of the session, we start installing Team Foundation Server; 15 minutes into the session, it has completed the install. We then set up continuous integration, so you start getting the benefits of Team Foundation Server already and then we migrate a Visual SourceSafe database into TFS and we do all of that in an hour.
And then we always do get a bit of feedback about the IDE but by and large people do still hold true that the Visual Studio development tool is the best one on the market. We have done enhancements like multi-monitor support, which has been incredibly popular with everyone that we talk to; the ability to have a designer on one screen and your code on another screen just really makes you use all the real estate, so we support that in a very great way.
The other feedback we heard was really about things that were missing to make the team very productive. We've made sure that we have made a big investment to bring testers into the lifecycle to reduce that frustration. Another thing we heard was that our architecture tools needed to embrace more of the UML mindset and we needed to provide the most common UML diagrams directly in the product and we have done that. We have included things like class diagrams, sequence diagrams, use case diagrams directly inside the product. But aside from that the feedback on the product has always been pretty good.
Other things we heard is that the .NET Framework needed to get smaller. We did that. So we feel like we listened and hopefully crossed off most of the common customer feedback that we got.
Is Visual Studio Lab Management 2010 still a Release Candidate?
That's right Lab Management is a new server product and we wanted to make sure that it was completely stable and a great experience so it would be one product. We have been working hard with a large number of customers to get all of the feedback we want to release that. I can tell you that we are absolutely on track to release it and you should watch for an announcement from us soon.
How will ALM evolve with composite apps and services and the cloud?
Our view of it is that ALM at its core will remain about the same thing. What I'll tell you is for most vendors ALM has grown up from the creation of a number of best of breed tools--great tools for testers, great tools for project managers, great tools for developers. That is not our philosophy. Our philosophy is that to be successful in lifecycle development you need to have all of those roles working together and you need to streamline the flow of information across all of them. So I sometimes say, there is an impedance mismatch between how they work. Project managers constantly asking dev teams for updates to find out what is going on causing the team to thrash at the worst possible time; developers and testers not working together. Architectures that stay disconnected from the reality of the systems that they are trying to build because of some changes that happen and documentation that doesn't exist on existing systems. Those are the sorts of problems that we have to solve for ALM to really be successful and we are very focused on that.
We think one of the big evolutions, I'm sure you have probably heard of, is lean software engineering. Basically lean engineering revolutionized the way cars were approached. And it was this whole concept that most of the waste in the manufacturing process was between the stages of the process. They'd have these big stockpiles of inventory--in our world that is the backlog of features or tests that have to be gone through--and the whole concept was, I want to streamline the flow of information or the flow of materials between all of the stages of the manufacturing process and that is very much something we hold dear to our hearts.
We also think Agile is clearly becoming more and more popular. We see a lot of teams using it to a great degree of success and at the moment inside of our current release we included first class support for Agile methodologies and we have Excel Agile planning workbooks. But we think that directionally every team needs to get closer together to reduce the waste across the entire team and we think that we can enable that through great tools that embrace Agile methodologies and lean engineering principles.
About the Author
Kathleen Richards is the editor of RedDevNews.com and executive editor of Visual Studio Magazine.