Participants will review, demonstrate, and practice each principle as it related to modern day software development using a real-world project.  This course is ideal for team looking to understand XP or to use XP practices to take their projects to the next level.

TOPICS

• Fine scale feedback

Pair Programming
Planning Game
Test Driven Development (BDD optional)
Whole Team

• Continuous process

Continuous Integration
Refactoring Design Improvement
Small Releases

• Shared understanding

Coding Standards
Collective Code Ownership
Simple Design
System Metaphor

• Programmer welfare

Sustainable Pace

DURATION

Four Days.

Outline for Agile Programming (XP) Training

Chapter 1. Agile Overview

• Manifesto & Principles
• What is Extreme Programming (XP)
• How and why XP with Scrum
• XP Values and Rules – 12 practices of XP overview

Chapter 2. Agile and Scrum Framework

• What is time-boxing and why time-boxing?
• What is Empirical Process?
• Scrum Framework – in Brief

Chapter 3. Scrum with XP Teams

• Roles and Responsibilities
• Creating Shared understanding

Coding Standards (XP Practice)
Collective Code Ownership (XP Practice)
Simple Design (XP Practice)
System Metaphor (XP Practice)
Whole Team (XP Practice)

Chapter 4. Scrum & XP Overview

• Scrum Roles, Artifacts and Events
• Definition of Done
• Development Team Practices

Whole Team (XP Practice)

Chapter 5. Scum & XP Backlog Planning

• User Story and Estimation
• User Story Writing Workshop
• Acceptance Criteria (Gherkin syntax)
• Splitting User Story
• Running Spikes on Complex stories
• Release Planning

Planning Game
Small Releases (XP Practice)
Metaphor (XP Practice)

• Iteration Planning
• Refine Product Backlog: Prioritization, Sequencing MVP & MMF

Chapter 6. BDD workshop – Collective Ownership and Testing (optional-extra day)

• Principles of Behavior Driven Development
• Why Examples needed for specification
• Writing Examples in Gherkin
• Practicing BDD

Chapter 7. Test Driven Development

• Test Driven Development

Test Driven Development (XP Practice)
Pair Programming (XP Practice)

• Improving the quality and design of the code by testing?
• Different types of tests: unit, integration, functional

Chapter 8. Refactoring

• Consequence of technical debt and risk of “breaking” the code
• Where? When? How refactoring?
• Support of TDD and ATDD during refactoring
• Best practices and limitations
• The various categories of refactoring tools

Chapter 9. Introduction to Continuous Integration

• Continuous Integration Overview

Continuous Improvement (XP Practice)
Refactoring (XP Practice)

• CI and DevOps

Small Releases (XP Practice)