The evolution of Microsoft’s solution for Application Lifecycle Management: Team Foundation Server – Part II

November 8, 2013

Part I: Introduction

Part II: Diving into the basics of ALM and how did Microsoft start with an ALM solution?

According to Wikipedia:

Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of application software. It encompasses requirements management, software architecture, computer programming, software testing, software maintenance, change management, project management, and release management.

For each specific technology, there exist one or more dedicated ALM tool(s) in the market. Only a few tools offer true support for cross-technology Application Lifecycle Management. Serena offers a number of related tools for requirements management, version control and release management. Serena Dimensions CM integrates for example with many popular application development tools straight out of the box like Visual Studio (.NET) and Eclipse (Java). Another example is Rational Team Concert (RTC) from IBM which is positioned as a lean collaborative lifecycle management solution. IBM also offers a rich RTC client plugin for Eclipse and Visual Studio. Atlassian is an Australian software company which focuses on issue tracking, collaboration and other related software development products to work faster and smarter, together. Their tools are very popular in the Java community, but they also offer a Visual Studio Connector to interact with JIRA issues and Bamboo builds right from Visual Studio. The Atlassian tools in combination with a powerful version control system like Git or Mercurial can also be seen as a competitor in the cross technology ALM space.

But for now I want to highlight Microsoft’s Application Lifecycle Management solution. Microsoft Visual Studio 2013 will actually be officially released on November 13, 2013 at the Visual Studio 2013 Virtual Launch Event. The RTM version has been made available for a few weeks already and can be downloaded at http://www.microsoft.com/visualstudio/eng/downloads.

Some history about Team System

Let’s get back in time when it all started. Microsoft released in November 2004 (9 years ago) their first version of an integrated application lifecycle management solution (codename Burton): Microsoft Visual Studio Team System 2005. Before, Visual Studio was only a dedicated tool for developers/coders. This shifted completely with the release of Team System where multiple stakeholders were involved in the software development process.

TeamSystem

Microsoft studied the way how software teams developed software and decided to build a new product that would substantially increase the likelihood of project success, predictability and software quality. Team System actually transformed the Visual Studio IDE into a powerful collaboration tool for the entire software development team. Visual Studio 2005 Team System was designed to achieve four primary goals:

  • Be productive by reducing the complexity of delivering modern service-oriented solutions
  • Be integrated with all tools, and facilitate better team collaboration
  • Be capable by being robust, secure, and scalable, and by having the ability to work remotely
  • Be extensible by allowing processes to be customized

The complete solution consisted of a series of different editions, targeted to the various stakeholders:

  • Visual Studio 2005 Team Edition for Software Architects
  • Visual Studio 2005 Team Edition for Software Developers
  • Visual Studio 2005 Team Edition for Tester
  • Visual Studio 2005 Team Foundation Server

A common misconception was that TFS replaced Visual SourceSafe as just a new version control system. This is of course incorrect because version control is only a small part of the TFS feature set. Team Foundation Version Control (TFVC) was written from scratch (no link with SourceSafe) and uses a SQL Server database as a means of scaling to large environments and infrastructures.

TeamSystemOverview

Team Foundation Server is the central and key component in the ALM solution which offered extensible team collaboration. Team System was clearly designed as a lifecycle platform that enabled third-parties, customers, and solution providers to extend the base functionality with new features and customize the tool for the unique aspects of certain businesses. The Microsoft Solution Framework (MSF) – a set of software development processes, principles, and proven practices – was merged into the product via two Team Project process templates: MSF for Agile Software Development and MSF for CMMI Process Improvement.

At this time, the target audience for Team System were (large) enterprise development teams with a focus to improve the joint outcome of software development on the Microsoft platform (.NET). No sign yet of cross-platform development tools or support for multiple (non-Microsoft) development languages. Visual Studio 2005 Team System can be seen as v1 of the ALM offering from Microsoft. Later in 2006 another client Team System edition was added to the offering: Visual Studio 2005 Team System for Database Professionals. The DB Pro or Data Dude edition worked in conjunction with version control to manage database changes next to application code changes.

In Part III I will cover how Microsoft is extending their ALM offering in the next versions to typical non-Microsoft customers: a look at heterogeneous software development.

Part III: Heterogeneous Software Development

Part IV: A fully integrated testing experience with TFS 2010

Part V: TFS 2012 and Continuous Value Delivery

Part VI: TFS 2013 and Visual Studio Online

Part VII: Conclusion

 

Advertisements

The evolution of Microsoft’s solution for Application Lifecycle Management: Team Foundation Server – Part I

November 7, 2013

