Our industry is at a major turning point; moving away from waterfall-style development methodologies and toward lighter-weight, Lean-Agile development. This brings great promise. However, it also creates interesting questions. What is the role of design in an Agile process? How much design is enough, and how much is over-design? Are patterns still relevant, with TDD and refactoring gaining momentum throughout the industry?
Emergent Design is an integration of patterns, testing, and refactoring that enables the strong synergy of these disciplines to empower teams to be more effective in a responsive, agile environment. This seminar will be given by the author of the book “Emergent Design”, Scott Bain.
Test-Driven Development has gained a strong foothold among many development teams, but as popular as it has often become, many organizations struggle to keep the testing effort sustainable over a long period of time. As test suites become large, they tend to become significantly difficult and time consuming to maintain, which is required to keep the TDD effort alive. Similarly, disciplined refactoring skills have become, for many, an essential part of a development team's toolkit, especially when confronted with large amounts of legacy code. However, the effort it can take to refactor a system can be difficult to weigh against the business value of new development; spending time on one would seem to limit the time spent on the other.
The purpose of this presentation is to create a context for TDD and refactoring focusing on those specific elements that allow them to be conducted in a sustainable way. Much of this seminar is based on the work being described at Sustainable Test-Driven Development.