I am tasked to conduct a training for an upcoming team of 20 Java developers for a new project. The project owner wants us to use state of the art development techniques like TDD and CI. The developers are skilled Java developers but have minor to no experience with unit testing, and most likely only superficial experience in refactoring. So the overall project manager scheduled a 3 day training for all developers, and some project managers, to learn the "new" techniques, get everybody in a shared mindset and get started.
So I have 3 days (aka 20 hours) to teach them
Software Craftsmanshipdeleted due to answer- Unit Testing
- TDD/BDD
- Refactoring
- Static Code Analysis
- CI
Obviously I can't teach them everything. So my questions is
- how to distribute the available time on these (and other) topics,
- what to focus on and what do omit,
- and how to best conduct a training session based on these topics?