In the light of the upcoming official release of Visual Studio 2013 (November 13, 2013), I was planning to write a small blog post to have a quick look at how the product of today evolved over the years. My intention drove me eventually to come up with an elaborated article on this topic which I have splitted in different parts. Thanks to my fellow Visual Studio ALM MVP René van Osnabrugge for reviewing my text and for giving some tips to link it all together!

Part I is setting the scene and covers the introduction …

Software development is so much more than only writing technology specific code (.NET, Java, PHP, Mainframe, …). Applications are also becoming more complex due to numerous distributed services and the boundaries of an application are becoming less clear. Nearly all large enterprises struggle with communication, collaboration and cultural gaps between business users who drive the competitive need for software development, software teams who create the software, and the IT Operations team who manages application deployment and maintenance. IT departments are still often siloed internally with poor hand-offs between development teams and inconsistent approaches to core project life cycle phases and roles (architect, project manager, developer, database administrator, tester, configuration/release manager, …). This negatively affects design, quality, code management and the final deployment of software applications into a production environment.

On top of these issues, it’s quite interesting to see how different technology stacks are coming together in the bigger traditional enterprises. Product features or requirements are not only managed anymore for a specific technology stack but go way beyond specific implementation choices. A complete release/solution can easily consist of a customer facing website written in .NET which connects to Java Web Services for business transactions. The data used for processing could easily come from multiple other applications/sources (don’t forget the existence and importance of many Mainframe applications!). And I didn’t mention yet the different options that pop up if you want to offer a mobile solution on various devices and platforms. At a time of increasing costs, competitive pressure and greater complexity for business requirements, organizations require intuitive, accessible and integrated products. Most organizations have highly constrained resources and add outsourcing to the mix, which further drives the need for better prioritization and metrics for measuring IT success. In addition, regulatory compliance legislation is pushing organizations towards greater rigor with regards to application lifecycle management. On the other side of the spectrum we can identify the need for continuous delivery. Business expects IT to deliver new incremental features as fast as possible. Time-to-market has never been as important as now and can create an important competitive advantage. But let’s face it, many organizations are still far away from the continuous delivery dream. It’s not something which can be easily adopted over the week-end.

In this article I will write about the interesting evolution of Application Lifecycle Management (ALM) and the increased importance of (heterogeneous) software development processes. What I described above about continuous delivery should obviously be the ultimate goal to achieve, but it’s important to set out a realistic roadmap. Don’t run before you can walk and take your time to introduce important changes in your organization. A well-defined ALM strategy is essential to achieve the goals of the IT organization while closely aligning the direction of the business. The key for success is finding a balance between processes, tools and people.

In my next blog post, I will cover Part II to dive into the basics of Application Lifecycle Management and how Microsoft released the first version of Team System.

Part II: Diving into the basics of ALM and how did Microsoft start with an ALM solution?

Part III: Heterogeneous Software Development

Part IV: A fully integrated testing experience with TFS 2010

Part V: TFS 2012 and Continuous Value Delivery

Part VI: TFS 2013 and Visual Studio Online

 

Part VII: Conclusion


Slides of ALM Roadshow

May 12, 2009

 
As promised to the participants of the ALM Roadshow today in Gent, I’ve uploaded the slides I presented :

Note that these presentations target Visual Studio Team System 2008 (current technology) and not yet the new upcoming release of Visual Studio Team System 2010.

I’ve also uploaded the Product Guide for Visual Studio Team System 2008. This may be interesting for example to know which feature belongs to which client edition of Visual Studio Team System. I always get a lot of questions concerning this topic …

Another general question I got concerning licenses : is it required to have a Client Access License (CAL) to connect to a Team Foundation Server Workgroup Edition? Also taken from the product guide :

Workgroup Edition is provided with Visual Studio Team System 2008 Client Products with MSDN Premium Subscriptions. In addition, CALs are not required for accessing Workgroup Edition.

Feel free to contact me would you require further information!

Update [June 18, 2009]
Video screencasts of the sessions have been uploaded on MSDN Chopsticks :


MSDN ALM Roadshow in Belgium

April 24, 2009

 
I will be speaking at the MSDN ALM Roadshow in Belgium next month. The website is now live and open for registration!

I will cover 3 topics on 3 occasions :

  • May 12 : Gent
  • May 13 : Antwerp
  • May 14 : Online Live Meeting

The topics [in dutch] are :

  • Het werk van uw team plannen met Visual Studio Team System
  • Broncontrole op de juiste manier met Team Foundation Server
  • Uw code op verschillende manieren testen en de kwaliteit ervan verbeteren

On top of that, I will also take a seat at the Experts Roundtable for ALM on May 4, a MSDN Live Meeting.