I would like to clarify very important issue, which is the blog subject, what is the different between ALM and TFS as a part of Visual Studio Team System (VSTS) , first of all let’s know what every abbreviation means:
ALM : Application Lifecycle Management
TFS : Team Foundation Server
But really it isn’t what I mean by the different between them, definitely there is a big different between both, first of all let’s start to define each one:
ALM is a continuous process of managing the life of an application through governance, development and maintenance
TFS is a Microsoft tool that we should use to implement ALM, while as mention before it’s a part of Visual Studio Team System .
Also there are a map between both, ALM has 9 process area and TFS has many Product features, I will map every TFS feature to one of Process area to help for implementing ALM at the Software house for their Software Application, first lets list ALM 9 process area and TFS features:
ALM 9 Process areas:
User Experience (UX)
User Experience (UX) is a term used to describe the overall experience and satisfaction a user has when using a product or system.
Requirements management is the science and art of gathering and managing user, business, technical, functional requirements and process requirements within a product development project.
Quality & Test
Quality Assurance covers all activities from design, development, production, installation, servicing and documentation. The main goal of QA is to ensure that the product fulfills or exceeds customer expectations.
The way a program is written has important consequences for the maintainers. Some quality code attributes; • Readability • Ease of maintenance, testing, debugging, fixing, modification and portability • Low complexity • Low resource usage
Architecture & Design
Consists of software components, their external properties, & their relationships. Documenting software architecture facilitates stakeholder communication, documents decisions about high-level design, & allows reuse of design components & patterns.
Project management is the discipline of organizing and managing resources in such a way that these resources deliver all the work required to complete a project within defined scope, time and cost constraints.
Software Configuration Management
The management of the various configurations of hardware and software components within the technical environment and enables recreation of each build as well as recreation of earlier environments in order to maintain previous versions of a product.
Work item tracking
Work item is unit of work which used to identify, manage and track any piece of work in the project like (Task, Bug, Risk,OoS,...) with different status (Active, resolved, closed,...) and can be associated with projects documents.
Source code control
Enterprise scale repository for source code and other file-based documents, support branching and merging operation and check-in policy
Automated compilation of source code, Execution and automated test, Performance of source code analysis with daily build automation
Metrics and Reporting
The most favorite features for project managers some reports into metrics stored within TFS Data warehouse
For every Team Project VSTS creates and associated project portal which build on WSS, Maintain the documentation produced by the project team and They also have collaborative functionality such as version history and document check-in and check-out
Office Excel and Office Project Integration
Integration with VSTS work item services and theWork item repository is fully accessible through office project and office excel providing two-way synchronization (between work item and MS Excel and MS Project
Now I will map every process area with the TFS feature that we could use to implement ALM on the software lifecycle which improve the quality of software at the end:
· Using Architecture features in VSTS
· Project Portals
· Office Excel Integration
· TFS Template (MSF for CMMI or MSF for Agile) with workitem tracking
· Automated Test and Quality Metrics (features in VSTS)
· Automated Build
· Quality Metrics
· check-in Policy
· Metrics and Reporting (reporting based on reporting services)
· Office Project Integration
· Source code control
It’s absolutely important to be sure that delivering a high quality solution comes from healthy, well managed, controlled, collaborated, integrated and monitored environment. Simply you could create this environment by encourage software house to understand ALM (application lifecycle management and how to implement it by using tools like TFS (Team Foundation Server).