pro application lifecycle management with visual studio 2012 2nd edition

644 2K 0
pro application lifecycle management with visual studio 2012 2nd edition

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

THE EXPERT’S VOICE ® IN .NET www.it-ebooks.info For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. www.it-ebooks.info v Contents at a Glance About the Authors ����������������������������������������������������������������������������������������������������� xxvii About the Technical Reviewers ��������������������������������������������������������������������������������� xxix Acknowledgments ����������������������������������������������������������������������������������������������������� xxxi Introduction ������������������������������������������������������������������������������������������������������������� xxxiii Part 1: Application Lifecycle Management ■ ���������������������������������������������� 1 Chapter 1: Why Application Lifecycle Management Matters ■ ���������������������������������������3 Chapter 2: Introduction to Application Lifecycle Management ■ ��������������������������������� 21 Chapter 3: Development Processes and Frameworks ■ ����������������������������������������������� 37 Chapter 4: ALM Assessments ■ ������������������������������������������������������������������������������������61 Chapter 5: ALM Using TFS ■ ����������������������������������������������������������������������������������������� 75 Part 2: Planning (Agile Project Management) ■ ��������������������������������������� 89 Chapter 6: Introduction to Agile ■ �������������������������������������������������������������������������������� 91 Chapter 7: Work Item Tracking and Process Customization ■ �����������������������������������101 Chapter 8: Agile Project Management With TFS ■ ������������������������������������������������������ 127 Chapter 9: Metrics and ALM Assessment for Agile Project Management ■ ��������������� 155 Part 3: Analysis, Modeling, and Design (Architecture) ■ ������������������������ 173 Chapter 10: Prototyping Using Storyboarding and Feedback Tracking ■ ������������������� 175 Chapter 11: Top Down Design Studies (UML) ■ ����������������������������������������������������������189 www.it-ebooks.info ■ Contents at a GlanCe vi Chapter 12: Using Architecture Explorer ■ ����������������������������������������������������������������� 203 Chapter 13: Using Layer Diagrams ■ �������������������������������������������������������������������������� 209 Chapter 14: Metrics and ALM Assessment for Architecture, ■ Analysis and Design ������������������������������������������������������������������������������������������������ 219 Part 4: Building (Developer Practices) ■ ����������������������������������������������� 223 Chapter 15: Version Control ■ ������������������������������������������������������������������������������������� 225 Chapter 16: Unit Testing ■ ������������������������������������������������������������������������������������������ 251 Chapter 17: Code Quality ■ ����������������������������������������������������������������������������������������� 271 Chapter 18: Performance and Profiling ■ �������������������������������������������������������������������287 Chapter 19: Metrics and ALM Assessment for Developer Practices ■ ����������������������� 305 Part 5: Validating (Software Testing) ■ �������������������������������������������������� 313 Chapter 20: Overview of Software Testing ■ ��������������������������������������������������������������315 Chapter 21: Manual Testing ■ �������������������������������������������������������������������������������������323 Chapter 22: Automated Testing ■ �������������������������������������������������������������������������������355 Chapter 23: Visual Studio Lab Management ■ ������������������������������������������������������������ 385 Chapter 24: Metrics and ALM Assessment for Software Testing ■ ����������������������������413 Part 6: Releasing ■ �������������������������������������������������������������������������������� 423 Chapter 25: Continuous Delivery ■ ����������������������������������������������������������������������������� 425 Chapter 26: Build Automation ■ ��������������������������������������������������������������������������������� 433 Chapter 27: Deployment ■ ������������������������������������������������������������������������������������������ 489 Chapter 28: Release Management ■ ���������������������������������������������������������������������������515 Chapter 29: Metrics and ALM Assessment ■ �������������������������������������������������������������� 533 Part 7: Team Foundation Server ■ ��������������������������������������������������������� 543 Chapter 30: Architecture and Implementation Planning ■ ����������������������������������������� 545 Chapter 31: TFS Installation, Upgrade, and Administration ■ ������������������������������������� 557 www.it-ebooks.info ■ Contents at a GlanCe vii Chapter 32: TFS Reporting ■ ��������������������������������������������������������������������������������������� 575 Chapter 33: Working in Heterogeneous Environments ■ �������������������������������������������� 599 Chapter 34: TFS In The Cloud ■ ����������������������������������������������������������������������������������613 Index ��������������������������������������������������������������������������������������������������������������������������� 623 www.it-ebooks.info xxxiii Introduction 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, nished 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 dierent disciplines, its eects 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. Who This Book Is For is book is for anyone interested in improving the development eorts in their organizations. It doesn’t matter if you are a manager, developer, tester, Scrum Master, or anything else. You can all benet from what you will learn here. e Application Lifecycle Management process includes anyone involved in the lifecycle of an application, and Team Foundation Server 2012 and Visual Studio 2012 have something for each and every one of you. Maybe the most important lesson is that you are all working on the same team, and you are all responsible for the outcome of your development process. is realization cannot come from a tool like Team Foundation Server or Visual Studio. It is something that you need to gure out all by yourself. How This Book Is Structured is book is split into seven parts that will show you how you can use Visual Studio and Team Foundation Server (TFS) 2012 to implement an Application Lifecycle Management (ALM) process in your organization. Part I explains what Application Lifecycle Management is and what problems it aims to solve. We also cover dierent project management processes and frameworks so that you can select the most appropriate for your organization. Part II focuses on agile project management and how Visual Studio and Team Foundation Server 2012 can help by supporting an agile project management approach. Part III discusses the architecture features of Visual Studio and Team Foundation Server 2012. ere are several tools available that can help developers and architects in their daily work. Part IV covers the developer tools of Visual Studio and TFS 2012. Here you see how these tools integrate with an overall ALM process that enables you to gain better control of development eorts. Part V shows the testing features of Visual Studio and TFS 2012. It is intended for developers and testers alike. Part VI describes how to create an eective build and release process. Part VII focuses on Team foundation Server and covers its architecture and its extensibility, and not only on the Windows platform. www.it-ebooks.info xxxiv ■ intRoduCtion Contacting the Authors Should you have any questions or comments—or spot a mistake you think we should know about—you can contact the authors at Rossberg@gmail.com or mathias@olausson.net. www.it-ebooks.info Part I Application Lifecycle Management Part I of this book covers the concept of Application Lifecycle Management (ALM). We show you what ALM is and why it matters, as well as how it can help you and your organization be more efficient in your development efforts. We also take a look at some of the most common development processes and frameworks available to run projects. Choosing the best process is important for the success of any project. There has been a movement towards agile frameworks in recent years, leaving waterfall and RUP behind in many organizations. Before you try to implement an ALM process in your organization it is important to know what the pains in the current processes are. By performing an ALM assessment you can evaluate where you need to focus and come up with an action plan tailored for your needs. Last but not least, you see how Visual Studio 2012 and Team Foundation Server 2012 can help to implement an effective and successful ALM solution. www.it-ebooks.info 3 Chapter 1 Why Application Lifecycle Management Matters Modern organizations depend on software and software systems in many ways. Business processes are often implemented in a digital flow and without software to support this, even small companies would experience problems. For most companies, the world has changed quickly in the last few years and they need to adapt constantly. If you want it these days, information is available at your fingertips all the time. Remember the days back when we were teenagers? Music and movies were, and always will be, two of the top interests. This obsession started during the teen years, and we chased rare records of favorite artists and hard-to-find horror movies everywhere. When a rare vinyl pressing of a precious record from the United States was found, for instance, we were ecstatic. Not to mention the emotional turmoil when we managed to purchase a Japanese edition of the same record. Those days we wrote snail mail asking for mail-order record catalogs from all over the world, based on ads in magazines such as Rolling Stone or Melody Maker. After carefully considering what we wanted to purchase, we wrote down the purchase order, enclosed crisp bills, and sent a letter with the order inside. Then came the long wait for the package. And believe you me, this wait could be long indeed. Nowadays we just access the Internet, check some sites, and directly purchase what we want by using a credit card. The stock of many sites is so huge compared to what it was in our teens, and we can usually find what we want very quickly. In a few days the package comes, and we can start using the things we bought. We communicate differently as well. Sites such as Facebook, Twitter, and so on have generated millions of followers, not only by the early adopters of technology, but by our societies as a whole. The numbers of smartphones (iPhone, Android devices, Windows Phone, and more), tablets, and other means of communication practically have exploded, at least in the parts of the world where the infrastructure for this is available. With the new opportunities organizations have to do business, much has changed in the world for us, including the reality for our companies. Companies now have to deal with a global environment, presenting both opportunities and challenges. Business has changed and still is changing at a rapid pace. We need to be clear on why we develop business systems and software. For companies, development of software has changed as well. Nowadays many organizations have large development teams working on software to support the business. Many times the teams are spread globally. This poses many potential problems, such as collaboration issues, source code maintenance, requirements management, and so on. Without processes to support modern software development, business will likely suffer. Development teams in organizations use new collaboration tools such as Visual Studio Team Foundation Server, the focus of this book. TFS, as it is generally called, is an Application Lifecycle Management (ALM) platform tying together a company’s business side with its information technology (IT) side. Application Lifecycle Management itself is, briefly, the process an organization uses to care for an application or software system from its conception to its retirement. ALM is the glue that ties together the development processes and defines the efforts necessary to coordinate the process. www.it-ebooks.info CHAPTER 1 ■ WHY APPLICATION LIFECYCLE MANAGEMENT MATTERS 4 Understanding the Cornerstones of Business First let’s define the term business. What do we mean when we talk about this concept? After agreeing on this, we can reach an understanding of what business software is so we don’t talk about two different things here. When we discuss business in this book, we are talking about not only the commercial part of the company, but all the functions in the company. This means that business software is intended not only for e-commerce, but for all the functions in an enterprise. There are three cornerstones in business system development that are important: Processes• Business rules• Information• These three are dependent on each other. Think about it this way. Let’s makes an analogy with the human body. If the processes are the muscles of our company and the rules are the brain and nervous system, we can say that the information can be seen as the spine. None of them could function without the others. Processes A company uses different processes to support its business. For developers, project managers, software designers, or people with other roles in a development project, it is easy just to focus on the development process. We are often interested in development processes such as the Scrum process or the Extreme Programming (XP) process. The business people mostly focus on the business side of course, and have no interest in learning about the development process. Of course, a large company needs processes for procurement, sales, manufacturing, and so on, and the development process is just one of them. The other processes are needed for the company to function and survive. Obviously, business processes are valid not only for commercial companies but for all organizations, including those in the public sector. SCrUM, Xp, aND rUp In case you don’t have the full picture of what Scrum, eXtreme Programming (XP), or Rational Unified Process (RUP) are, we will cover them later in this section. For now, suffice it to say that all three are development process models you can use for controlling your development efforts in projects. Scrum is an iterative and incremental agile software development method for managing software projects and product or application development (http://en.wikipedia.org/wiki/Scrum_(development)). Although Scrum was intended to be for management of software development projects, it can be used in running software maintenance teams, or as a program management approach. Scrum is a process skeleton that includes a set of practices and predefined roles. The main roles in scrum are the scrum master, who maintains the processes and works similar to a project manager; the product owner, who represents the stakeholders; and the team, which includes the developers. During each sprint, a 1530 day period (length decided by the team), the team creates an increment of www.it-ebooks.info [...]... Shaw, Application Lifecycle Management and PPM,” June 2007, www.serena.com 10 www.it-ebooks.info CHAPTER 1 ■ Why Application Lifecycle Management Matters ALM and PPM Financial Management Application Portfolio Management Project Management PPM Resource Management Demand Management Figure 1-2.  ALM and PPM Forrester says, “PPM provides a fact-based process for evaluating, prioritizing, and monitoring projects... implement process improvement and show the level of maturity of a process.1 CMMI can be used to guide process improvement across a project, a division, or an entire organization The model helps integrate traditionally separate organizational functions, set process improvement goals and priorities, provide guidance for quality processes, and provide a point of reference for appraising current processes... book Agile Software Engineering with Visual Studio: From Concept to Continuous Feedback 2nd Edition (Addison-Wesley Professional, 2011), Sam Guckenheimer calls the way of breaking down the project into work tasks a work-down approach because it is easy to see this as a way of burning down a list of tasks This method of managing projects, he argues, is great for projects with low risk, low variance, and... the whole ALM process Both pieces are also something that should be thought of when planning a development project from the beginning; we cannot have one without the other The Application Portfolio Management View The third view we will look at is the Application Portfolio Management (APM) view of ALM In this view, we see the application as a product managed as part of a portfolio of products We can... of Project Portfolio Management (PPM), which we talked about in Chapter 1 Figure 2-4 describes this process PMI view of ALM Upgrade Divestment The Product Business Plan Lifecycle The Project Lifecycle Pr od u a Ide ct Operations Initial Intermediate Final Figure 2-4.  The PMI view of ALM 25 www.it-ebooks.info t This view comes from the Project Management Institute (PMI) Managing resources and the projects... the product lifecycle starts with a business plan—the product is the application or system that is one part of the business plan An idea for an application is turned into a project and carried out through the project phases, until it is turned over to operations as a finished product When business requirements change or a new release (an upgrade in this figure) is required for some other reason, the project... implementations concern resource management integration with TFS Project Size Project size could also affect the outcome of the projects This is perhaps no surprise, because complexity usually increases when project size increases It is hard to manage a project that has many people involved or a long timeline If you combine a large project size with geographically spread project teams or members, keeping it all from... www.it-ebooks.info Chapter 2 Introduction to Application Lifecycle Management What do you think about when you hear the term Application Lifecycle Management, or ALM as it is usually referred to? During a seminar tour in 2005 in Sweden presenting Visual Studio Team System, we asked people what ALM was and whether they cared about it To our surprise, many people equated ALM with operations and maintenance This... defined for it.” When we see ALM from this perspective, it focuses on the life of an application or system in a production environment If in the SDLC view the development lifecycle started with the decision to go ahead with the project, here it starts with deployment into the production environment Once deployed, the application is operated by the operations crew Bug fixes and change requests are handled... development projects The engineering discipline is also rigorous in its requirements management process, which helps a lot You don’t see as many changes to requirements during the process, and the ones that do occur go through a comprehensive change request process Many companies use Capability Maturity Model Integration (CMMI) to improve their process and thus be better at controlling projects CMMI . will learn here. e Application Lifecycle Management process includes anyone involved in the lifecycle of an application, and Team Foundation Server 2012 and Visual Studio 2012 have something. can use Visual Studio and Team Foundation Server (TFS) 2012 to implement an Application Lifecycle Management (ALM) process in your organization. Part I explains what Application Lifecycle Management. project management and how Visual Studio and Team Foundation Server 2012 can help by supporting an agile project management approach. Part III discusses the architecture features of Visual Studio

Ngày đăng: 05/05/2014, 12:04

Từ khóa liên quan

Mục lục

  • Pro Application Lifecycle Management with Visual Studio 2012

    • Contents at a Glance

    • Contents

    • About the Authors

    • About the Technical Reviewers

    • Acknowledgments

    • Introduction

      • Who This Book Is For

      • How This Book Is Structured

      • Contacting the Authors

      • Part I: Application Lifecycle Management

        • Chapter 1: Why Application Lifecycle Management Matters

          • Understanding the Cornerstones of Business

            • Processes

            • Business Rules

            • Information

            • Understanding the Need for Business Software

            • Today’s Business Environment and the Problems We Face

              • Project Health Today: Three Criteria for Success

              • Projects Delivered on Time

              • Projects Delivered on Budget

              • Project Goal Fulfilled

              • Factors Influencing Projects and Their Success

              • The Gap Between Business and IT

              • The Development Process

              • Geographic Spread

Tài liệu cùng người dùng

Tài liệu liên quan