You are previewing Pro Application Lifecycle Management with Visual Studio 2012, Second Edition.
O'Reilly logo
Pro Application Lifecycle Management with Visual Studio 2012, Second Edition

Book Description

You can have the best coders in the world working in your teams, but if your project management isn't up to scratch, your project is almost certain to be delayed, to come in over budget, and in some cases to fail entirely. By taking precise control of your application development process, you can make changes, both large and small, throughout your project's life cycle that will lead to better–quality finished products that are consistently delivered on time and within budget.

Application lifecycle management (ALM) is an area of rapidly growing interest within the development community. Because its techniques allow you to deal with the process of developing applications across many areas of responsibility and across many different disciplines, its effects on your project can be wide ranging and pronounced. It is a project management tool that has practical implications for the whole team—from architects to designers, from developers to testers.

Pro Application Lifecycle Management with Visual Studio 2012 focuses on the most powerful ALM tool available for the Microsoft .NET Framework: Visual Studio Team Foundation Server. It demonstrates the key concepts and techniques of ALM at first with a guide to the overall methodology, and then delves into architecture and testing--illustrating all of the concepts, tips and tricks using the tools TFS provides. The book serves as a complete guide to the ALM style--with no fluff and many relevant code samples and examples.

After reading the book, you will understand how TFS can be used to generate continuous meaningful reporting on your project's health for the decision makers on your team as well as for your project's sponsors.

What you'll learn

  • What ALM is and what it can do for you

  • How to achieve traceability in your projects

  • How to improve your development process

  • Why TFS is so much more than just a version control tool

  • The new features in TFS that help encourage ALM best practices, especially within Metro and .NET 4.5 applications

  • What the importance of well–designed and well–defined processes is and how to implement these things

Who this book is for

This book will be of value for anyone developing applications with Visual Studio Team Foundation Server, whether they are working in a small team of just a few people or in a large enterprise environment.

