Corey Haines

After 12 years of coding for money, Corey Haines said enough and went on a year-long, journeyman pair-programming tour. Traveling the world, pair-programming for room and board, he spent his time teaching, learning and just living as a knowledge-cross-pollinating, little, software craftsmanship bee. For the past three years, Corey has focused his attention on helping developers improve their fundamental software design skills through the use of focused-practice events, such as coderetreat. Lately, Corey has been shifting his attention to getting kids excited about programming through building games in Scratch.



Improving your TDD


Fast Ruby on Rails Tests

Track: Excellence, thursday 13:00 - 13:50

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 ortest-driven approach to development. As you add tests, the suitestarts to slow down to the point where you stop running them aftereach change. Some people even talk about multi-minute unit testssuites! Band-aids like spork are just covering up the problem.Test-driven development is a major player in keeping your designmalleable and accepting of new features, but when you stop payingattention to the messages your tests are sending you, you lose thisbenefit.In this talk, I will go over some techniques for keeping your testsuite lean and fast. Along the way, we'll discuss the designimprovements that come out of these changes.Now, look at my unit test suite again( Yours can be like mine.

Come introduce yourself to the concepts and fundamental technique behind TDD

Track: TDD, tuesday - all day

Test-driven development is a core practice of software craftsmanship and professional software development. Getting started on your own is difficult, though. In this extremely hands-on course, we will cover basic concepts and techniques around test-first and test-driven development, as well as explicit practices to get you started. Along the way, we'll talk about the benefits and values you can provide to your clients, businesses and team members through effective usage of test-driven development.Topics covered:Test-first vs Test-driven developmentBuilding blocks of testingUsing tests to drive designUsing your regression test suite

Improving your TDD

Track: TDD, monday - all day

In this day-long workshop, we'll explore some more subtle aspects of test-driven development. Through intense, hands-on exercises, we'll look at aspects of TDD that are often overlooked, including:- what effect does test ordering have on your design;- how do you choose the next test to write;- the effect of isolation-based testing on your design.This workshop is language-agnostic, although focused on object-oriented languages. So, come spend the day exploring through code.