did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780201741179

Software Configuration Management Patterns Effective Teamwork, Practical Integration

by ;
  • ISBN13:

    9780201741179

  • ISBN10:

    0201741172

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2002-11-04
  • Publisher: Addison-Wesley Professional

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
  • Complimentary 7-Day eTextbook Access - Read more
    When you rent or buy this book, you will receive complimentary 7-day online access to the eTextbook version from your PC, Mac, tablet, or smartphone. Feature not included on Marketplace Items.
List Price: $62.99 Save up to $34.31
  • Rent Book $36.85
    Add to Cart Free Shipping Icon Free Shipping

    TERM
    PRICE
    DUE

    7-Day eTextbook Access 7-Day eTextbook Access

    USUALLY SHIPS IN 24-48 HOURS
    *This item is part of an exclusive publisher rental program and requires an additional convenience fee. This fee will be reflected in the shopping cart.

Supplemental Materials

What is included with this book?

Summary

Effective software configuration management (SCM) strategies promote a healthy, team-oriented culture that produces better software. Software Configuration Management Patterns alleviates software engineers' most common concerns about software configuration management-perceived rigidity and an overemphasis on process. Through the use of patterns, the authors show that a properly managed workflow can avert delays, morale problems, and cost overruns. The patterns approach illustrates how SCM can be easily and successfully applied in small- to mid-size organizations. By learning how these patterns relate to each other, readers can avoid common mistakes that too often result in frustrated developers and reduced productivity. Key coverage includes instruction on how to: Develop the next version of a product while fixing problems with the current one. Develop code in parallel with other developers and join up with the current state of codeline. Identify what versions of code went into a particular component. Analyze where a change happened in the history of a component's development. Use current tools more effectively, and decide when to use a manual process. Incrementally introduce good practices into individual workspaces and throughout the organization. Identify crucial aspects of the software process so that team projects can run smoothly. Build and foster a development environment focused on producing optimal teamwork and quality products. Software Configuration Management Patterns also includes a detailed list of SCM tools and thorough explanations of how they can be used to implement the patterns discussed in the book. These proven techniques will assist readers to improve their processes and motivate their workforce to collaborate in the production of higher quality software. 0201741172B09202002

Author Biography

Stephen P. Berczuk has been developing objectoriented software applications since 1989 Brad Appleton has been a software developer since 1987

Table of Contents

List of Figuresp. xi
Forewordp. xiii
Prefacep. xvii
Contributor's Prefacep. xxiii
Acknowledgmentsp. xxv
Introductionp. xxvii
Backgroundp. 1
Putting a System Togetherp. 3
Balancing Stability and Progressp. 4
The Role of SCM in Agile Software Developmentp. 7
SCM in Contextp. 8
SCM as a Team Support Disciplinep. 11
What Software Configuration Management Isp. 13
The Role of Toolsp. 15
The Larger Wholep. 16
This Book's Approachp. 16
Unresolved Issuesp. 17
Further Readingp. 17
The Software Environmentp. 19
General Principlesp. 20
What Software Is Aboutp. 22
The Development Workspacep. 25
Architecturep. 25
The Organizationp. 28
The Big Picturep. 30
Further Readingp. 31
Patternsp. 33
About Patterns and Pattern Languagesp. 34
Patterns in Softwarep. 36
Configuration Management Patternsp. 37
Structure of Patterns in This Bookp. 39
The Pattern Languagep. 40
Overview of the Languagep. 41
Unresolved Issuesp. 45
Further Readingp. 45
The Patternsp. 47
Mainlinep. 49
Simplify Your Branching Modelp. 54
Unresolved Issuesp. 57
Further Readingp. 57
Active Development Linep. 59
Define Your Goalsp. 63
Unresolved Issuesp. 66
Further Readingp. 66
Private Workspacep. 67
Isolate Your Work to Control Changep. 72
Unresolved Issuesp. 77
Further Readingp. 77
Repositoryp. 79
One Stop Shoppingp. 82
Unresolved Issuesp. 86
Further Readingp. 86
Private System Buildp. 87
Think Globally by Building Locallyp. 91
Unresolved Issuesp. 95
Further Readingp. 95
Integration Buildp. 97
Do a Centralized Buildp. 100
Unresolved Issuesp. 102
Further Readingp. 102
Third Party Codelinep. 103
Use the Tools You Already Havep. 106
Unresolved Issuesp. 110
Further Readingp. 110
Task Level Commitp. 111
Do One Commit per Small-Grained Taskp. 113
Unresolved Issuesp. 114
Codeline Policyp. 117
Define the Rules of the Roadp. 120
Unresolved Issuesp. 122
Further Readingp. 122
Smoke Testp. 123
Verify Basic Functionalityp. 125
Unresolved Issuesp. 127
Further Readingp. 127
Unit Testp. 129
Test the Contractp. 131
Unresolved Issuesp. 132
Further Readingp. 133
Regression Testp. 135
Test for Changesp. 138
Further Readingp. 139
Private Versionsp. 141
A Private Historyp. 144
Release Linep. 147
Branch before Releasingp. 151
Further Readingp. 151
Release-Prep Code Linep. 153
Branch Instead of Freezep. 155
Unresolved Issuesp. 156
Task Branchp. 157
Handling Long-Lived Tasksp. 158
Use Branches for Isolationp. 160
Referenced Patternsp. 163
Named Stable Basesp. 164
Daily Build and Smoke Testp. 164
SCM Resources Onlinep. 165
The Configuration Management Yellow Pagesp. 165
CM Crossroads--Online Community and Resource Center for CM Professionalsp. 165
CM Today--Daily Configuration Management Newsp. 166
UCM Central--Unified Configuration Managementp. 166
ACME--Assembling Configuration Management Environments (for Software)p. 166
The Software Engineering Institute's SCM Publicationsp. 167
Steve Easterbrook's Configuration Management Resource Guidep. 167
The Software Configuration Management FAQp. 167
The Association for Configuration and Data Managementp. 168
Software Engineering Resource List for Software Configuration Mangementp. 168
R.S. Pressman and Associates Software Engineering Resources for SCMp. 168
SEweb Software Configuration Management Resources at Flinders Universityp. 168
Pascal Molli's "CM Bubbles" SCM Resources Pagep. 168
The Usenet Newsgroup comp.software.config-mgmtp. 169
Tool Support for SCM Patternsp. 171
VSS--Visual Source Safep. 173
CVS--The Concurrent Versions Systemp. 175
Perforcep. 177
BitKeeperp. 179
AccuRevp. 181
ClearCase--base functionality (non-UCM)p. 183
ClearCase--Unified Change Management (UCM)p. 185
CM Synergyp. 186
StarTeamp. 188
PVCS Dimensionsp. 189
PVCS Version Managerp. 190
MKS Integrity (Enterprise edition)p. 192
Further Readingp. 193
Table of Contents provided by Syndetics. All Rights Reserved.

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Excerpts

