Organizational Patterns of Agile Software Development



Similar documents
Agile Software Development

Object-Oriented Systems Analysis and Design

How To Write A Diagram

COURSE OUTLINE. Track 1 Advanced Data Modeling, Analysis and Design

BUSINESS ANALYSIS FDR INTELLIGENCE

SOA Governance. Stephen G. Bennett, Clive Gee, Robert Laird, Co-authored and edited by Thomas Erl. Governing

The Unified Software Development Process

Engineering Design. Software. Theory and Practice. Carlos E. Otero. CRC Press. Taylor & Francis Croup. Taylor St Francis Croup, an Informa business

Design and Implementation

Agile Methods. Introduction to. AAddison-Wesley. Sondra Ashmore, Ph.D. Kristin Runyan. Capetown Sydney Tokyo Singapore Mexico City

CSE 435 Software Engineering. Sept 16, 2015

Requirements Engineering

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

AGILE GAME DEVELOPMENT WITH SCRUM

Assuming the Role of Systems Analyst & Analysis Alternatives

Master Data Management

Practical Experiences of Agility in the Telecom Industry

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture

The Role of the Software Architect

Basic Trends of Modern Software Development

LECTURE 1. SYSTEMS DEVELOPMENT

What is a life cycle model?

Managing the Unmanageable

Know your enemy. Class Objectives Threat Model Express. and know yourself and you can fight a hundred battles without disaster.

Master Data Management and Data Governance Second Edition

THE COMPLETE PROJECT MANAGEMENT METHODOLOGY AND TOOLKIT

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

The Evolving State of ESPM

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

How User Experience Fits in Agile

Terrace Consulting Services

Agile Techniques for Object Databases

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

SWX: The Software Extension to the PMBOK Guide for Project Management

Scope Management. It is not the strongest of the species that survive, nor the most intelligent, but the ones most responsive to change.

WHAT MAKES AGILE DEVELOPMENT DIFFERENT?: A CASE STUDY OF

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Obj ect-oriented Construction Handbook

Business Administration of Windchill PDMLink 10.0

Lecture Slides for Managing and Leading Software Projects. Chapter 1: Introduction

SECOND EDITION THE SECURITY RISK ASSESSMENT HANDBOOK. A Complete Guide for Performing Security Risk Assessments DOUGLAS J. LANDOLL

This course is intended for IT professionals who are responsible for the Exchange Server messaging environment in an enterprise.

Software Development Lifecycle. Steve Macbeth Group Program Manager Search Technology Center Microsoft Research Asia

Phase 2 Systems Analysis. Dr. Feng-Jen Yang

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Requirements Management

Visionet IT Modernization Empowering Change

Scale agile throughout the enterprise A PwC point of view

PARALLEL PROGRAMMING

Service Oriented Architecture (SOA) An Introduction

Independent Insight for Service Oriented Practice. An SOA Roadmap. John C. Butler Chief Architect. A CBDI Partner Company.

Government's Adoption of SOA and SOA Examples

ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS

Introduction. Acknowledgments Support & Feedback Preparing for the Exam. Chapter 1 Plan and deploy a server infrastructure 1

Configuration Management Patterns

Organizational Renewal: The Challenge of Change. Chapter 2

Comparing Plan-Driven and Agile Project Approaches

How To Understand The Software Development Lifecycle

Books in the FT Press Project Management Series

Five Core Principles of Successful Business Architecture. STA Group, LLC Revised: May 2013

STANDARD. Risk Assessment. Supply Chain Risk Management: A Compilation of Best Practices

EMPIRICAL STUDY OF THE EVOLUTION OF AGILE-DEVELOPED SOFTWARE SYSTEM IN JORDANIAN'S TELECOM

Introduction to the ITIL Service Management Framework

Agile Development. Redefining Management in Project Management. Neil Stolovitsky

Chapter 2 Critical Success Factors for Global Software Development

SOA Principles of Service Design

