Visual Studio ALM for High Profitability

Posted by: Subodh Sohoni , on 9/21/2012, in Category DNC Magazine
Views: 22417
Abstract: Subodh Sohoni, VS ALM MVP, shares his views on how the Visual Studio Application Lifecycle Management (ALM) suite can be used for improvement in productivity of software development and in turn lead to high profit

During the last couple of years, business of software development has not remained as profitable as it used to be about a decade ago. To retain high profitability, it has become necessary for organizations to look critically at their processes and optimize those for the highest productivity of the teams and the best quality of the product.

Using Microsoft Visual Studio Application Lifecycle Management (ALM) is one of the most effective ways to improve productivity of the team and the quality of product.

dncmag
This article is published from the DNC Magazine – A Free High Quality Digital Magazine for .NET professionals published once every two months.

This month's edition features hot topics like ASP.NET MVC4, SignalR, Knockout.js, jsRender, TDD, Visual Studio ALM, HTML5, SharePoint, Windows Azure and Metro Applications amongst others. Not to mention, a freewheeling interview with Ayende Rahien, the man behind RavenDB.

Download this Free Magazine Here

Issues That Affect Software Development Productivity and Quality


Let us first look at the issues that can adversely affect the software productivity and quality and in turn profitability.


1. Not using the tools that are capable of supporting automation
2. Ineffective communication and collaboration between team members
3. High Rework due to lack of understanding of requirements and bugs
4. Duplication of efforts due to unstructured coding practices and artifacts reuse
5. Noncompliance to standards resulting in substandard code and product

1_600


Although this is not an exhaustive list of all the issues faced by a team developing a non-trivial software, it is a list of most significant issues that affect the profitability of the organization.

How Visual Studio ALM can help


Let us now delve deeper in each of these issues and understand how Microsoft Visual Studio ALM can help us to resolve these issues.

Not using the capable tools for automation of processes

Most of the processes have some activities that need to be executed manually and some activities that can be automated. For example, if testers need to file a bug, they need to provide some general information about the bug, like the title of the bug, iteration and module in which it was found etc. At the same time, testers also need to provide more specific data about the bug; like what were the steps that lead to the bug  and environmental information under which that bug was found etc.

This data can be collected by the tools while the test is running and then embedded in the bug so that it becomes useful when the developer fixes that bug.

2_600

Monitoring the tasks that are assigned to team members

Usually project managers may use out of band communication media like emails, telephone calls or stand up meetings to get to know the status of tasks that are assigned to various team members. After collecting that data, they enter it in tools like Microsoft Project or Microsoft Excel. 

Team Foundation Server (TFS 2010) is an  integral hub like component of Microsoft  “Microsoft Visual Studio ALM has abundant tools that can automate the activities and improve the productivity of the team.”

Visual Studio ALM that provides editable access to the tasks for all the team members, to the tasks that are assigned to them. They enter the status of the tasks using their regular tools like Visual Studio directly in TFS 2010 and that status is then made available to the project manager. This eliminates the inefficient out of band communication.  TFS not only provides this centralized access to tasks, but it also stores, analyzes and reports the data related to tasks. These features of Microsoft Visual Studio ALM improves the productivity of project managers and allows them to focus on  activities of planning and control that need more attention and value addition from the project manager. Microsoft Visual Studio ALM has all the required tools to automate project and improve productivity of the team.

Team


Ineffective communication and collaboration between team members

Most of us have had experience of working on projects where team does not communicate well and team members do not collaborate with each other. Fate of such projects is known even before the deadline approaches. These projects are doomed not because the team members are incapable, but because they do not work as a team, they are just collection of persons. Reasons for such lack of communication can be as trivial as not having a good communication media or as complex as having a multi locational team working on a project. Microsoft Team Foundation Server facilitates communication and collaboration between team members regardless of their location. It communicates using standard http / https protocols so that communication across the Internet is possible. It also provides a strong platform like Microsoft SharePoint to collaborate within a team.

4_600

Effort wastage in rework due to lack of understanding of customer requirements and bugs

- Many a times great software is created but for wrong requirements”.