Software configuration management is not what I do. I am not a software configuration management person. I am not an organizational anthropology person. However, I discovered early on that understanding organizations, software architecture, and configuration management was essential to doing my job as a software developer. I also find this systems perspective on software engineering interesting. I build software systems, and configuration management is a very important and often neglected part of building software systems. In this book, I hope that I can show you how to avoid some of the problems I have encountered so that you can build systems more effectively with your team. I should probably explain what I mean in distinguishing between software configuration management (SCM) people and people who build software systems. The stereotype is that configuration management people are concerned with tools and control. They are conservative, and they prefer slow, predictable progress. They are also "the few" as compared with "the many" developers in an organization. Software engineers (so the stereotype goes) are reckless. They want to build things fast, and they are confident that they can code their way out of any situation. These are extreme stereotypes, and in my experience, the good software engineers and the good release/quality assurance/configuration management people have a common goal: They are focused on delivering quality systems with the least amount of wasted effort. Good configuration management practice is the not the silver bullet to building systems on time, nor are patterns, Extreme Programming (XP), the Unified Process, or anything else that you might hear about. It is, however, a part of the toolkit that most people ignore because they fear "process," often because of bad experiences in the past (Weigers 2002). This book describes some common software configuration management practices. The book will be particularly interesting to software developers working in small teams who suspect that they are not using software configuration management as effectively as they can. The techniques that we describe are not tool specific. As with any set of patterns or best practices, the ease with which you can apply the patterns may depend on whether your tool explicitly supports them. Why I Wrote This Book I started my software development career with a small R&D group based in the Boston area. Aside from the many interesting technical problems we encountered as part of our jobs, we had the added twist of having joint development projects with a group in our parent company's home base in Rochester, New York. This experience helped me recognize early in my career that software development wasn't just about good design and good coding practices but also about coordination among people in the same group and even teams in different cities. Our group took the lead in setting up the mechanics of how we would share code and other artifacts of the development process. We used the usual things to make working together easier, such as meetings, teleconferences, and e-mail lists. The way we set up our (and the remote team's) software configuration management system to share code played a very large part in making our collaboration easier. The people who set up the SCM process for our Boston group used techniques that seemed to have been tried throughout their careers. As I moved on to other organizations, I was amazed to find how many places were struggling with the same common problemsproblems that I knew had good solutions. This was particularly true because I had been with a number of start-ups that were only one or two years old when I joined. One to two years is often the stage in a start-up where you are hiring enough people that coordination and shared vision are difficult goals to attain. A few years into my career, I discovered patterns. Erich Gamma, Richard Helm, Ral

Rewards Program