Table of Contents

  1. Title
  2. Dedication
  3. Contents at a Glance
  4. Contents
  5. About the Authors
  6. About the Technical Reviewers
  7. Acknowledgments
  8. Introduction
  9. Part 1: Application Lifecycle Management
    1. Chapter 1: Why Application Lifecycle Management Matters
      1. Understanding the Cornerstones of Business
      2. Understanding the Need for Business Software
      3. Today’s Business Environment and the Problems We Face
      4. Project Success in Research
      5. IT Budget Spending
      6. Summary
    2. Chapter 2: Introduction to Application Lifecycle Management
      1. Roles in the ALM Process
      2. Four Ways of Looking at Application Lifecycle Management
      3. Three Pillars of Application Lifecycle Management
      4. A Brief History of ALM Tools
      5. ALM and PPM
      6. Summary
    3. Chapter 3: Development Processes and Frameworks
      1. The Waterfall Model
      2. Spiral Model
      3. Rational Unified Process (RUP)
      4. Manifesto for Agile Software Development
      5. Extreme Programming (XP)
      6. Scrum
      7. Capability Maturity Model Integration (CMMI)
      8. Summary
    4. Chapter 4: ALM Assessments
      1. Microsoft Application Platform Optimization (APO) Model
      2. Summary
    5. Chapter 5: ALM Using TFS
      1. Application Lifecycle Management Overview
      2. Team Foundation Server Overview
      3. Traceability
      4. Visibility
      5. Collaboration
      6. Use of One Tool/Role Based
      7. Extensibility
      8. Summary
  10. Part 2: Planning (Agile Project Management)
    1. Chapter 6: Introduction to Agile
      1. The Scrum Process
      2. Roles in Scrum
      3. Definition of Done
      4. Agile Requirements and Estimation
      5. Summary
    2. Chapter 7: Work Item Tracking and Process Customization
      1. Traceability
      2. The TFS Work Item Tracking System
      3. Process Customization
      4. Web Access Customization
      5. Summary
    3. Chapter 8: Agile Project Management With TFS
      1. Case Study
      2. Scrum TFS Template
      3. Project Startup Phase
      4. Running the Project
      5. Summary
    4. Chapter 9: Metrics and ALM Assessment for Agile Project Management
      1. Metrics
      2. Standard Reports
      3. Custom Reporting
      4. Assessment Questions
      5. Summary
  11. Part 3: Analysis, Modeling, and Design (Architecture)
    1. Chapter 10: Prototyping Using Storyboarding and Feedback Tracking
      1. PowerPoint Storyboarding
      2. Feedback Tracking Using Microsoft Feedback Client
      3. Summary
    2. Chapter 11: Top Down Design Studies (UML)
      1. UML Basics
      2. Summary
    3. Chapter 12: Using Architecture Explorer
      1. Architecture Explorer
      2. Analyze and Explore Code Using Architecture Explorer
      3. Summary
    4. Chapter 13: Using Layer Diagrams
      1. Patterns
      2. Using Layer Diagrams
      3. Layer Validation
      4. Summary
    5. Chapter 14: Metrics and ALM Assessment for Architecture, Analysis and Design
      1. Metrics
      2. Standard Reports
      3. Assessment
      4. Summary
  12. Part 4: Building (Developer Practices)
    1. Chapter 15: Version Control
      1. Getting Started with Source Control
      2. Comparing Changes
      3. Working with Concurrent Changes
      4. Working with My Work
      5. Summary
    2. Chapter 16: Unit Testing
      1. What Is Test Driven Development?
      2. Principles for Unit Testing
      3. Visual Studio Unit Tests
      4. Test Explorer
      5. Working with Code Coverage
      6. Data-Driven Automated Tests
      7. Working with External Files
      8. Managing Test Dependencies
      9. Working with Other Test Frameworks
      10. Implementing Mock Objects
      11. Summary
    3. Chapter 17: Code Quality
      1. Code Analysis
      2. Code Metrics
      3. Code Clones
      4. Code Review
      5. Summary
    4. Chapter 18: Performance and Profiling
      1. Profiling Overview
      2. Profiling In Visual Studio 2012
      3. IntelliTrace
      4. PreEmptive Analytics
      5. Summary
    5. Chapter 19: Metrics and ALM Assessment for Developer Practices
      1. Metrics
      2. Standard Reports
      3. Custom Reporting
      4. Assessment
      5. Summary
  13. Part 5: Validating (Software Testing)
    1. Chapter 20: Overview of Software Testing
      1. Agile Testing
      2. Planning
      3. Platform Support for Testing Practices
      4. Summary
    2. Chapter 21: Manual Testing
      1. Planning the Tests
      2. Designing Test Cases
      3. Running Tests
      4. Reporting Bugs and Validating Fixes
      5. Summary
    3. Chapter 22: Automated Testing
      1. Working with Automated Tests
      2. Automating Test Cases Using Coded UI Tests
      3. Coded UI Tests
      4. Using Unit Tests as Automated Tests
      5. Running Automated Tests
      6. Performance Testing the Application
      7. Summary
    4. Chapter 23: Visual Studio Lab Management
      1. Architecture
      2. Environments
      3. Using Lab Management for Manual Testing
      4. Automated Testing and Lab Management
      5. Summary
    5. Chapter 24: Metrics and ALM Assessment for Software Testing
      1. Metrics
      2. Standard Reports
      3. Custom Reporting
      4. Assessment
      5. Summary
  14. Part 6: Releasing
    1. Chapter 25: Continuous Delivery
      1. Continuous Integration
      2. Continuous Delivery
      3. Release Management
      4. Summary
    2. Chapter 26: Build Automation
      1. TFS Build Architecture
      2. Creating an Automated Build
      3. Running a Build
      4. Implementing Continuous Integration
      5. Configuring Builds
      6. Customizing Builds
      7. Logging In the Build Process
      8. Extending Builds
      9. Feedback
      10. Summary
    3. Chapter 27: Deployment
      1. Designing a Deployment Solution
      2. Deployment to Windows Azure
      3. Running Automated Tests as Part of the Build
      4. Implementing the Build-Deploy-Test Workflow
      5. Summary
    4. Chapter 28: Release Management
      1. Release Management
      2. Release Notes
      3. Versioning
      4. Summary
    5. Chapter 29: Metrics and ALM Assessment
      1. Metrics
      2. Standard Reports
      3. Custom Reporting
      4. Assessment
      5. Summary
  15. Part 7: Team Foundation Server
    1. Chapter 30: Architecture and Implementation Planning
      1. TFS Architecture
      2. Team Foundation Build
      3. Team Foundation Server Proxy
      4. Planning the Implementation
      5. Previous Version of TFS Already Deployed
      6. Summary
    2. Chapter 31: TFS Installation, Upgrade, and Administration
      1. Installation Options
      2. Team Foundation Server Administration
      3. Summary
    3. Chapter 32: TFS Reporting
      1. Architecture
      2. Creating Reports
      3. Summary
    4. Chapter 33: Working in Heterogeneous Environments
      1. What is Team Explorer Everywhere?
      2. Features Available in Team Explorer Everywhere
      3. Installation in Eclipse
      4. Connect to TFS
      5. Using TEE from Eclipse
      6. Ant and Maven 2 Build Improvements
      7. Summary
    5. Chapter 34: TFS In The Cloud
      1. Windows Azure Overview
      2. TFS on Azure
      3. Services Offered With TFS in the Cloud
      4. Benefits of TFS in the Cloud
      5. Concerns with TFS in the Cloud
      6. Summary
  16. Index