compare and contrast at least three code and product quality metrics.
demonstrate at least one approach to refactor a system for maintainability.
explain at least three possible code and product smells and demonstrate how to approach one of them during refactoring.
explain refactoring to a non-technical stakeholder.
explain technical debt, outline at least three causes that lead to technical debt, and discuss how to address one of the causes.
restate at least three guiding principles of TDD and explain why they are necessary.
demonstrate designing a software or product entity using TDD as a design approach.
apply at least five unit-testing principles and practices.
identify at least five measures to improve the quality and effectiveness of tests and apply at least three test refactoring approaches.
outline at least one concept to categorize testing and assign different methods for testing to the different categories.
list at least three attributes of a test first business facing collaborative approach.
apply at least one approach to implement a test driven feedback loop with stakeholders and users.
apply at least one technique to deal with missing or resource inefficient components or subsystems.
discuss at least three different ways to approach technical excellence by validating and improving the inner quality of a system; and practice at least one of them.
discuss at least five areas of concern that need to be dealt with when integrating continuously.
practice creating a build that is automated, self-testing, and fast.