1st Edition

Enterprise-Scale Agile Software Development

By James Schiel Copyright 2010
    382 Pages 62 B/W Illustrations
    by CRC Press

    382 Pages 62 B/W Illustrations
    by CRC Press

    Enterprise-Scale Agile Software Development is the collective sum of knowledge accumulated during the full-scale transition of a 1400-person organization to agile development—considered the largest implementation of agile development and Scrum ever attempted anywhere in the world.

    Now James Schiel, a certified Scrum trainer and member of the Scrum Alliance, draws from his experience at the helm of that global four-year project to guide you and your organization through the transition. He lends his insight on how you can use Scrum as an organizational framework and implement XP practices to define how software is written and tested. He provides key information and tools to assess potential outcomes and then make the best corresponding choices in any given situation.

    Schiel sequences chapters to match typical developmental progression, and in addition to practical guidance, he provides a tool kit from which you can take ideas and select what works for you. Covering quality development practices based on ISO 9001, which help you create consistently high-quality software in a cost-efficient manner, this invaluable resource shows you how to—

    • Improve project management practices and product quality assurance
    • Adopt new management methods and requirements
    • Involve your current customers in development, while inviting new ones

    Much more than a mere "body of knowledge," this volume goes beyond standardizing agile and Scrum practices. It breaks up the process into manageable tasks, illustrating how to set the stage for the change, plan it, and then initiate it. Using the methods and information presented, any organization should be able to achieve a nearly seamless transition to agile.

    Introduction
    Web Site
    About This Book
    A Balancing Act
    Audience
    Success Factors
    Suggested Readings
     
    Why Agile?
    Myths about Agile Development
    Reasons to Stay Away from Agile
    How Your Organization Will Benefit from Agile
    Improved Software Quality
    Improved Organizational Commitment
    Reduced Waste
    Improved Customer Relationships

    Section I: Setting the Stage for a Transition
    Transitional Concepts
    What Is Agile Development?
    Workflow
    Product Backlog
    Prioritization
    Grooming
    Sprinting
    Beta Test
    Defects
    Workflow Summary
    The Product Backlog
    Written in a Manner That Can Be Groomed
    Under Constant Reprioritization and Continually Emergent
    Transition Barriers
    People Barriers
    Organizational Barriers
    Management in an Agile Environment
    Getting Management Ready for the Transition
    An Effective Organizational Arrangement for Scrum Teams
    Hiring New Scrum Team Members
    The Care and Feeding of Scrum Teams
    Tampering
    Ignoring
    Improve Organization Performance
    Improve Scrum Team Performance
    Improve Employee Performance
    Support Scrum Teams
    Care and Feeding: Summary

    Section II: Planning the Transition
    Create the Transition Team
    The Transition Team Lead
    The Executive Sponsor
    Define the Organizational Agreements
    Document the Agreements
    Determine Transition Goals
    Measuring and Monitoring the Transition
    Improved Productivity through Reduced Defects
    Improved Performance through Increased Feature Value
    Setting Control Limits to Manage Corrective Actions
    Avoiding Organizational Dysfunction Caused by Measurements
    Create the Transition Backlog
    Bringing the Transition Team Together

    Section III: Starting the Transition
    Exciting and Really Challenging
    Basic Approach
    Beginning Transition Sprint 1
    The Sprint Schedule
    The Transition Backlog
    The Structure of the Transition Backlog
    Grooming: Reducing Backlog Items to Sprint Size
    Sprint Planning
    What’s the Big Difference between Hours and Points?
    Building the Sprint Backlog
    When Teams Attack! (The Backlog, That Is)
    When Undercommitment Is the Order of the Day
    Committing to Work in the First Transition Sprint
    Sprint Reviews for Transition Sprints
    Sprint Retrospectives for Transition Sprints
    Continuing beyond Transition Sprint 1
    Create the Transition Budget
    Training and Coaching
    Software and Hardware
    Facilities
    Travel
    People
    Develop the Transition Communication Plan
    Project Information Storage
    Create the Training Plan
    Basic Concepts
    Agile Project Structure
    Roles in an Agile Project
    Matching Skills to Roles
    Skills Become Training Modules
    The Training Modules
    Defining the Tracks
    Executing the Tracks
    The Role of Coaches in the Agile Transition
    Team Coaching Requirements
    Overload the Scrum Teams
    Scrum Masters and Scrum Product Owners
    Prove Your Skill First
    Facilities Planning
    Team Rooms
    Size
    Location
    Noise
    Setting Up a Team Room
    Employee Directories
    Employee Telephones
    Private Spaces
    Server Rooms
    The Facilities Plan
    Selecting the Pilot Projects for the Agile Transition
    Define Your Goals
    Set Organizational Expectations
    Selecting Your Pilot Project
    Obstacles to a Successful Pilot Project
    Dysfunctions Come with the Territory
    Team Co-location
    Lack of Expertise or Necessary Skills
    Improper Development Metrics
    Setting Your Project Up for Success
    People First
    Everyone Needs to Know Their Job
    Introduce XP Practices Carefully
    Get a Good Product Owner
    Keep It Visible
    Never Skip the Retrospective
    Tools in the Agile Enterprise
    Continuous Integration/Build
    Requirements
    Sample Products
    Automated Testing
    Requirements
    Sample Products
    Sprint and Backlog Management
    Requirements
    Sample Products
    Team Communication
    Managing Customer Involvement
    Selecting the Right Customer
    Is the Candidate Qualified?
    Is the Candidate a Potential Threat?
    Will the Candidate Cooperate?
    Managing the Involved Customer
    The Helpful Customer Strategy: Involve
    The Not Useful Customer Strategy: Watch
    The Not Helpful Candidate Strategy: Protect
    The Helpful Trouble Customer Strategy: Collaborate
    Managing Customer Involvement in a Large Organization

    Section IV: Creating the Agile Organization
    Agile Project Management— Getting Started
    Scheduling in an Agile Project
    Scheduling Challenges
    Determining the Project’s Estimated Costs
    Planning and Staffing
    Specialization and the Unbalanced Backlog
    A Balancing Act
    Architecture Definition
    Unprepared Backlog Items
    Getting Your Project Started
    Creating the Release Goals
    Create/Update Defined Processes and Policies
    Create/Update the DONEness Definition
    Determine Team Staffing
    Prepare the Product Backlog for Grooming
    Create the Sprint Schedule
    Sprint Schedules and Large Project Considerations
    The Unwanted Stabilization Sprint
    When the Automated Testing Isn’t Sufficient
    Begin Backlog Grooming Work Sessions
    Agile Project Management: Monitoring, Reporting, and Controlling
    Monitoring Project Progress
    Burning Down the Product Backlog
    The Release Plan
    Feature Completion
    Controlling the Project
    Front-Load Your Risk
    Shorten Your Sprints to Improve Visibility
    Manage Interactions with Nonagile Development Teams and Providers
    Monitor Scope-outs
    Agile Analysis
    User Stories and Related Terminology
    The Life of a User Story
    The Next Great Idea
    Grooming the Product Backlog
    Avoiding the Waterfall User Story
    Making Sure the Backlog Is Ready for Grooming
    Scheduling the Workshops
    Setting Up the Workshop
    Discussing a Backlog Item
    Backlog Items That Need Special Handling
    Remembering What We’ve Learned
    Launching Scrum Teams
    Starting a New Scrum Team
    Establish a Team Identity
    Establish Team Ground Rules
    Establish Team DONEness Definition
    Preparing the Product Backlog: The Team’s First Sprint
    Getting Ready for Sprint Planning
    Running a Successful Daily Scrum
    Getting Ready for Sprint Review
    Going to the First Sprint Retrospective
    Removing Obstacles
    Continuous Learning
    Managing Scrum Teams
    The Edge of Chaos
    Management in a Chaotic System
    Continuous Learning
    Encourage Change and Chaos
    Fluidity of Structure
    Management in an Agile Environment
    The Front-Line Manager
    General Management Responsibilities
    Helping to Improve Team Performance
    Agile Product Management
    Large-Scale Product Ownership
    The Extended Product Backlog
    The Product Backlog
    The Information Library
    The Defect Management System
    Adding Items to the Product Backlog
    Adding Defects to the Product Backlog
    Setting Up Your Product Backlog Items for Success
    Estimation of Problem Complexity
    Acceptance Criteria
    Risk
    Value
    Performance Constraints
    Specialized Skills
    Prioritizing Items in the Product Backlog
    Managing System Constraints
    Incorporating ISO 9001 into the Agile Transition
    Setup
    Creating Your Policy and Process Documentation
    Development Processes
    Focusing on Customers
    Resource Management
    Infrastructure and Work Environment
    Measurement, Analysis, and Improvement
    Review and Revise
    Leveraging Scrum to Improve Process
    Using the DONEness Definition
    Using Sprint Planning
    Using Sprint Reviews
    Using Sprint Retrospectives
    Formal Reviews
    Index

    Biography

    James Schiel, CEO and owner of Artisan Software Consulting, is a Certified Scrum Trainer with a strong background in enterprise-level Scrum installations. Prior to founding Artisan, Schiel worked at a large, multi-national software development company for 23 years, where he worked initially as a developer, then as a manager for 16 years. He eventually played an instrumental role in creating one of the largest Scrum installations in the world. As a business process engineer, he helped identify, document, and implement best practices for enterprise Agile Development.