yep -- everyone in our company has a separate testing environment. Then if we need, we fire up a separate staging server for complex migrations before deploying to production. At first we wrapped our own server configuration using capistrano, but now we use Engine Yard to handle all of our server deployment -- it takes a little off our plates, and they are fantastic at doing deployment.
Actually we just use textmate or vim to edit and then use the command line ruby debugger.
I completely agree...I really think that debugging *is* the secret sauce. In a way debugging is a comprehension test for how well you know code -- if you can figure out the problem, there's a good chance you have a deep understanding of how the code actually works. It's a process that we've just evolved over time.
Steve -- glad you like our story! If you'd like to talk about doing an interview for startuptrek.tv, we'd be more than happy to do it -- just email me at nate [at] everlater [dot] com.