Software Requirements, Third Edition

JOURNAL OF OBJECT TECHNOLOGY

Windchill PDMLink Curriculum Guide

Hyper-Productive. Knowledge Work. Performance. The TameFlow Approach. and Its Application to. Serum and Kanban. Steve Tendon.

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

As the use of agile approaches

Masters of Science in Software & Information Systems

Organizational Behavior and Organizational Change Decisions. Roger N. Nagel Senior Fellow & Wagner Professor. Lehigh University

Development. Lecture 3

Instructional Design

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Contents 1 Overview 2 Introduction to WLS Management Services iii

Agile Software Development and Service Science

EMPLOYEE ENGAGEMENT STRATEGY: A STRATEGY OF ANALYSIS TO MOVE FROM EMPLOYEE SATISFACTION TO ENGAGEMENT

Transcription:

Organizational Patterns of Agile Software Development James O. Coplien Neil B. Harrison PEARSON Prentice Hall Upper Saddle River, NJ 07458

Contents PART I History and Introduction 1 1 An Overview of Patterns and Organizational Patterns 3 1.1 What Are Patterns? 3 1.1.1 Team Per Task** 5 1.2 What Are Pattern Languages? 6 1.3 Organizational Pattern Languages 8 1.3.1 The Structure of Social Systems 8 1.3.2 The Multiple Structures of Social Systems 8 1.3.3 Pattern Languages and Sequences 9 2 How the Patterns Came to Us 11 2.1 Gathering Organizational Data 12 2.1.1 Introspection in and Analysis of Organizations 12 2.1.2 Shortcomings of State of the Art 13 2.1.3 The CRC Card Methodology 14 2.1.4 Analyzing Roles and Relationships 16 2.2 Creating Sequences 18 2.2.1 Why Sequences Are Important 18 2.2.2 Our Sequences 19 2.3 History and Related Work 20

xiv Contents 3 How to Use This Book 22 3.1 Reading the Patterns 22 3.1.1 The Form 22 3.1.2 Understanding the Models Behind the Patterns 22 3.1.3 Stories and Pictures in the Patterns 25 3.1.4 Finding Your Way 26 3.2 Applying the Patterns 26 3.2.1 Sequences 26 3.2.2 Which Patterns? 26 3.2.3 Human Concerns 27 3.3 Updating the Patterns 27 3.4 Who Should Use This Book? 27 PART II The Pattern Languages 29 4 Organization Design Patterns 31 4.1 Project Management Pattern Language 31. 1 Community of Trust ** 34.2 Size the Schedule ** 36.3 Get On with It ** 38.4 Named Stable Bases * 42.5 Incremental Integration ** 44 4.1.6 Private World ** 46 4.1.7 Build Prototypes ** 49 4.1.8 Surrogate Customer 53 4.1.9 Take No Small Slips ** 54 4.1.10 Completion Headroom ** 56 4.1.11 Work Split* 58 4.1.12 Recommitment Meeting * 60 4.1.13 Work Queue * 62 4.1.14 Informal Labor Plan ** 64 4.1.15 Development Episode * 66 4.1.16 Implied Requirements 68 4.1.17 Developer Controls Process ** 70 4.1.18 Work Flows Inward ** 73 4.1.19 Programming Episodes ** 78 4.1.20 Someone Always Makes Progress* 80 4.1.21 Team Per Task ** 82 4.1.22 Sacrifice One Person * 85 4.1.23 Day Care * 88 4.1.24 Mercenary Analyst * 92

