Team Foundation Server has very rich features and this article discusses few of the features and templates in view of CMMI implementation.
Introduction and background
CMMI practices widely regarded as process improvement approach that provides organizations with the essential elements of effective processes that ultimately improve their performance. It also supposed to bring benefits like linking organization activities to business objectives, increased visibility into the organization's activities, to help ensure that the product or service meets the customer's expectations and learning’s from areas of best practices. Important objectives are continual improvement and customer satisfaction. Implementation of CMMI is easier said than done as it has to encompass different business verticals and technological domains. With the current high rate of change of requirements, technical advancement, rise of architecture & design fraternity, availability of frameworks etc has posed a good challenge for setting up practices across the organization. But with such background, it becomes imperative to have practices and process which would definitely improve (if implemented in right way) viability, visibility and finally customer satisfaction.
Team involved in CMMI implementation is always overwhelmed by the volume of documentation they would need to maintain. Many a times such volume of documentation gives rise to the questioning of the usability of such documentation and in most cases there are chances of being seen as an overhead. The viability of this thought can’t be neglected and if one looks at the organization who has acquired such certification, one can see the costs, human efforts involved and the difficulties in continuation of such certifications.
Even with help of various available tools, the task is huge as many of such artefacts are related to source code, issues, test cases etc and not integrated to give one point access This necessitates additional overhead of synchronization of these tools and other artefacts like requirements, planning, source control repository, release mechanism etc.
The purpose of this write up is to explore and run through features so as to see if TFS could be a one stop solution for documentation, analytics, tracing worries which are associated with CMMI process improvements and implementations.
• Coordination among artefacts for requirements (SRS, functional specs), planning (project plans), tracking (excel sheets, status report), testing (test case), releases (release notes), bug analysis, CA, PA etc.
• Scope changes (i.e. changes in the requirements), incremental requirements etc.
• Updating the documentation as changes in one artefact triggers changes in other artefacts and their storage
• Analytics – bug analysis, ROI, status reporting
Whats is TFS?
TFS is Microsoft’s set of new technologies and techniques that are geared toward optimizing the process of developing software in teams.
There are two sides to Team Foundation Server. On one hand, it is a collection of features that are shared by the various members of a project team to enable them to work together more effectively. Team members can share project plans, work products, and progress assessments easily and naturally.
Ø Version control - for managing source code and other deliverables that require versioning.
Ø Work item tracking - for keeping track of such things as defects, requirements, tasks, and scenarios.
Ø Project management functions - allow the shaping of a team project based on a user-specifiable software process, and which enable planning and tracking using Microsoft Excel and Microsoft Project.
Ø Team build - for enabling a common process for building executable products.
Ø Data collection and reporting - Aid in the assessment of a team project's state, based on information gleaned from Team Foundation Server tools.
Ø The Team Project Portal - provides a central point of communication for a team project packaged as a Microsoft Windows SharePoint Services site.
On the other hand, Team Foundation Server is a platform specifically architected for integration and extensibility. Customers and partners can customize elements of Team Foundation Server and complement it with new functionality.
TFS Automation Capabilities
TFS is enriched with the facilities for addressing the challenges in CMMI implementations. Microsoft Solution Framework (MSF) for CMMI provides formal templates to prepare work item list of project, definition for work item types etc.
Following features help in automating many tasks for implementations and speed up the process as well as improve the accuracy.
Integration with MS project
MS project is powerful tool for planning, tracking and status reporting tools. This also facilitates to scheduling, budgeting and costing. Such plans which would address the deliverable and also time schedules could be integrated with TFS and tasks could be propagated to TFS directly. This eliminates the need of creating tasks (work items) in TFS which would correspond to plans.
Integration with MS Excel
Many of the documents are kept in excel formats and important document like traceability matrix, analysis etc also need excel. TFS facilitates to import and export the excel templates and it also allows to attaché such document to work products, work items etc.
Ability to attach word documents, diagrams
With TFS one can attach word documents, design diagrams and other documents to work items or work products. This way a lot of work of co-relating is taken care of.
7 work item types are provided -Bug, Requirement, Change Request, Issue, Review, Risk, Task.
Team Foundation Server is a software life-cycle tool (precisely ALM - Application LifeCycle Management)designed specifically to improve collaboration among software development teams and increase productivity. Team Foundation Server delivers version control, work item tracking, project management, and build management capabilities. Above all, it focuses on the linkage between the central objects a software team manages, and on the unique integration and automation possibilities these links provide.
The licensing scheme for TFS and its installation network topology needs to be looked into. TFS can be implemented on client basis or across the organization too. The cost and performance implications need to be chalked out before zeroing for TFS.
TFS is a distributed system with dependencies on Windows SharePoint Service, SQL Server, IIS and Windows operating system. It facilitates creation of our own operation plan according to our deployment topology then TFS can be used more effectively. TFS seems to be a most comprehensive and integrated solution, which can be very useful and powerful for the automation process as well. The above discussion endorses that intelligent use of TFS could make it a one stop solution for CMMI implementations.
With usefulness for CMMI practices, it can be equally effective for agile development as well.
Co-Author: Rahul Agashe