Home About Courses Schedule Services Webinars Contact Search

Agile Engineering Bootcamp


Duration: 5 Days

Method: Instructor led, Hands-on workshops

Price: $2750.00

Course Code: AG1005


This intensive hands-on course will teach you how to integrate Agile Development, Test Driven Development (TDD), Object Oriented Principles and Practices, Design Patterns and UML to fully harness the power of modern best practices to provide 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.


Upon successful completion of this course, the student will be able to:

  • Teach your team to give a higher return on investment (ROI)
  • Get hands-on, intensive practice using OO principles
  • Build the habit of doing iterative development
  • Learn to apply Design Patterns in the real world
  • Understand that the best Agile is the one you customize
  • Learn to integrate UML, Agile, TDD and OOAD


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


  • I. Test Driven Development
    • Definitions and Uses of Test Driven Development
    • Principles and Techniques of Test Driven Development
    • Test Driven Development Benefits
    • Best Practices in Test Driven Development
    • Test Driven Developments Anti-Patterns
  • II. Applied OO
    • Definition and Motivation for OOP
    • Ensure Understanding of OOP Fundamentals
    • OOP "First Principles"
  • III. UML Essentials
    • Use Cases
    • Class Diagrams
    • Sequence Diagrams
    • "Turning Straw Into Gold" - Using UML
  • IV. Agile Development
    • Agile Software Development and What it Means for Information Technology
    • Implementing iterative coding into your project
  • V. Commonality and Variance
    • Techniques for Translating From Requirements and/or Use Cases to a Class Diagram
    • Fundamentals of Commonality/Variability Analysis (CVA)
    • CRC Cards
    • How to Handle Variations as We Get New Requirements
    • Understanding and Using Factories
  • VI. Delegation
    • Delegation and Why it is so Powerful
    • How Various Design Patterns Leverage Delegation
    • Adapter Pattern
    • Strategy Pattern
  • VII. Refactoring
    • What is Refactoring
    • Why Refactor
    • Handling API Changes
    • Identifying Code Smells
    • Refactoring and Testing
    • Using your IDE
  • VIII. Using Abstraction
    • Understanding the Template Method Pattern
    • Importance of Depending on Abstraction
    • Serializing Objects to XML Files
  • IX. Model-View-Controller
    • MCV Principles and the Motivation for Using MVC
    • Differentiating between the Model 1 and Model 2 Architectures
    • Benefits of the Front Controller Pattern
  • X. Managing Access
    • The Proxy Pattern and the Motivation for it
    • How a Dynamic Proxy Works
    • Why the Dynamic Proxy Offers a More Flexible Proxy Solution
  • XI. Dynamic Responsibilities
    • Using the Decorator Pattern to Bring Flexibility to Designs
    • Adding Functionality Flexibility
    • Decorator Pattern and Illustration
    • Decorator Pattern - Class Diagram
    • Decorators in the Java/IO Pattern
    • Writing a Custom I/O Decorator
  • XII. Optional Appendixes
    • JUNIT
    • Javadocs
    • Java Server Faces (JSF)
    • The Spring Framework
    • Struts
    • Hibernate
    • SCRUM
    • SAFe (Scaled Agile Framework)
    • Open UP
    • The Rational Unified Process
    • Extreme Programming (XP)