- “My favorite tdd life story is last fall when we were putting a large plastic sheet down on our porch (didn’t have time to seal it), and I let my girlfriend work on it for a while. She had started by stapling one end down, then slowly moving down the porch, stapling each side. What ended up happening was that it was crooked, so it wasn’t going to reach the other end straight. I stepped out, took a look, then tried to figure out how I could write a test for each step of the way. We already had some legacy sheet (I had just read Michael Feathers’ excellent book), so I thought about how I could do a bit of safe refactoring to get some tests in place. I made a small slice in the plastic, so I could reposition it (refactoring), then stapled the far end down to the other side of the porch. At this point, I had a passing test (the sheet of plastic was laid down square across the porch), so I could go in and start adding additional staples along each side to finish it up. At each staple, I knew that I was still good, since my test (are all four corners stapled where they should be) was still passing.
Yeah, we should have started with stapling the four corners, then we wouldn’t have had the problem, but we didn’t (should start all coding TDD, too, but it doesn’t always happen that way). In the end, TDD saved the day. :)
And, no, my girlfriend didn’t want to hear the long explanation about how this is just like what I do at work every day with programming.” (Corey Haines)
- “The greater the stress, the less likely that individuals can tolerate “ambiguity”.” (Decision Making Under Stress)
- “You can observe a lot just by watchin’” (Yogi Berra)
- “When life is reduced to numbers, success is defined as bigger numbers.” (Sharon Villines)
- “Basketball would be a whole different game without numbers. Probably more fun to play and less fun to watch. Autocrats may be watchers.” (Sharon Villines)
- That’s why I define “Agile” as …
- can accept feature requests in any order
- can release any integration
- minimize the time between specifying a feature and end user profiting from it
- June Kim posted a thread about how they got their team to refactor a very ugly method that is a must read.
- Once when I interviewed at a company and it came time for the hiring manager to ask me if I had any questions I asked him “are you willing to fire people who suck?”(Jeffrey Fredrick)
- Continuous Integration is an Attitude, Not a Tool (Jim Shore)