Developer practices for traditional and agile Java development are well understood and documented. But dynamic languages--Groovy, Ruby, and others--change the ground rules. Many of the common practices, refactoring techniques, and design patterns we have been taught either no longer apply or should be applied differently. In addition, some new techniques can come into play to improve your development. Join Paul King as he discusses and demonstrates new and modified techniques for agile development with dynamic languages, including closure refactoring, better ways to implement the delegation pattern, rules for creating domain specific languages (DSLs), and the pros and cons of static and dynamic typing. Paul further explains the impact of dynamic programming on dependency injection, immutability, aspects, mocking approaches, and interface-oriented design.