In-Depth

.NET Survival Guide: Application Lifecycle Development

BACK TO .NET SURVIVAL GUIDE

Application Lifecycle Development
Application Lifecycle Management (ALM) is a critical measure of a team's maturity and development effectiveness. Even teams of only two and three can benefit from a good ALM process and the tools to support it. Fortunately, modern day development has some excellent tooling for all phases of ALM -- both on the developer workstation side and on the server side -- enabling data sharing between team members.

Tool Box

  • Team Foundation Server
  • Visual Studio 2010

Not surprisingly, Microsoft offers excellent solutions at both locations.

On the workstation, Microsoft leads the tooling with a well-established, best-of-breed IDE in Visual Studio 2010. It not only includes a fantastic code editor, but also a strong suite of additional functionality (how much functionality varies depending on which Visual Studio SKU you purchase). Additions include unit testing, code coverage, coded UI testing, static code analysis, code metrics, performance profiling, architecture design tools and IntelliTrace.

With such a plethora of excellent tools to increase the quality, perhaps the most challenging part is having the discipline -- especially with unit testing -- to use them all. In spite of the vast list, there's still room to consider additional third-party tooling such as TypeMock, NUnit, NDepends, Resharper, CodeRush, Reflector and other solutions.

Team Foundation Server (TFS) is well-established in the mainstream when it comes to sharing and collaborating with other team members. It includes several main pillars: source-code control, project tracking, automated build, collaboration software, reporting and ALM guidance (Capability Maturity Model Integration [CMMI], Agile and Scum are available via download).

As a group, TFS has one of the best offerings because of the integration between each of the pillars. For example, when checking in code you can associate a requirement (work item) with a set of code changes (changeset), triggering an automated build to verify the work and even reject the check (through gated check-in) if the build doesn't succeed. Collaboration is supported through Microsoft SharePoint, which includes support for a knowledge base in the form of a wiki and provides a launching pad to access the SQL Server reporting system, allowing team members to review ALM quality for the team project. In summary, TFS offers a best-of-breed solution for the full suite of functionality with perhaps only one contender -- a product from Atlassian Pty Ltd. -- that matches the breadth of what's available in TFS.

Even if a development team only needs a portion of the TFS suite, the individual pillars certainly have a lot to offer. However, teams willing to invest the time and energy in setup, configuration and integration may find they prefer to select from the plethora of alternative applications in the same space:

  • Source-code control: Mercurial, GIT, Subversion
  • Project tracking: Bugzilla, TFS, Mantis, JetBrains
  • Collaboration: ScrewTurn Wiki, PHP Wiki, Cloud
  • Build server: TeamCity, Cruise or CruiseControl

Most of these turnkey solutions have established mainstream status in the industry.

In Summary
Visual Studio 2010 and TFS offer a formidable array of tools and capabilities to support team-based development, with third-party tooling providing valuable ways to fill gaps.

About the Author

Mark Michaelis (http://IntelliTect.com/Mark) is the founder of IntelliTect and serves as the Chief Technical Architect and Trainer. Since 1996, he has been a Microsoft MVP for C#, Visual Studio Team System, and the Windows SDK and in 2007 he was recognized as a Microsoft Regional Director. He also serves on several Microsoft software design review teams, including C#, the Connected Systems Division, and VSTS. Mark speaks at developer conferences and has written numerous articles and books - Essential C# 5.0 is his most recent. Mark holds a Bachelor of Arts in Philosophy from the University of Illinois and a Masters in Computer Science from the Illinois Institute of Technology. When not bonding with his computer, Mark is busy with his family or training for another triathlon (having completed the Ironman in 2008). Mark lives in Spokane, Washington, with his wife Elisabeth and three children, Benjamin, Hanna and Abigail.

comments powered by Disqus

Featured

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

  • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

    Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

  • Data Anomaly Detection Using a Neural Autoencoder with C#

    Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

  • What's New for Python, Java in Visual Studio Code

    Microsoft announced March 2024 updates to its Python and Java extensions for Visual Studio Code, the open source-based, cross-platform code editor that has repeatedly been named the No. 1 tool in major development surveys.

Subscribe on YouTube