Higher Education

Integrating Agile Development In The Real World, 1st Edition

  • Peter Schuh
  • ISBN-10: 1584503645  |  ISBN-13: 9781584503644
  • 346 Pages
  • © 2004 | Published
  • College Bookstore Wholesale Price = $31.50



Have your software projects been suffering from the age-old development problems of slipped schedules and ballooning budgets? Has your development organization experienced a variety of failed and canceled projects? If so, you may benefit from infusing some agility into your development process. Agile development breaks with a 40-year tradition of applying ever more structure and formalization to the design and development of software by advocating a return to the basic principles of satisfied customers, working software, and the willingness to accept and respond to change. As the popularity of agile development has grown, IT professionals have begun to struggle with ways to integrate agile practices and processes into traditional project environments. Integrating Agile Development in the Real World provides programmers and managers with specific and implementable ways to use agile processes in everyday software development projects. Whether read cover-to-cover, or used as a field guide during an agile transition, this book provides valuable insight into how agile practices and processes may be applied in almost any environment. Everything from how to deliver a working system sooner, acknowledge and respond to change, better meet the needs of the project's customer, to increasing software quality, and fostering a more communicative and collaborative team culture are thoroughly covered.

Features and Benefits

  • Explore topics like refractoring, blitz planning, scrum meetings, and side-by-side programming that can be applied immediately rather than theory or idealized applications of agile development
  • Find dozens of tips and techniques to help foster more communication and collaboration within teams, and between teams and customers, users, stakeholders, and management
  • Learn to initiate, plan, execute, track, and report status on an agile project

Table of Contents

1 Agile Development Primer
What Is Agile Development?
The Agile Methodologies
Agile Values
Agile Practices
Agile Principles
2 Agile Characteristics
The Characteristics of an Agile Project
The Development Team
Agile Practices, Non-Agile Values
What Projects Can Benefit from Agile Development?
Starting Monday: Assessing Your Project Environment
3 The Agile Methodologies
Common Themes
Methodology Descriptions
Extreme Programming (XP)
Feature-Driven Development (FDD)
The Crystal Methodologies
Adaptive Software Development (ASD)
Dynamic Systems Development Method (DSDM)
Lean Software Development
Starting Monday: Investigate Further
4 Selecting an Approach That Fits
Choosing Between an Agile and a Traditional Approach
Selecting the Right Agile Approach
5 Going Agile
Is the Team Ready?
Announcing the Team’s Intention to Go Agile
Encountering, Addressing, and Overcoming Resistance
Starting with the Bare Minimum
Altering the Project Environment
Iteration Zero
Discontinue a Process Once It Has Served Its Purpose
False Agile Practitioners and Projects
Starting Monday: Measuring the Team’s Progress
6 Agile Practices
Where to Start?
Selecting the Next Practice
Rejecting a Practice
Adopt Practices Before Tools
Learn Programming Practices in Pairs
Agile Practices in This Book
7 Design and Programming
Implementing Agile Programming Practices
Practices for the Lone Agile Programmer
Misperceptions About Agile Design
Agile Practice: Build Automation
Agile Practice: Automated Deployment
Agile Practice: Continuous Integration
Agile Practice: Simple Design
Agile Practice: Collective Ownership
Agile Practice: Feature Teams
Agile Practice: Refactoring
Agile Practice: Pair Programming
Starting Monday: Go Slow
8 Testing
An Agile Approach to Testing
The Good Enough Approach
Testing as the Best Defense
Agile Practice: Automated Unit Testing
Agile Practice: Acceptance Tests
Agile Practice: Test-Driven Development
Starting Monday: Quick and Dirty Automated Testing
9 Data and the Database
Why Working with Data Is Tougher than Working with Code
The Agile DBA
Start with Something Simpler than a Database
Legacy Data Conversion
Test Data Management
Agile Practice: ObjectMother
Agile Practice: Mock Objects
Agile Practice: Agile Data Management
Starting Monday: Cultivate an Agile DBA
10 Agile Management
Contrasting Agile and Traditional Management
Continuous Planning
Continuous Evaluation
Binary Status Reporting
Sustainable Pace
Individual Empowerment
The Agile Project Manager
The Chapters on Agile Management
11 Features and User Stories
User Stories
Converting from Use Cases and Requirement Documents
Solution Sheets
12 Project Initiation
An Agile Approach to Project Initiation
Define the Project Mission
Gather a List of Features
Draw Up a Plan
Upfront Architecture and Modeling
Planning for the End
Agile Practice: Blitz Planning
13 Small Releases
The Agile Approach to the Project Release
Release Planning
Changing the Functionality and Delivery Date of a Release
Taking Time Between Releases
Tools for Planning and Tracking Releases
Requirements Tracing
Agile Practice: Planning Game
Starting Monday: Institute Small Releases
14 Executing Iterative Development
An Agile Approach to Iterative Development
Iteration Planning Meeting
Monitoring Progress Within the Iteration
Changing the End Date of the Current Iteration
Changing the Functionality of the Current Iteration
Abnormally Terminating an Iteration
Adapting the Iteration
Sprints and Other Releasable Iterations
Working Without Iterations
Agile Practice: The Task Cycle
Starting Monday: Begin Iterating
15 The Customer
Who Is the Customer?
An Agile Approach to the Customer
Getting a Customer
Challenging Customers
Agile Practice: Onsite Customer
Starting Monday: Build a Closer Relationship with Your Customer
16 Reviewing and Reporting Progress
Tracking Progress
Tracking Other Factors
Conducting Reviews
17 Communication and Collaboration
An Agile Approach to Communication and Collaboration
Engendering a Communicative and Collaborative Culture
Comparing the Daily Scrum and Stand Up Meetings
Agile Practice: Stand Up Meeting
Agile Practice: Daily Scrum Meeting
Agile Practice: Collocated Team
Starting Monday: Increase Communication
18 Documentation
The Perils of Documentation
An Agile Approach to Documentation
Poor Excuses for Documentation
Minimizing Documentation Requirements
Documentation at the Start of a Project
Design Documentation
An Agile WBS
Document Handoffs
Adding Documents
Starting Monday: Perform a Documentation Review
19 People
Making Change Palatable
The Honor System
Difficult Conversations
Hiring for Agile Projects
20 Real-World Environments
Heavy Process
Waterfall and Other Phased Approaches
Scaling for Big Projects
Project Recovery
Agile Contracts
Fixed Cost
21 Seeking Additional Assistance
Online Resources
Other Books
Courses, Certification, and Coaching
Ask the Author

Meet the Author

Author Bio

Peter Schuh

Peter Schuh (Chicago, IL) has held virtually every position on a software development project team, including project manager, programmer, DBA, business analyst, technical writer, and account manager. Most recently, he has managed IT projects in the leasing, healthcare and e-commerce fields. He has written and spoken about the integration of agile processes into non-agile project environments, Extreme Programming, and agile development¿s impacts upon database administration.