mb21, agree that moving to an MV* framework such as Angular, Ember, Backbone, etc. will really help with the testability of an application. What I have found, though, is that a lot of people can’t make that leap from day 1, and figuring out what the “baby step” is to start incorporating testing proves difficult. Writing code in the style I presented is the first step, I think, and a much more realistic one for entrenched projects that can’t easily have some Angular sprinkled on them. Once you’ve written code in this style, though, it becomes much easier to see how a more robust tool could be incorporated. What I hate to see is people who dive into Backbone, Angular, or another more complex tool without understanding *how* it will help them solve their problem, or without understanding why or whether it’s even the right tool for the job. Learning a new coding style can help smooth that process.