Development lifecycle methodologies: TDD, debugging, code review, simplification, and spike prototyping.