Learning Outcome
At the end of this training the team will be able to:
- Understand the thought process and the need for XP practices
- Identify poorly designed code by using our elaborate code smell vocabulary.
- Learn various automated refactoring techniques and strategies to carefully clean the identified code smells.
- Have hands-on experience in practices like TDD, CI and Pair Programming
- Have experience in authoring User Stories
- Have clarity about Collective Code Ownership, Informative work spaces, planning game and project retrospectives
Course Outline
Introduction to eXtreme Programming
Test Driven Development
- Introduction to TDD
- Test First Vs Test Last
- TDD Rhythm: Red, Green, Refactor
- Crucial Design Principles
- TDD and Design
- Avatars of TDD
Refactoring and Evolutionary Design
- Purpose of Refactoring
- Common Code Smells
- Refactoring Patterns
- Using Automated Refactoring
Continuous Integration
- Why CI?
- Principles,Strategies and Techniques
- Setting up a CI server
- Automated Testing
- Applying CI to Large Projects
Pair Programming
- How to Pair?
- Need for Pairing
- Pairing Infrastructure
- Pairing Styles
User Stories
- The Big Picture
- Interaction Design with Low Fidelity Prototyping
- Capture nonfunctional requirements as stories
- Working with user proxies
- Conducting a story-writing workshop
- Planning with User Stories
Planning Game
Project Automation
- Setting up an automated build
- Creating automated unit, acceptance and UI tests
- Setting up a Continuous Integration (CI) process
- Setting up coding standards and adding code coverage or test coverage
- Setting up an integrated project dashboard
- Setting up a build promotion process and team wiki
Collective Code Ownership
Informative Workspace and information radiators
Stand-up meetings and Dev Hurdles
Project Retrospectives
Training Details
Method of Instruction
Interactive Dialogues, Programming Exercises, Demos and Instructional Games
Transfer %
Knowledge: 50%, Skill-Building: 50%
Target Audience
Entire Development Team wanting to experience eXtreme Programming in Action.
Course Level
Beginner to Intermediate
Course Prerequisites
- Working experience in the project
- Highly Recommended: basic understanding of the life-cycle of software projects
General Requirements
- HDMI projector (1024×768 minimum) & Projector screen
- 1 White board & Dry erase markers
- Cluster seating with 5-6 people on each table
- 1 Flip chart with the stand and marker pens for each table
- Notepad and Pen for each participant
- Ample room for students in terms of room size and set up
- For Dev trainings: at least one powerful workstation between two programmers
Development Tools
Java
- Latest Java JDK
- Latest Standard Eclipse OR IntelliJ Idea
- JUnit, Mockito, JBehave, FitNesse or Cucumber
C#
- Latest .Net Framework
- Latest Visual Studio
- Latest ReSharper Plugin
- Latest JetBrains Rider
- SpecFlow‘s Visual Studio IDE Integration or FitNesse
JavaScript
- Latest WebStorm JavaScript IDE
- Latest Chrome Browser
- Latest Jasmine Framework
- Latest Jest Framework
- Latest JsTestDriver
C/C++
- Latest Eclipse CDT OR Visual Studio
- Latest GTest
- Latest Visual Studio
- Latest CLion
Ruby
PHP
Flex
- Latest Flex SDK
- Latest Flash Builder OR IntelliJ Idea