Course 311:
Adopting Agile Software Development Approaches

(5 days) 

 

Course Description

When a new system or new functionality for an existing system has to be created and be operational in days rather than months, the old waterfall processes become a bottleneck. The new Agile Development approaches are the antidote. These approaches produce high-quality, low-defect applications that are implemented in short, fixed timeframes. Emphasizing user involvement and lightweight process, the agile approaches offer an alternative method to development of software. This course provides an assessment of the Agile Development approaches.

Learning Objectives

  • Introduce the concept of development agility and the Agile Manifesto
  • Review each of the major agile development methods underscoring their strengths and weaknesses
  • Understand how to manage an agile environment even within a structured organizational approach
  • Learn how to introduce agility into a development organization

Who Should Attend

Managers, programmers, developers, executives, and anyone interested in learning the benefits of agile development.

Prerequisites

Knowledge of current development processes, such as structured top-down development and the waterfall method.


Course Outline

Unit 1: Introduction

  • Software Development Life Cycles
  • Mandatory Elements
  • Transitions
  • Traditional Life Cycle Models
  • Process-Oriented Development
  • CMM
  • Other Process Models
  • Downsides of Process Models
  • Basis for Agile Development
  • Timeboxing
  • Iterative Development
  • Incremental Delivery
  • Principles of Agile Methods
  • Adaptation Rather than Prediction
  • People-Oriented Rather than Process-Oriented

Unit 2: The Agile Approach

  • The Rise of Agile Programming Methods
  • The Agile Manifesto
  • Individuals and Interactions
  • Customer Collaboration
  • Working Software
  • Response to Change
  • Forms of Communication
  • The People Factor
  • Involving the User
  • Involving the Business Analyst
  • The Agile Development Team
  • Refactoring
  • Testing

Unit 3: Agile Architecture

  • Developing a System Model
  • Relationship of the Model to Agile Development
  • Documentation in the Agile Environment
  • Structure, Method, Documentation
  • The “Open-Close” Principle

Unit 4: Agile Product Definition

  • Customer Interaction
  • User Stories, Epics, and Themes
  • The Requirements Backlog

Unit 5: Incremental Delivery

  • Classic Approaches to Delivery
  • Principles of Incremental Delivery
  • Benefits
  • Approaches
  • Agile Approach: Staged Evolutionary Delivery
  • Background
  • Principles of Tom Gilb
  • Structure
  • Evolutionary Delivery vs. Exploratory Development
  • Methodology
  • Structuring the Evolutionary Project

Unit 6: Iterative Development

  • Classic Approaches to Development
  • What Is Iterative Development
  • Iterating Development Cycles
  • Benefits of Iterative Development
  • Website Iteration with Wire Frames
  • Roles of the UX and IA
  • Static vs. Dynamic Prototypes
  • User Involvement
  • Agile Approach: Phased Iterative Development
    • Team Approach
    • Team Member Roles
    • Prototyping Sessions
    • Structure
    • Method
    • Documentation
    • Timeboxing
    • Phases
      • Data
      • Cosmetic
      • Function
    • Change Control

Unit 7: Agile Analysis and Design

  • Classic Approaches to Analysis and Design
  • Agile Modeling Concepts
  • Iterative Design Approaches
  • Refactoring Design
  • Agile Method: Feature-Driven Development (FDD)
    • Background
    • Processes
    • Develop an Overall Model
    • Build a Features List
    • Plan by Feature
    • Design by Feature
    • Build by Feature

Unit 8: Agile Programming

  • Classic Programming Approaches
  • Principles of Agile Programming
  • Refactoring
  • Complexity
  • Mutual Ownership of Code
  • Agile Method: Extreme Programming
  • Twelve Practices
  • Iterative Planning
  • Pair Programming
  • Simple Design
  • Unit Testing
  • Documentation
  • Process
  • “Planning Game” Meeting
  • Exploration
  • Management
  • Commitment

Unit 9: Agile Software Development Management

  • Classic Software Development Management
  • Agile Self-Managing Teams
  • Business Representation
  • Choosing the Customer
  • Business Analyst on the Team
  • UX in XP
  • Agile Method: Scrum
    • Background
    • The Scrum Pattern
    • Timeboxing
  • Scrum Roles
  • Scrum ceremonies
  • Scrum process
  • Advantages
  • Scalability
  • Just in Time Methodology
  • Humans and Technology
  • Team-Orientation

Unit 10: Adapting Agile Methods to Your Organization

  • Decision Points
  • Organizational Culture
  • Systems Organization Culture
  • Post Implementation Processes
  • Overall Focus
  • Applicability of Standards
  • Quality Points
  • Ease of Adoption
  • Availability of Training
  • Thoroughness
  • Standards Adherence
  • State of Method Evolution
  • Establishing an Agile Development Process

Unit 11: The Bottom Line

  • Ideas to Use
  • Where to Go for More Information

Please Contact Your ROI Representative to Discuss Course Tailoring!