Agile
Agile Technical Practices
Course Overview
This course teaches participants the technical practices that are used on an Agile project. It goes beyond the Agile practices of Daily Scrums, Sprint Planning, Sprint Demos and Retrospectives. Using both lecture and hands-on exercises, the course walks students through such topics as XP programming concepts, Acceptance Test Driven Development (ATDD), Test Driven Development (TDD), Behavior Driven Development (BDD). It also includes extensive discussions on refactoring, clean code, and designing code for testability.
Course Length
Target Audience
This course is intended for developers, testers, Quality Assurance personnel and Resource Managers who want to improve their understanding of the developers role and the technical practices used on an Agile project.
Course Prerequisites
Scrum Fundamentals and a knowledge of Java
Topic List
- Review of Agile and Scrum
- Junit and Unit Testing Principles
- Testing Seams
- Mock Objects and Stub Objects
- Best Design Practices
- Programming by Intention
- Separate Use from Construction
- Defining Tests Up Front
- Encapsulation
- Interface Oriented Design
- High Level Design
- TDD/ATDD/BDD
- Overview
- Tools and Languages
- Specification by Example
- Cucumber and Gherkin
- Technical Debt and Refactoring
- Technical Debt
- Cost of Technical Debt
- Reducing Technical Debt by Refactoring
- Refactoring Techniques
- SOLID Design Principles
- Designing Interfaces
- Dependencies: Designing for and Reducing
- Refactoring Principles and Techniques
- Agile and Architecture
- Continuous Integration
- Branching the Source Code
- Multiple Versions: Specialization Branching
- Working in Isolation: Development Branching
- Problem, Solution, Problem
- The Merge-Back
- Test-Driven Development and Merge Cost
- Jenkins