This intensive, hands-on boot camp teaches teams how to integrate agile development, test-driven development (TDD), applying object-oriented (OO) design principles and practices, design patterns, refactoring and continuous integration (CI) into the development process in order to fully harness the power of modern best practices to create the most valuable software possible.

If your organization wants to learn Agile by doing Agile, this is the course! It can be customized to any Agile implementation you choose (SAFE, SCRUM, XP, Lean, etc.). As a boot camp, at least 70 percent of class time is spent in hands on programming.

Note: The course length can be customized to fit your team’s availability.

Course Duration: 5 Days
Prerequisites:

We recommend six months of programming experience with an Object Oriented language (Java, C#, VB.net, C++).

Course Objectives:
  • Teach your team to produce a higher return on investment (ROI)
  • Get hands-on, intensive practice using OO principles
  • Build an iterative development habit
  • Practice doing CI
  • Learn to apply design patterns in the real world
  • Understand why the best Agile is the one you customize
  • Code every day of training and prepare to be challenged with a final all day lab that locks in the practices
Course Outline:
  • Foundations and Review
    • Why Agile
    • Scrum in 20 minutes
  • Test-Driven Development (TDD)
    • Definitions and Uses of TDD
    • Principles and Techniques of TDD
    • Benefits of TDD
    • Best Practices in TDD
    • TDD Anti-Patterns
    • Where TDD should happen
  • Applied Object-Oriented Programming (OOP)
    • Definition and Motivation for OOP
    • Ensure Understanding of OOP Fundamentals
    • OOP “First Principles”
    • Team Driven Design
    • When, Where and How design should be done in Agile
  • Lightweight UML for Improved Collaboration
    • Pictures are worth 1000 words and even more dollars
  • The Agile Development Micro-cycle
    • Design
    • Test
    • Code
    • Refactor
    • Who needs two weeks
    • Implementing Iterative Coding
  • Refactoring
    • What is Refactoring?
    • Why Refactor?
    • Handling API Changes
    • Identifying Code Smells
    • Refactoring and Testing
    • Using your IDE
  • Continuous Integration
    • Why Continuous Integration?
    • What Is Jenkins?
    • How Jenkins Works
    • Creating A First Job

Comprehensive Lab (full day) – Putting it All Together