As an industry, Information Technology has helped other areas of the business become more reliable, efficient and targeted. Yet in many respects, we have neglected to do this for the software development organization. Other parts of the business, such as marketing, have had the ability to measure the success and failure of their efforts for some time and it's high time that we were able to do this for software development. To solve this problem, Microsoft has come up with a solution in the form of Team Foundation Server (TFS).
Defining Microsoft Team Foundation Server
Microsoft tackles the problem of delivering secure, quality software initiatives in a predictable manner, by focusing on how to get the masses to adopt good software engineering principles. The lightweight processes instantiated by the tools and environment, can enable development teams to succeed without impacting their productivity. This is what exactly TFS does.
As defined by Microsoft, Team Foundation Server provides a set of collaborative software development tools that integrate with your existing Integrated Development Environment (IDE) or editor thus enabling your cross-functional team to work effectively on software projects of all sizes.
Understanding Functional Aspects of Microsoft TFS
Most see Microsoft Team Foundation Server (TFS) as simply a team collaboration server. The label may not do justice to the technology’s real value, as the main objective is to make software initiatives drive the overall business value. TFS is a critical piece of the puzzle in enabling software development to become a true competency inside of organizations.
TFS is a democratized approach that enables the software development process to easily adopt robust tools and best practices without cost and complexity as key inhibitors. To assist in this, TFS has placed a priority on tools integration and role-based experiences that are designed from the ground up, rather than after the fact.
Microsoft TFS not only automates the workflow, it guides the software development process in a more streamlined way. TFS also uniquely collects real-time data intelligence based on project history, differing from the approaches that rely on industry benchmark data. TFS serves as a data warehouse that critically links the various roles in the software development lifecycle – from the individual developer to the architect, testers, system administrators, and all the way to the CIO and Project Management Office, early integration of TFS with Enterprise Project Server for project portfolio management feeds into capacity planning, resource management, and impact and risk analysis. So that the right software projects may be selected for the best Return on Investment (ROI).
TFS tackles the problem of having to constantly update outdated information, thereby ensuring that collaboration which is particularly important in outsourcing or distributed development scenarios. TFS is also a key link that enables project managers to bring more and more roles to the table to be part of the software development process, while giving the attention it deserves. A good example of this is, the professional developer and the creative professional (designer) they need to come together and work collaboratively to build the next generation of differentiated user experiences.
Working with TFS is a matter of identifying all project “work items.” This boils down to a generic term name that TFS assigns to all the “molecules” of a development project: a date, a bug, a task, etc. Building the TFS project requires identifying and fleshing out all work items, which TFS will push out to all related systems.
The result is a nicely integrated solution. TFS also integrates directly with a Microsoft Project Portal. This means that managers can access TFS information without having to navigate through the Visual Studio development tool. TFS automatically updates the portal with all relevant information.
Visual Studio Team Foundation Server represents a shift from a developer-centric focus on building software to a collaborative one. For Visual Studio folks, this is definitely the way to develop software.