This class covers the following learning objectives for the CSD as established by the Scrum Alliance. Each student will receive a virtual machine with all the tools needed to do the exercises.
Architecture & Design
Study of architecture and design, focusing primarily on the principles that better enable testability and ease refactoring
Principles of architecture in an agile environment
Design practices on an agile team
Principles that enable testability and ease refactoring
Collaboration
An in-depth look at the way agile teams work together. This might include, but is not limited to, the following concepts:
Working together as one team
Including the customer in the process
Pair programming
Test Driven Development
Study of test-first development, including but not limited to the following concepts:
Test driven development (TDD) as a design approach
Red-green-refactor cycle
Unit testing principles and practices
What makes good tests/measuring test effectiveness
Refactoring
An introduction to the practice of refactoring, including but not limited to the following concepts:
When to refactor
Refactoring for maintainability
Refactoring to patterns
Continuous Integration
An introduction to the key practices of continuous integration, including but not limited to the following:
Single command build
Creating builds that are automated, self-testing, and fast
The importance of a single source repository
Increasing visibility & automating deployment