- Google I/O 2013's Coolest Products and Services
- 10 Star Trek Technologies That are Almost Here
- 19 Generations of Computer Programmers
- 25 Must-Have Technologies for SMBs
Page 2 of 6
Skinner and Mendlen are obviously very proud of Microsoft's investments around modeling, pointing to the company's recent membership in the Object Management Group and their work to advance design tools with UML. They aim to take these software engineering efforts further. "Tools for architects have traditionally been designed for that population," says Mendlen, "But they could be useful across the lifecycle. One place we think that's very valuable is for developers."
So in this upcoming Visual Studio Team System, an "architecture explorer" tool will let the user interrogate the code base and graphically display its architecture, including the relationships in the code and their dependencies. Microsoft hopes this feature will help developers see what their code really looks like (not just what they imagined). While this feature will obviously be valuable for iterative development and debugging purposes, it also will help a developer who inherits a project and needs to figure out its design. If it works as promised, it might help save a developer a pizza-and-Jolt fueled weekend spent wondering, "What the heck is this F variable supposed to be doing?"
"I love the idea of the architecture map for inherited projects that are not well-documented," comments Julia Lerman, .Net Mentor and author of O'Reilly's Programming Entity Framework ."Or better yet, when I return to an old project that I wrote for my own personal use and didn't bother to document very well."
Cory Foy, a development manager from Tampa, is a little less thrilled by the promised architectural validation features. "This has been somewhat available in the Team Edition for Architects," he says, but "I've known very few teams who have bothered," Foy says. "The concept is wonderful sounding, especially to a CIO or development manager: Draw a diagram of your data center, of your deployment, of your application and of your architecture-and you can magically 'validate' that everything will work when deployed," he explains.
In practice, however, even when teams go through all of that effort, someone has to maintain all of those diagrams, Foy says. "They typically fall out of sync rather quickly, and just as quickly get abandoned. Until there are ways of automatically keeping those things in sync (datacenter machines report out what they have, applications report what they need based on dependencies, deployment diagrams are generated from build scripts, and architectures are created based on code), and all of this is automated as part of the build/continuous integration process) I predict this either not being well adopted, or being a hindrance."
The last release of Visual Studio had support for a continuous build process. Inspired in part by Agile methodologies, says Mendlen, "We're taking it to the next level." The build process will have a customizable workflow engine, ensuring that, say, when a developer checks in her code, it goes to the architect. The build process can be tuned for the specific problem domain, Mendlen says.