Extreme Programming Practitioner

Program overview and business impact

This program introduces Extreme Programming values, Principles and Practices such as Sit Together, Whole Team, Planning Game, Small Releases, Acceptance Test Driven Development, Test Driven Development, Refactoring, Emergent Design, Agile Architecture, Continuous Integration, Collective Code Ownership and Pair Programming to the audience and follows a life cycle approach where participants get to learn how to practice these in real life projects. Participants learn to implement Extreme Programming practices on a project developing in either java, .net, ruby, python or C++ framework. Workshop also covers how to effectively work on legacy code and break dependencies. Expected business outcome is readable, maintainable code going forward as well reduction is defects.

Key Learning Outcomes

  • Introduction to Extreme Programming, Principles of Extreme Programming
  • Lean Startup and Agile Software Development
  • Phases of Software Development – Scoping, Discovery, Mapping and Delivery
  • Extreme Programming Values and Principles
  • 12 Practices of Extreme Programming – core practices
  • Agile Estimation and Planning including risk identification and opportunity
  • Product Discovery – user research, identifying business values and Technical Exploration
  • Requirement Mapping – Impact mapping, Story Mapping, MVP and Release planning
  • Software Delivery – Coding Standard, Collective Code Ownership, Sustainable Pace
  • Test Driven Development – why, what and how
  • TDD Cycle – Red, Green and Refactor
  • Drive the development (design and implementation) of a User Story
  • Learn concept of Emergent Design and why emergent design
  • Overview of Refactoring, Clean Code principle and Refactoring to Patterns
  • Software design – going deeper in SOLID design Principles
  • Behavior Driven Development Vs Test Driven Development
  • Continuous Integration, Continuous Delivery, Deployment and Releases

Key Learning Activities

Hands-on activities (60-70%) and discussion on mentioned topics (30-40%). Hands-on activities include writing unit test, code, writing examples and some group creativity activities.

Target Audience

Development team members including developers, testers, architects, leads and scrum masters.

Prerequisites

Laptops/Desktops with required software and internet connection. Software will be provided by facilitator.

Agenda for 4-day Workshop

The whole workshop will be delivered in 8 Iterations with possible agenda as below:

Day 1: Extreme Programming Essentials

Introduction to Extreme Programming

  • Agile Overview and available Framework
  • What is Extreme Programming (XP)
  • How and why XP is different than Scrum
  • XP Values, Rules and Phases
  • 12 practices of Extreme Programming

Extreme Programming – Planning Game, Small Release and Metaphor

  • User Story and Estimation
  • User Story Writing Workshop
  • Splitting User Story
  • Running Spikes on Complex stories
  • Release Planning
  • Iteration Planning

Day 2: Acceptance Criteria and Acceptance Test Driven Development

Specification by Examples Workshop – Collective Ownership and Testing

  • Challenges in Collaboration between Business and Development Team
  • How to write better Specification
  • Why Examples needed for specification
  • Writing Examples in Gherkin

ATDD and BDD workshop – Collective Ownership and Testing

  • Principles of Acceptance Test Driven Development
  • Consequences of ATDD on the Sprint Planning and Sprint Review
  • Principles of Behavior Driven Development
  • Practicing BDD with Cucumber/SpecFlow: installation, writing features, testing and reporting
  • Role of Iteration Manager and crew when writing scenarios acceptance

Day 3: Test Driven Development and Agile Design

Test Driven Development

  • Test Driven Development (TDD) approach and its benefits
  • Improving the quality and design of the code by TDD
  • Different types of tests: unit, integration, functional

Unit testing with Unit Testing Framework

  • Understand the life cycle of a test in the Unit Testing framework
  • Respect of the principle of isolation and control of test results
  • The mocks or simulate how the code Device code tested
  • Use of simulation frameworks

Organization of test activities

  • Methodology of correcting a Bug
  • Automate the execution of Unit Test
  • Generating reports
  • Integration with Build Tool and IDE

Design Frameworks

  • Definition and principles of frameworks
  • Emergent Design
  • Principle of scalability and implementation

Refactoring

  • Consequence of technical debt and risk of “breaking” the code
  • Where? When? How refactoring?
  • 3 stages of refactoring
  • Support of TDD and ATDD during refactoring
  • Best practices and limitations
  • Working with legacy code

Day 4: Continuous Integration and Agile Testing

Introduction to Continuous Integration

  • Principles, environment and infrastructure
  • Branching strategies and patterns for continuous integration.
  • Solutions for Continuous Integration: Hudson, Jenkins, Cruise Control, Bamboo, TeamCity, Apache Continuum

Introduction to Jenkins

  • Dashboard and health projects
  • Architecture and extension principle
  • Installation, configuration and use of Jenkins
  • Automated Builds with Jenkins
  • Automation Testing with JUnit (TDD) and Cucumber (BDD/ATDD)

Agile Testing

  • Importance of Agile testing
  • Ensure better quality product sprint by sprint
  • Test Automation Frameworks
  • Test quadrants and test pyramids

Other topics

  • Continuous Delivery and Deployment – Why and How?
  • DevOps Introduction
  • ALM tools for Development Team such as Jira

Classes Schedule

Coming Soon

For more info Please send us a mail to connect@agilemania.com