Sometimes tools are not capable of automatic tracing from requirements to tasks that implement those requirements and  test cases, that ensure the correctness of the implementation. Due to such tools, some requirements may not get implemented at all or other requirements may not be correctly implemented. TFS 2010 provides the service of hierarchical work items that can link the related work items and then automatic traceability is made available. For example, a requirement is linked to tasks and test cases as they are created, so that a requirement can be traced forward and the tasks or test cases can be traced back to specific requirement. Code can be linked at the time of check-in, to tasks, requirements or bugs, so that traceability to and from code is also facilitated. Reports related to this traceability are also made available.

5_600

Another cause of reduction in productivity is developer not able to understand the bug that is filed by the tester. As mentioned earlier in (1) Microsoft Test Manager 2010 collects a lot of data that is useful to the developers for doing bug fixing. Data like - Steps to reproduce, test data entered by the tester, system information where the application is running, IntelliTrace data, screen snapshots, video of the screen while the test is running etc. is collected while the test is running. This same data is then attached to the bug when the tester files that bug. It is saved in TFS 2010  when the bug is saved. Such a bug is also called a ‘Rich Bug’ since it is rich with enough information required by the developer to fix that bug.

A developer can open the same bug in Visual Studio 2010 and then have a look at the attached data to get more understanding of the bug. Developer can also start a debugger session with the attached IntelliTrace  data and trace through the entire code to find the bug in that code.  Time required to understand the bug and then fix it correctly is reduced due to the ‘Rich Bug’ which results in improvement of productivity of the developer directly and the team indirectly.

Non-existence of a structured way for code and artifacts reuse

One of the causes of low productivity is duplication of code and work items. Innovative code created by team members within a team and also outside the team but within the organization, is not well published. This may lead to similar code being recreated by other team member at a cost of time required to create such code.  TFS integrates with Microsoft SharePoint, on which it creates a portal for every project that it is managing. Organization can leverage this automation to  internally publicize availability of reusable components.  Once available in SharePoint, anyone with proper access can search these libraries to find and reuse the same solution and not waste their time and efforts in reinventing the solution.  This feature will improve the productivity and also the quality since the published code is well tested and has less chance of having a bug in it.

Mediocre product and code quality due to non-compliance to the standards

Best quality product stands a chance of commanding high price vis-à-vis the cost of production and such a high price does result in higher profits to the organization. Although high quality code is not the only factor that influences quality of the product, it does have a large impact. Maintaining quality of coding as per the policies of the organization results in consistent and better quality products.   TFS facilitates compulsory quality checks like static code analysis at the time of code check-in. This ensures that code that is being checked-in, has passed the necessary quality checks. Checked-in code is ensured to be of the quality that
is as per standards set by the organization. It also results in less rework and bugs that are major cause of  reduction of productivity. This is done  with a feature of the TFS called ‘Check-in Policy’. Check-in policy does not allow the check-in to take place as long as its condition is not met by the code. There are a few built in check-in policies available and custom check-in policies can also be built. Organization can decide the policy that governs the quality checks that are made at the time of check-in of the code. Only necessary check-in policies can be enabled to maintain desirable quality of the code. Maintaining quality as part of standard
workflow improves the quality of the product and without any adverse effect on overall productivity of the team.

Conclusion

Profitability is the most important goal of any business including that of software development. Profitability is adversely affected due to low productivity of the team that is developing software and low prices due to mediocre quality of the product. Productivity and quality are usually low because of not using the best available tools and services. Microsoft Visual Studio Application Lifecycle Management Suite of Products is a set of tools and services that enhances the productivity of the team and  ensures high quality of  product which directly and indirectly improves the profitability of the organization.

Give a +1 to this article if you think it was well written. Thanks!
Recommended Articles
Subodh Sohoni, Team System MVP, is an MCTS – Microsoft Team Foundation Server – Configuration and Development and also is a Microsoft Certified Trainer(MCT) since 2004. Subodh has his own company and conducts a lot of corporate trainings. He is an M.Tech. in Aircraft Production from IIT Madras. He has over 20 years of experience working in sectors like Production, Marketing, Software development and now Software Training. Follow him on twitter @subodhsohoni


Page copy protected against web site content infringement by Copyscape


User Feedback
Comment posted by Vijay Chand on Friday, September 21, 2012 10:13 AM
good article .

Post your comment
Name:  
E-mail: (Will not be displayed)
Comment:
Insert Cancel