FAIRFIELD & COMPANY

Agile trainers and coaches



Agile Technical Practices
Course Description
This course teaches students some of the technical practices that are commonly used on an Agile project. It is a hands-on course, with examples and exercises to illustrate and reinforce the key points made in the lecture.
Prerequisite
As there are numerous programming exercises in this class, a knowledge of Java is required. This course also presumes a familiarity with Scrum.
Duration
2 Day
Course Objectives
Upon completion of this course, students will be able to:
-
Identify at least three code smells that indicate existing code needs to be refactored;
-
Use common refactoring techniques, such as Extract Method and Extract Interface, to refactor a code sample; and
-
Explain the SOLID principles, and give examples of each.
Detailed Course Outline
I. Programming by Intention
-
Visualizing the code you wish you had
-
Using helper methods
-
Delegating
-
Preview of Extract Method and Extract Interface refactoring techniques
II. SOLID Design Principles
-
Single Responsibility principle
-
Open / Closed principle
-
Liskov Substitution principle
-
Interface Segregation principle
-
Dependency Inversion principle
III. Architecture and Agile
-
Onion Architectures
-
Evolving Architectures
IV. Refactoring
-
Code smells
-
Refactoring Techniques
-
Refactoring Case Study
V. Test Driven Development
-
Test first vs Test Driven Development
-
Driving Development with tests
VI. Acceptance Test Driven Development
-
Business readable tests
-
Executable Specification
V. Continuous Integration
-
Branches and Merges
-
Integration complexity
-
Continuous Integration
-
CI environments