ICAgile Programming Techniques

Learn how to use agile programming practices to create high-quality systems. During our Agile Programming Techniques course, you will gain hands-on experience and practice with tools and techniques for designing and implementing systems. You will apply specifications written in the form of user examples and unit tests to drive development with test-driven development (TDD), behaviour-driven development (BDD) and acceptance test-driven development (ATDD). This course is ideal for developers and technical testers wanting a better understanding along with the opportunity to practically apply agile tools and techniques.  This course is about quality – in particular, what can developers do to make sure that we are building the right system, and that we are building it the right way.


ICAgile accredited course:The ICAgile Certified Professional, Agile Programming is granted on the successful completion of this course.  This certification is part of the ICAgile Engineering Track along with our Agile Fundamentals, Agile Design and Architecture courses. We offer the complete ICAgile Agile Engineering Track for those looking to become an ICAgile Certified Expert in Agile Engineering (ICE-AE).

Intended For

  • Developers who wish to design and develop systems using agile techniques
  • Technical testers wanting a deeper understanding of test-driven development, behavior-driven development and acceptance test-driven development.


To get the most out of this course, you will need to have completed formal agile training such as our Agile Fundamentals course and have a working knowledge of Java or C#.

Learning Objectives

By the end of this course you will be able to:

  • Write and maintain effective unit tests
  • Refactor code without breaking the observable functionality
  • Identify the seams to add unit tests to legacy codebases
  • Apply test-driven development (TDD) to write tested code
  • Write good specifications/acceptance tests.
  • Automate the acceptance tests
  • Perform software development as an engineering discipline


  • Unit testing and dependency injection
  • Refactoring and legacy code
  • Test-driven development and behaviour-driven development
  • Acceptance test-driven development and specifications by development
  • Cucumber

Methods Used

Lecturing is kept to the minimum necessary. Most of the learning is achieved by applying the practices and techniques in group exercises. This is a hands-on development course where the learning is achieved through applying the practices and techniques in programming exercises. While the concepts and principles apply to most languages, the exercises are carried out using Java, C#, or JavaScript.


Nov 07 - 09 2022


11:00 am - 3:30 pm

Local Time

  • Timezone: America/New_York
  • Date: Nov 07 - 09 2022
  • Time: 10:00 am - 2:30 pm




Zoom/ Remote
QR Code