Contents xv 4.1.25 Interrupts Unjam Blocking ** 96 4.1.26 Don't Interrupt an Interrupt * 98 4.2 Piecemeal Growth Pattern Language 99 4.2.1 Community of Trust 102 4.2.2 Size the Organization ** 103 4.2.3 Phasing It In ** 106 4.2.4 Apprenticeship * 108 4.2.5 Solo Virtuoso * 110 4.2.6 Engage Customers ** 112 4.2.7 Surrogate Customer * 116 4.2.8 Scenarios Define Problem * 118 4.2.9 Firewalls ** 120 4.2.10 Gatekeeper ** 122 4.2.11 Self-Selecting Team ** 124 4.2.12 Unity of Purpose ** 126 4.2.13 Team Pride ** 128 4.2.14 Skunk Works * 130 4.2.15 Patron Role ** 133 4.2.16 Diverse Groups * 135 4.2.17 Public Character ** 137 4.2.18 Matron Role * 140 4.2.19 Holistic Diversity * 142 4.2.20 Legend Role * 145 4.2.21 Wise Fool * 148 4.2.22 Domain Expertise in Roles ** 150 4.2.23 Subsystem by Skill * 152 4.2.24 Moderate Truck Number 155 4.2.25 Compensate Success ** 158 4.2.26 Failed Project Wake * 162 4.2.27 Don't Interrupt an Interrupt 164 4.2.28 Developing in Pairs ** 165 4.2.29 Engage Quality Assurance ** 168 4.2.30 Application Design Is Bounded by Test Design * 171 4.2.31 Mercenary Analyst 173 4.2.32 Group Validation * 174 5 Organization Construction Patterns 176 5.1 Organizational Style Pattern Language 176 5.1.1 Community of Trust 179 5.1.2 Few Roles ** 180 5.1.3 Producer Roles * 182 5.1.4 Producers in the Middle ** 184

xvi Contents 5.1.5 Stable Roles * 187 5.1.6 Divide and Conquer ** 189 5.1.7 Conway's Law ** 192 5.1.8 Organization Follows Location ** 194 5.1.9 Organization Follows Market * 197 5.1.10 Face to Face Before Working Remotely ** 199 5.1.11 Form Follows Function 202 5.1.12 Shaping Circulation Realms * 204 5.1.13 Distribute Work Evenly * 206 5.1.14 Responsibilities Engage 209 5.1.15 Hallway Chatter * 213 5.1.16 Decouple Stages 217 5.1.17 Hub, Spoke, and Rim 219 5.1.18 Move Responsibilities * 222 5.1.19 Upside-Down Matrix Management * 224 5.1.20 The Watercooler * 226 5.1.21 Three to Seven Helpers Per Role 229 5.1.22 Coupling Decreases Latency * 231 5.1.23 Standards Linking Locations 234 5.2 People and Code Pattern Language 235 5.2.1 Community of Trust 237 5.2.2 Conway's Law 238 5.2.3 Architect Controls Product ** 239 5.2.4 Architecture Team * 241 5.2.5 Lock 'em Up Together * 243 5.2.6 Smoke-Filled Room 245 5.2.7 Stand-Up Meeting ** 247 5.2.8 Deploy along the Grain ** 250 5.2.9 Subsystem by Skill 253 5.2.10 Architect Also Implements ** 254 5.2.11 Generics and Specifics 257 5.2.12 Standards Linking Locations ** 259 5.2.13 Code Ownership ** 261 5.2.14 Feature Assignment * 264 5.2.15 Variation Behind Interface ** 266 5.2.16 Private Versioning ** 268 5.2.17 Loose Interfaces ** 270 5.2.18 Subclass Per Team 272 5.2.19 Hierarchy of Factories 274 5.2.20 Parser Builder * 278 5.2.21 Incremental Integration 281 5.2.22 Private World 282 5.2.23 Named Stable Bases 283

