Corey Haines has spent much of his 13+year professional career in the Microsoft ecosystem, until moving out of the corporate world and joining a small startup doing Ruby on Rails.
After leaving the startup in 2008, he began a year-long journey, traveling the midwest and east coast of the United States on a pair-programming tour. He would spend anywhere from a day to a week at different places, pairing with people in exchange for room and board. While on the road, he has also focused on expanding and defining the message of the Software Craftsmanship movement, as it pertains to both professionalism and career development.
Corey has been practicing the Extreme Programming techniques for nearly 6 years; following the Behavior-Driven Development (BDD) techniques since the first rumblings of it in 2005. Lately, he has been actively mentoring others in the BDD workflow, as it pertains to day-to-day engineering practices, such as test-driven design, executable acceptance criteria and ‘outside-in’ development.
Nowadays, Corey travels to speak, study and facilitate Code Retreat events. During his travels, he is also collecting ideas for establishing a craftsmanship-based school of software development.
Fast Rails Tests
Look at your Rails unit test suite. Now look at mine. Now look at yours again. Mine are sub-second. Yours aren't. Having a slow unit test suite can hinder an effective test-first or test-driven approach to development. As you add tests, the suite starts to slow down to the point where you stop running them after each change. Some people even talk about multi-minute unit tests suites! Band-aids like spork are just covering up the problem. Test-driven development is a major player in keeping your design malleable and accepting of new features, but when you stop paying attention to the messages your tests are sending you, you lose this benefit. In this talk, I will go over some techniques for keeping your test suite lean and fast. Along the way, we'll discuss the design improvements that come out of these changes. Now, look at my unit test suite again. Yours can be like mine.