top of page

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.



As there are numerous programming exercises in this class, a knowledge of Java is required.  This course also presumes a familiarity with Scrum.


2 Day


Course Objectives

Upon completion of this course, students will be able to:

  1.   Identify at least three code smells that indicate existing code needs to be refactored;

  2.   Use common refactoring techniques, such as Extract Method and Extract Interface, to refactor a code sample; and

  3.   Explain the SOLID principles, and give examples of each.


Detailed Course Outline
I.  Programming by Intention
  1.   Visualizing the code you wish you had

  2.   Using helper methods

  3.   Delegating

  4.   Preview of Extract Method and Extract Interface refactoring techniques

II.  SOLID Design Principles
  1.   Single Responsibility principle

  2.   Open / Closed principle

  3.   Liskov Substitution principle

  4.   Interface Segregation principle

  5.   Dependency Inversion principle

III.  Architecture and Agile
  1.   Onion Architectures

  2.   Evolving Architectures

IV.  Refactoring
  1.   Code smells

  2.   Refactoring Techniques

  3.   Refactoring Case Study

V.  Test Driven Development
  1. Test first vs Test Driven Development

  2. Driving Development with tests

VI.  Acceptance Test Driven Development
  1. Business readable tests

  2. Executable Specification

V.  Continuous Integration
  1. Branches and Merges

  2. Integration complexity

  3. Continuous Integration

  4. CI environments

bottom of page