7 Steps to Integrate Microsoft VSTS into SDLC
The burden of managing projects efficiently
Every software development company faces the necessity of a project management toolset. At the same time, everyone who worked on a process automation project knows how complicated the task is. Automation of just one simple process requires modification and customization of ten others. Each of those ten processes has a comparable number of connections. The number of tasks expands like an avalanche.
Choosing a commercial process automation tool is also complicated. Very few companies can say that a tool exactly fits their processes. There are two ways to “marry” a tool and a real process: either customize the tool or change the processes. Usually, companies decide to go in both directions: some processes are customized, some are accepted.
While changing and implementing the software development life cycle (SDLC) at Altoros, we began by crawling and then grew to walking, as we mastered a way of selecting and making automation systems work. The initial requirements were very simple—task management according to the project life cycle that existed in the company, a bug tracking system, as well as a project planning tool and version control system integrated with each other.
There were very few systems that addressed our requirements for which vendors didn’t charge an arm and a leg for our fast-growing global delivery team. After evaluation of these systems, we understood that we also needed the following: a document repository, a risk management system, a time reporting system, a tool for collecting and analyzing project metrics, a project portfolio dashboard, a resource planning system, and data access restrictions. The evaluation process took considerable time. In the meantime, Altoros rapidly grew up in size.
After a year, we understood that our processes had changed, and the systems we evaluated initially no longer fit our current needs. We installed separate “temporary” modules for issue tracking, time reporting, planning (MS Project), document management (MS SharePoint), billing, and version tracking.
One more year passed. Our specialists analyzed other automation tools and calculated man-years of customization and integration. The number of the requirements grew, and, in addition to the ones mentioned above, there was a risk that the vendor would stop developing new versions. Other concerns and risks included: inability to upgrade the system after customization, task mapping to documents, task mapping to issues in a bug-tracking system, proper authentication and build management of all components, as well as enablement of a powerful notification system and knowledge base.
We have waited for at least a beta version of Visual Studio Team System (VSTS) from Microsoft since early 2005. We expected that this would be the system that would likely satisfy our requirements. When we succeeded in trying it, we were not disappointed. The system was 90% as good as we expected. Moreover, it had some additional functions, such as the ability to have as many life cycles as needed, a supreme ability for extension and integration with products beyond Microsoft, and top-level customer service. The ideology of the system is also very beneficial. The management tool integrated with the developers’ environment makes the resistance of users to a new system minimal. It saves time when switching between applications, indeed, and makes reporting—a task unloved by most employees—almost unnoticeable.
One major factor stands out. The significance of this factor is higher than any other. Since Visual Studio is considered to be an industry standard for all Microsoft developers, we are able to provide a supreme level of integration with our customers. Members of distributed teams located in different offices, countries, and even continents can work as if they were in a single room and even more efficiently. VSTS provides tremendous abilities for project monitoring and management.
This article will help you to understand how you can use VSTS in-house.
How can Visual Studio Team System help?
Below, we enlist the most vivid advantages that Visual Studio Team System provides.
Improved team productivity
Historically, Microsoft has left team development tools, such as source control and engineering life-cycle management, to third parties, but has provided a good framework under Visual Studio to integrate all these facets. However, the recent acquisition of Rational Software by IBM has triggered interest within Microsoft to build up its stack in all the areas of engineering life-cycle management and team development.
An overview of VSTS
The main theme under which Microsoft has evolved is its development platform, which continues to be produced. Microsoft defines this as personalized productivity, where it has gone beyond developers and created tools to support other roles in the software development process like architects (covering both application and IT architects), designers, testers, and project managers. The objective is to separate these roles efficiently and provide appropriate personalized tools to streamline their work and integrate it into the mainstream.
By wiring VSTS into Visual Studio, Microsoft transformed its toolset into an instant and consistent enterprise development system of surprisingly little complexity.
The transparent, constantly circulating life-cycle model of application development, deployment, and maintenance challenges comprehension, much less implementation. However, Team System, as implemented by the assembled components of Visual Studio 2005 Team Suite, bypasses that problem for small- and medium-sized development teams: it handles the paradigm complexities, while your employees focus on their jobs.
The Team Foundation Services architecture
Source control and Team Build
In particular, the importance of an integrated Version Control System cannot be overestimated. Many programmers faced the necessity of overwriting once-created code because of the changes made by their colleagues sitting at the next desk. Time and money losses are often accompanied by a burst of negative emotions. Such lessons are being learned very quickly and Source Code Control System (SCCS) is installed immediately. The successful delivery of a project by a team dispersed over the globe is absolutely impossible without such a system.
The basic features of SCCS are check-in/check-out, conflict detection, and creation of multiple branches of code. Powerful SCCSes also provide changes to history, rollbacks, versions labeling, merging, and automated building. Distributed development has additional requirements, such as security, access over the Internet with a potential loss of connectivity, monitoring of bandwidth, and number of connections, etc.
Engineers from Microsoft took into account all of these requirements and implemented them into the integrated framework for version control build management and work item tracking. Thanks to the integration, VSTS allows for the convenient tracking of documentation according to which module was written, the number of bugs reported there, etc. Additionally, VSTS applies an automatic check for compliance with coding standards that may be different across diverse projects.
Build results represented in Source Control
In addition to being integrated into the Visual Studio environment with other Team Foundation technologies, such as creating a build and work item tracking, Source Control also includes a stand-alone graphical user interface and a command-line interface.
Unit testing with Team Test
Most software development companies are quality-centered when it comes to software product engineering. Quality often equals reputation. On the other hand, there are other requirements, such as clarity, security, maintainability, and expandability. If we also take into account critical timelines, which always come along with software development, we will get a set of goals that are essential. The problem is that these goals may contradict one another. Insufficient funding makes matters worse.
Due to these reasons, the extreme programming practice called test-driven development (TDD) is finding more and more supporters. Test cases often do not cover all the functionality of a system. Automated testing is rather costly, while manual end-to-end testing of each build is even more costly than an automated one. Division of a code into relatively independent units and writing a test harness makes the system evolution and adaptation less risky.
In addition, it has such shortcomings as writing, debugging, and operating with an additional volume of code. Complex projects often contain more strings of test code than the production one. VSTS makes the process as easy as possible. Test creation and its management are embedded into the framework. It eliminates a sufficient amount of routine operations and helps developers to concentrate on business logic. The VSTS reporting system helps in ascertaining what percentage of the code is covered with unit tests, the percentage of test failures in each build, and so on.
Surely, TDD is just a complementary method of quality assurance (QA). It will not make functional, integration, and load testing unnecessary. However, it is very helpful in many projects, and VSTS makes TDD as convenient as possible.
Steps to integrate VSTS into your SDLC
These simple steps will help to smoothly integrate VSTS into your product life cycle.
1. Customizing VSTS process templates
The risk of a project failure requires formalization of the development life cycle. So, first, answer the following simple questions. Is the budget fixed or flexible? Does the scope have the highest priority? Is there a deadline? How critical is it? Where will the testing team be located? Who is the end customer, and where is it located? How large is the team? How thorough are the initial requirements?
Some methodologies have a minimum of documentation. Others require separate documents for each step. Are you ready to pay for the documentation? If not, it’s OK. It’s more cost-effective in the short term, but eventually double or triple support and maintenance costs. Just decide what is more important. Answers to these questions will generally define the life cycle.
The sequence of actions and related documents should be described in detail before customization of the VSTS process template.
Generally, any methodology has five major activities:
- requirements specification
Each phase involves different roles of team members, documents, and reports. You should define what reports you would like to have monthly, weekly, or daily. Data access restrictions are also very important to define.
So, you will definitely face a challenging task when describing every single detail of the designed life cycle. It’s likely that it will bring a lot of changes into the processes of your organization that were crystallized for years. You will not be sure that the designed process will be efficient before you try it. You are thinking of a number of man-months of C# and C++ programming needed to design the process. You are assessing the possible launch date, which can be as distant as 6 or 12 months…Process debugging…Internal resistance…
Everything is much simpler. Microsoft provides two process templates for VSTS:
- MSF for CMMI3
These two templates describe each step of the relative development life cycle. The template data is being stored in the XML format and can be modified with the help of various tools starting from Notepad. However, such customization is very time-consuming and requires thorough knowledge of XML. There are a number of apps that were designed especially for VSTS processes customization.
We used VSTS Customization Toolkit. It simplifies the template customization process without any manual coding. Creation of a condition for a work item takes just ten minutes and does not require manual coding. The figures below illustrate some steps of the process.
The fields of work items, documents required, data access restrictions, bug statuses, test cases with links to relative tasks, and use cases—all this data can be modified in Process Template Editor.
Having the ability to design life cycles without coding allows for the creation and management of different projects on one VSTS server with different life cycles.
2. Integrating VSTS with requirements management tools
Usually, low-quality requirements analysis and definition result in additional unplanned work on software development projects. Time spent on requirements elicitation, analysis, specification, and management helps to achieve project goals faster and with better quality. A variety of research indicates that about half of all functional bugs are related to errors in the requirements. However, large-scale projects require such a tremendous amount of paperwork that it is quite complicated to trace all of the document sets when, for instance, a change request should be handled.
Microsoft recommends using Borland CaliberRM for requirements management. Borland has developed the version of this tool as a plug-in to VSTS. It assists managers, business analysts, and all those who are related to documentation development collaboratively to discover, define, and manage software requirements throughout the project development life cycle.
3. Integrating VSTS with Microsoft Project
It’s essential for every manager to know where he/she currently stands in the project implementation. Many managers feel most comfortable when the team is located in the next room, because then they can be sure that the team is working on the project. Locating the team in a different time zone may make everyone nervous. VSTS effectively removes the difference between the actual locations of the team. The powerful reporting system will make the development activities really transparent. Microsoft Project amends VSTS and assists, both in process planning and reporting. VSTS has embedded integration with Microsoft Project Professional, and it also can be integrated with Microsoft Project Server.
Often, a project plan does not correspond to reality, but, constant plan reworking is time-consuming and, probably, expensive. Using Microsoft Project exclusively is also relatively time-consuming. Every project manager knows how much time daily progress tracking takes. He/she would much prefer to spend an hour or two of the time on something more valuable. However, there’s no better way to coordinate different development, design, and QA teams than to create a Gantt chart. Forecasting of real expenses and the delivery date is impossible without project planning. The impact of risks can only be assessed in accordance with a project plan.
A combination of VSTS and MS Project allows users to get a real-time picture of the project state, its status, lagging and leading metrics, in a format that is convenient for all team members, including executive and financial managers. Moreover, Microsoft Project takes the most recent data from VSTS, so there is no need for manual tracking of completed and ongoing tasks. Project managers can concentrate on more challenging and exciting tasks. The project picture available at any time makes resolving issues, allocation of resources, critical path identification, etc., easier and quicker. It subsequently has a positive influence on the project cost and timeline.
However, integration of VSTS with Microsoft Project Professional allows for analysis of just one project. It is also not sufficient for some purposes, such as resource planning and project portfolio analysis. These tasks can be performed using Microsoft Project Server. In order to make the integration, third-party components are required. Altoros has tested the software development life-cycle platform developed by Avanade. Additionally, integration with Microsoft Project Server provides web access to different views of a project, project portfolio analysis, and cross-project resource planning.
4. Integrating VSTS with Microsoft Outlook
The resistance of users to a new environment is one of the factors that should be taken into account during the planning phase of the automation of your development life cycle. There are people who are always against new devices, approaches, and software. The more a new environment is like the old one, the smoother the transition to new software will be. Even if your organization employs young and progressive managers and engineers, it takes time to get accustomed to a new system, and time losses are extremely expensive to the software development business.
Microsoft Outlook is the most widespread corporate communication tool today. That’s why many software vendors (including Altoros) consider having VSTS work together with Microsoft Outlook very beneficial.
Altoros tested the TeamLook from Personify Design, Inc. This product connects Microsoft Outlook 2003 with VSTS and provides constant synchronization. The additional Team System functions similarly to the other Outlook features and greatly reduces ramp-up and training costs for the new system. The main features of the plug-in are as follows:
- Combining the communication and team projects domains
- Providing a single view into communication and project structure
- Automatically populating meeting invitation information from work item
- Automatically linking e-mails with work item
- Creating meeting invitations from work items
- Creating work items from e-mails
Many tasks are often preceded by a long chain of e-mail discussions. Linking work items and e-mail messages can be helpful in multiple cases. For instance, it helps promote understanding of tasks without spending additional time for documenting in Agile processes. The connection between correspondence and a resulting document makes the development of functional and design documentation smoother and helps in finding functional flaws.
5. Collaboration with Microsoft SharePoint
Any project, even the most Agile one, will require a set of documents. The simplest way to store documentation is to create a folder somewhere on a network and share it. However, a geographical distribution may make the process more complicated and require sending the documents over e-mail. This is how it often happens. Hence, versioning is lost, history is changed. The possible results are obvious—hours of work being spent redoing tasks and searching for the most recent version of requirements specification.
VSTS suggests storing the documents on the SharePoint portal and provides direct access to the related documents. Functions in SharePoint, such as version tracking, revisions history, check-in, and check-out, are available by default. VSTS allows for storage in SharePoint of both general documents and templates, which are applicable to all the projects, and regulates life cycles and project-specific documents, as well.
Easy access to a use case by a developer from a task screen saves time and tension. Linking of VSTS and SharePoint maintains connection of the chain: statement of work > requirements > use case > test case > task > bug. Such integration makes the life cycle transparent and easier to analyze. The documentation required for the life cycle, as well as data access restrictions, is set in a process template. Creation of new documents is convenient with the help of toolbar buttons.
6. Enterprise-grade reporting
Reporting is a relatively small feature that crowns VSTS with TFS and all the additional utilities. Work not reported equals to work not done. Incorrectly reported work is misleading. Delays in information updates make projects unmanageable. Insufficient data is often useless. All these issues are resolved with VSTS Enterprise Reporting.
Reports have no inherent value in and of themselves. They cannot be sold or reused. But they are vitally important for project management and monitoring, and their cost is considerably high. Software development is a kind of business, where cost directly depends on time. It is also reasonable to spend more on reporting in outsourced projects in comparison with onshore development because of a lack of verbal communication. Nevertheless, such communication is far less efficient than accurate and timely reporting. Asking a programmer about the progress he/she made during a day or a week is not the best way to get accurate information.
However, there is one major challenge connected with project reporting. The development team is busy with day-to-day activities. Under the pressure of deadlines reporting is often being positioned rather low on a manager’s priority list.
The automation system helps get reports more quickly and reduces the time spent on their preparation. The common problem is “rag” automation. Time is collected in a timesheet system, bugs are managed by a bug-tracking system, tasks are assigned in Outlook. Pulling data from all these tools is time-consuming, complicated, and inaccurate.
The advantage of VSTS is in having all the project information in one database, which is updated “naturally” in real time. Do you need a list of all the tasks completed by the moment? No problem. Would you like to know the percentage of functionality covered by test cases? Just a second. Are you worried about the cost of development left to finish the project? The developer completed a task 5 minutes ago—you are looking at the report that contains this information. Do you need these reports 5 or 10 times a day? You may have 20.
Having information stored in a Microsoft SQL database gives multiple choices for data analysis. You can use SQL Server 2005 Reporting Services. Custom reports can be created in Visual Studio 2005. Even Excel can be used for quick creation of comprehensive reports.
The information is stored in TFS, and it runs the adapters that update the relational and OLAP databases. Data stored in OLAP databases is sufficient for most reporting needs.
The report subscription feature allows precreated reports to be sent automatically by e-mail at predefined intervals.
7. Integrating VSTS with third-party systems
Visual Studio Team System is completely extendable and integrates via a public .NET-based API available for both a client and a server. So, if you have a legacy bug tracking system that costs you hundreds of thousands of dollars, and you’re unable to replace it, you can use the public version of the API to integrate VSTS with your existing legacy system.
In addition, if you work with technologies that are not Microsoft-based, you may use integration tools with the relevant development studios. For example, TeamPlain has developed an integration tool for Eclipse. The TeamPlain Eclipse Plugin enables team members to collaborate using TFS features, such as work item tracking, reporting, and document sharing.
Limitations of VSTS
Below are the most common issues found with VSTS.
All the benefits of VSTS are balanced with its cost. It is still software that needs to be paid for. Additionally, large projects often involve a sufficient number of stakeholders. However, managers and supervisors do not need all the features of Microsoft Visual Studio 2005. Besides the cost, it is a relatively “heavy” application and requires sufficient resources from the workstation to run smoothly. These factors may considerably increase spending on the infrastructure and consequently the cost of project development.
Traceability of requirements and project data
Requirements gathering is one of the important areas in software engineering that allows for a structured way of capturing the requirements. VSTS lacks a structured way to capture requirements. However, several Microsoft partners, such as Borland and Serena, have deeply integrated solutions to address this need.
Typically, in any project, there will also be some ad hoc data, such as customer appreciation, complaints, feedback, minutes of meeting, etc. However, there is no placeholder in VSTS that can be used to input/capture this data.
Knowledge management capabilities
Knowledge management is a key factor in the success of any large company. According to Neil Fleming’s knowledge management levels, VSTS collects all the possible data and presents it in reports (Information Level). However, it would be great if this could have been taken to the next level—knowledge management. Thus, we need a framework in which any pattern of problems identified can be fed back into the VSTS in some form like FxCop Rules, etc., with a click.
Managing work information
Work information (artifact types, process templates, etc.) are managed with XML files. There is a lack of good user interface (UI) support for the same in VSTS, which makes it tedious and error-prone to manage. It is desirable that the next version of VSTS come up with a good UI for managing the same.
Issues with static analysis
VSTS has a good static analyzer, which examines the software produced for coding standards, design guidelines, security, interoperability, etc. However, the tool has been designed to operate on the Microsoft Intermediate Language (MSIL) for conducting checks. This, in itself, has limitations as source-level validations cannot be done. As these limitations are language-specific, they either have to be compensated for by adding new tools, or the current tool must be made to work at the source level.
Time reporting and approval
Time is a basic resource in software development. However, time reporting features in VSTS are extremely limited to the custom fields of tasks. Such functions as automatic time recording or time entry are not available in the current version. Timesheet reporting across individual projects or the whole portfolio also requires an additional customization of VSTS.
Addressing some of the challenges
There are a couple of ways to cut down both software and hardware expenses, as well as address some of the issues with VSTS.
There is Team Explorer, a “light” version of Visual Studio. It is cheaper and is not so complicated. Team Explorer does not include features, such as code writing, debugging, or compiling. However, it is essential for reading and assigning tasks, uploading of documents, bug management, etc.
There is one more way to monitor and manage the development process on a high level. This option does not require installation of any additional software. Hence, it does not require additional investment. The project overview information can be accessed with the help of Microsoft Internet Explorer.
VSTS automatically creates a project portal using Windows SharePoint Services. The integrated reporting functionality is based on the capabilities of SQL Server 2005 Reporting Services. It gives the same flexibility for report creation as in the Visual Studio. Even though the primary goal of Project Portal is reporting, it also can be customized for additional integration with TFS. Such controls as input forms for tasks management, synchronization with document repository, etc., expand the functionality of web access.
Project Portal allows for creation of several sections to be available to different managers. It helps in both data access restriction and in providing only the information necessary for making definite decisions. For example, a financial manager will see the cost-related metrics and reports only, while an HR manager will see the information concerning the actual and scheduled load.
Using Project Portal does not provide the same flexibility and full control over the project as Visual Studio or Team Explorer do. However, it allows for accessing reports, announcements, tasks, discussions, etc. This information is often quite enough for high-level monitoring of the project progress and “health.”
TeamPlain’s web access to TFS
TeamPlain has created an almost fully functional web interface to TFS for those customers who want extended access to VSTS features using a web browser. It allows for managing work items, shared documents, reports, and source control repositories.
TX Chrono for time tracking
To address issues with efficient task tracking and time reporting, we developed our own tools for the purpose, which later evolved into TX Chrono. This enabled us to track time directly from Work Items in TFS, keep track of estimated vs. accomplished work, submit/approve/analyze timesheet submissions, use custom notifications, etc. A free trial is available on the website.
Visual Studio Team System provides a holistic solution for managing both the engineering and the project management processes. The set of tools can reduce the loss of information within the team and give a project manager insights into the state of the project at any time throughout the life cycle.
Using VSTS improves coordination between team members and stakeholders, helps all the project participants to be on the same page, and mitigates many risks of outsourcing. A number of applications suitable for TFS access make VSTS a powerful solution and provide flexibility in reviewing and editing the project information.
At the same time, VSTS and TFS bring a number of limitations that make the integration process challenging. Successfully implementing VSTS and TFS into a specific software development life cycle is not an easy task. Once implemented, VSTS will become a lifesaver for many small- to medium-sized software organizations trying to integrate distributed teams into their business model.
- Visual Studio Code Really Surprised Me
- Resolving a TFS 2010 Issue: The Same Names for Different Assemblies
- An Employee Performance Assessment System to Improve Software Project Management