Contents xvii PART 111 Foundations and History 285 6 Organizational Principles 287 6.1 Priming the Organization for Change 287 6.1.1 Dissonance Precedes Resolution 288 6.1.2 Team Burnout 288 6.1.3 Stability and Crisis Management 290 6.1.4 The Open/Closed Principle Of Teams 293 6.1.5 Team Building 295 6.1.6 Building on the Solid Core 297 6.2 Piecemeal Growth 297 6.2.1 The Fundamental Process 299 6.2.2 When Do I Apply These Patterns? 301 6.2.3 Writing Your Own Patterns 301 6.2.4 Master Planning and the Theory of Constraints 301 6.2.5 Communication and Organizational Learning 302 6.3 Some General Rules 302 6.3.1 Make Love, Not War 302 6.3.2 Organizational Patterns Are Inspiration Rather than Prescription... 303 6.3.3 It Depends on Your Role in Your Organization 303 6.3.4 It Depends on the Context of the Organization 303 6.3.5 Organizational Patterns Are Used by Groups Rather Than by Individuals 304 6.3.6 People Are Less Predictable Than Code 304 6.3.7 The Role of Management 305 7 Anthropological Foundations 307 7.1 Patterns In Anthropology 307 7.2 Beyond Process to Structure and Values 309 7.2.1 The Shortcomings of Process 309 7.2.2 Structure 310 7.2.3 Values: The Human Element 311 7.3 Roles and Communication 311 7.4 Social Network Analysis 312 7.5 Distilling the Patterns 313 7.5.1 CRC Cards and Roles 313 7.5.2 Social Network Theory Foundations 314 7.5.3 Scatterplots and Patterns 318

xviii Contents PART IV Case Studies 321 8 Borland Quattro Pro for Windows 323 8.1 Introduction to the QPWCase Study 323 8.2 Origins and Description of QPW 324 8.3 Analysis of QPWData 327 8.4 Personal Excellence and Integrity 330 8.5 Do One Thing and Do It Well 330 8.6 A Piecemeal Architecture Process 331 8.7 Personality and Development 332 8.8 No Wine Before Its Time 333 8.9 Create Rather Than Conform 333 8.10 California Gold Rush? 334 8.11 Introspection by the Team 334 8.12 Process and Quality 335 8.13 Concluding Thoughts about QPW 336 9 A Hyperproductive Telecommunications Development Team 338 9.1 The Culture 339 9.2 The Development Process 340 9.3 The Pasteur Analysis of the Process 340 9.4 The Human Side 342 9.4.1 Engineering People Issues into the Process 342 9.4.2 Code Ownership and Programming Anthropomorphism 343 9.4.3 Growing a Garden 344 9.4.4 Rewarding Excellence 344 9.5 The Small Team Spirit 345 9.6 Process Improvement Opportunities 345 9.7 Thoughts and Conclusions 346 A Summary Patlets 349 A.I Project Management Patlets 349 A.2 Piecemeal Growth Patlets 352 A.3 Organizational Style Patlets 356 A.4 People and Code Patlets 359 A.5 Patlets from Other Pattern Languages 362 A.5.1 Arranging the Furniture 362 A.5.2 Ad-Hoc Corrections 363 A.5.3 All at Once 363 A.5.4 Architecture Definition Team 363 A.5.5 Balanced Team 363 A.5.6 Business Process Model 363

Contents xix A.5.7 Clear the Fog 363 A.5.8 Creator-Reviewer 363 A.5.9 Demo Prep 364 A.5.10 Designers Are Our Friends 364 A.5.11 Early and Regular Delivery 364 A.5.12 Establish the Business Objectives 364 A.5.13 Get Involved Early 364 A.5.14 Gradual Stiffening 364 A.5.15 Guru Does All 365 A.5.16 Market Walkthrough 365 A.5.17 Master-Journeyman 365 A.5.18 Microcosm 365 A.5.19 Owner per Deliverable 365 A.5.20 Participating Audience 365 A.5.21 Peacemaker 366 A.5.22 Product Initiative 366 A.5.23 Prototypes 366 A.5.24 Query Objects 366 A.5.25 Shared Clear Vision 366 A.5.26 Shearing Layers 366 A.5.27 Small Writing Team 367 A.5.28 Skill Mix 367 A.5.29 Work Allocation 367 A.5.30 Work Group 367 B Bibliography 368 C Photo Credits 379 Index 385