Microsoft released Visual Studio 11 Developer Preview along with a whole host of other goodies, like a preview of Windows 8, at the Build Conference on Friday, September 16. When this article was written, it was about a week old. Microsoft would love to have you download it and try it out.
This article is a review of one the components of Visual Studio, ALM - Application Lifecycle Management. Microsoft does a great job of telling you about the details so I'm leaving that up to them. This article is more of a retrospective of what is happening - a step back to look at the big picture.
Visual Studio 11 won't really be released until sometime next year. (Actually, the Developer Preview edition is time bombed and will expire on June 30 of next year.) It's not completely clear that you should rush right out and get it. I can see both sides of this. I discussed my opinions about "new" in connection with the release of Windows 8 recently..
On the other hand ...
-> The improvements are real. (They always are.) If you learn them and use them, you will be able to do things that you couldn't do before and you will be able to do some things you have been doing faster and with less confusion.
-> At some point, you will have to face the choice of dropping out of the race or learning it anyway. VB6 anyone?
-> And I have to admit that the techie in me still likes to try out the new stuff.
"ALM" - Application Lifecycle Management
Oh great! Another TLA! (Three Letter Acronym)
Using the technique of carefully watching what Microsoft management chooses to highlight, ALM is heavily emphasized. Here's how the Microsoft VP over Visual Studio Jason Zander chose to start his keynote address on the second day of the Build conference where VS11 was introduced:
Click Here to display the illustration
ALM has been part of earlier Visual Studio versions and Zander himself has been working on building more support for ALM into Visual Studio for years.
It all reminds me of the "CASE Wars" I was part of way back in the days of mainframes. CASE was "Computer Aided Software Engineering". You don't see that one too much anymore. The idea was that a database of specifications could be turned into design documents and even running code.
Today, we have ALM. According to Microsoft, it consists of ...
- Plan ...
- Design ...
- Write ...
- Build ...
- Test ...
- Deploy ...
Gee! That's exactly what we used to say twenty years ago!
The difference is that the ALM tools you get in Visual Studio promise less and deliver more. Microsoft only promises that ALM will make your programmers far more productive and your code far more bulletproof.
But back in the dawn of the computer age (well ... almost) the company I used to work for actually bought into the idea - with millions in investment and years of effort - that their CASE tool could generate finished code that could be put into production. It's completely clear to me that smart, rich corporations can make really dumb, costly mistakes.
The programmers actually ended up working on the CASE output in a mode that was more like writing assembler since they had no access to what was happening inside the CASE tool. It was an act of sheer will that we were able to finish anything.
Microsoft is doing things much more intelligently than that. Their ALM tools are built around Team Foundation Server, an extension of Visual Studio, and the focus is to find those areas of a programmer's daily activity - the items in Microsoft's list above - where the computer can keep track of the individual threads of the system and coordinate those threads with what other programmers are doing to build the same system. The philosophy is something like, "If you watch every penny, the dollars will take care of themselves."
Microsoft's ALM approach today does not pretend that the computer can write the code instead of a programmer. And it's not the "waterfall" method of the '80's where you could declare the "design" phase finished and move on to the coding phase.
VS11 doesn't break any totally new ground in the support for ALM. What it does is make the features that were already there more functional. For example, test management is a big part of ALM. But in order to use the automated testing tools in VS 2010, you had to have predefined test cases. VS11 now gives you exploratory testing. Basically, you make up your tests as you go along and VS11 records them as test cases for future use.
The emphasis that you find on Team Foundation Server in virtually every piece of Microsoft development software is starting to suggest that Team Foundation Server is the system and Visual Studio is just a tool that supports it.