Scott Bain
ÜberConf
Denver · June 19 - 22, 2012

Author of "Emergent Design"
Scott Bain is a 35+-year veteran in computer technology, with a background in development, engineering, and design. He has also designed, delivered, and managed training programs for certification and end-user skills, both in traditional classrooms and via distance learning. Scott teaches courses and consults on Agile Analysis and Design Patterns, Advanced Software Design, and Sustainable Test-Driven Development. Scott is a frequent speaker at developer conferences. He is the author of “Emergent Design: The Evolutionary Nature of Professional Software Development” which won a Jolt Productivity Award. He is also one of the co-authors of Essential Skills for the Agile Developer. Both books are available from Addison Wesley/Pearson Education. He is currently writing, with Amir Kolsky, Sustainable Test-Driven Development.
Presentations
Patterns and Agile Development: Emergent Design
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?
Sustainable Test-Driven Development
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.