Let's Play TDD #3: Cleaning Up My Mess

02 Sep, 2010

Be sure to choose the 720p HD resolution for the most readable text.

Visit the Let's Play archive for more.


Loading...

Let's Play TDD #2: Peering Dimly Into the Future

01 Sep, 2010

Be sure to choose the 720p HD resolution for the most readable text.

Visit the Let's Play archive for more.


Loading...

Let's Play: Test-Driven Development

31 Aug, 2010

I'm trying a little experiment: a screencast of me working on a real project, from scratch, using test-driven development. I've called it "Let's Play: Test-Driven Development" in honor of all the Let's Play videos I love watching.

Like a "Let's Play" video, this is a live, stream-of-consciousness recording of my successes and slip-ups as I work. (So far, mostly slip-ups.) I'm hoping this will be an interesting view into how test-driven development works when you take it out of the classroom. As the series continues, I'm sure you'll see quite a bit of incremental design and architecture, too.

As I said, this is an experiment. I'm going to do several episodes and see what the response is like. So if you like it, let me know by leaving a comment on my blog, subscribing to my new Youtube channel, or helping spread the word. Feedback from people like you is how I'm going to judge whether I should keep going.

I hope you enjoy it.

Episode #1: "How Does This Thing Work, Again?"

Be sure to choose the 720p HD resolution for the most readable text.

Visit the Let's Play archive for more. For the first few comments on this entry, see the original announcement.


Loading...

Let's Play: Test-Driven Development (Placeholder)

31 Aug, 2010

I've moved this entry. I'm keeping this placeholder to preserve the comments.


Loading...

Agile Friday: "Is XP Right For Us?" Now Online

27 Aug, 2010

One of the things about The Art of Agile Development that I'm most proud of is our continuous acknowledgement that one size doesn't fit all. We were writing a cookbook, after all, with specific instructions and guidance. We could have easily pretended that our advice was The One Right Way to practice Agile.

I'm glad we didn't fall to that temptation. It's not true, of course; there are many good ways to practice Agile. (Sadly, there are an infinite number of bad ways to practice Agile, and they're easier to find than good ways.) So we had to do what authors have always had to do: choose between being narrow and deep, or broad and shallow.

Obviously, we chose "narrow and deep." This week's excerpt, Is XP Right For Us?, was our attempt to have our cake and eat it too. We couldn't go broad, but we could at least be clear about what we were covering and what we weren't. Doing so gave us the opportunity to discuss the tradeoffs involved, too. I'm very happy with the result.

Next Week

The Thinking chapter is completely online, as I've mentioned, so next week's excerpt will be from the Collaborating chapter. We have four practices left to put online from that chapter. Which one would you like next week?

I'll look for your vote in the comments.


Loading...

Agile Friday: "Customer Tests" Now Online

20 Aug, 2010

Controversy! After writing the Customer Tests section of The Art of Agile Development, I had a change of heart. I used to be a major advocate for customer testing--what people are now calling "Acceptance Test-Driven Development," or ATDD. In fact, I was the project coordinator for Ward Cunningham's Fit, the first major customer testing tool. But I no longer use or recommend it.

Why not? I explain the details in my Problems With Acceptance Testing blog entry, but the short-short version is that automated customer tests just don't work well over the long term. In the short term they're great. In the long-term, the tests become a major maintenance burden, and the tools tend to get in the way of customer collaboration rather than enhance it.

Luckily, I'm not a complete idiot. (Or Shane isn't. Hmm.) What we wrote in the book is still accurate, even though we wrote it before my change of heart. Shane and I actually highlight the problems in the "Contraindications" subsection. If I could do it over again, though, I'd call this practice "Customer Examples" rather than "Customer Tests." I'd focus on communication even more. I'd come up with some better examples. And I'd leave out the "Automating the Examples" subsection. But what we have in the book, other than the automation subsection, is still good advice.

Next week, I'm planning to post Is XP Right For Us? from Chapter 3. All of the practices we recommend so confidently in the rest of the book rely on an important set of assumptions that are described in that section. I figured it would be useful to put those assumptions online now that so much of the rest of the book is up. If you'd prefer something else, make your case in the comments, as usual.

See you next week!


Loading...

Agile Friday: "Stories" Now Online

06 Aug, 2010

I've uploaded Stories, which is this week's excerpt from The Art of Agile Development. Due to time constraints, I haven't incorporated the copyedits yet. If it seems a bit rough, that's why. Thanks once again to Sarah Schneider at O'Reilly for copyediting our book and making a million tiny improvements. You don't notice them until they're gone, which tells you what a good job Sarah did.

I'm going to be at Agile 2010 next week, presenting an awesome session with Arlo Belshee titled "Bloody Stupid Johnson Teaches Agile." It's a parody of all things Agile, and we're having tons of fun with it. If you're going to be at the conference, I hope you'll attend and help heckle. (We'll need hecklers.)

The poll for next week's excerpt will be cut short thanks to my trip, so get your votes in early. Here are your choices, from the Developing chapter:


Loading...

Agile Friday: "Ten-Minute Build" Now Online

30 Jul, 2010

This week's excerpt from The Art of Agile Development is Ten-Minute Build.

These days, my favorite build tool is Rake. I like to create multiple batch files or shell scripts for running Rake: dev, for building and testing on the local machine; repo, for manipulating the version control repository; and deploy, for shipping iteration and production releases. Each script gets its own Rake file, and then I take advantage of Rake's Ruby underpinnings to put code common to the various rakefiles in shared Ruby classes.

Next week's excerpt: something from the Planning chapter. Voting is back to normal this week, so please speak up for your choice in the comments. Here are your choices:


Loading...

Agile Friday: "The XP Team" Now Online

23 Jul, 2010

For this week's excerpt of The Art of Agile Development, we had a surprise write-in campaign for The XP Team rather than one of the scheduled Collaborating practices. It won the day, so The XP Team is now online to read and link.

Next week's excerpt will come from the Releasing chapter. We have three practices left in that chapter:

Vote for the one you'd like to see online first and I'll post it next Friday. Get your votes in early this week--I'm at a conference all next week and I'll need to prep the excerpt in advance (probably over the weekend) to make sure it goes out on time. I'll be closing the voting early as a result.


Loading...

Agile Friday: "Informative Workspace" Now Online

16 Jul, 2010

I'm proud to announce the release of this week's Art of Agile Development excerpt, Informative Workspace. This week's release is particularly notable because it's the last practice from the Thinking chapter, which means that you can now read the whole chapter online.

This is probably as good a time as any to reflect on my decision to release the book online. First, I want to thank Shane Warden (my co-author) and Mary Treseler (our editor) for their support of this decision. Royalties from technical books are no way to get rich--actually, you'll be lucky to get above the poverty line--but publishing the book online meant we were putting those paltry returns at risk. Shane and Mary didn't even twitch when I suggested the idea.

How did it turn out? Wonderfully! I think. Website traffic is up, unsurprisingly, and an informal review of Amazon rankings hints that the book sales have bumped up to a nice consistent pace. Based on my royalty statements, we sold more books to stores in Q1 this year than we did in Q1 last year. Next quarter's royalty data will tell the real story, though, because I only started putting the book online at the end of February.

Bottom line? It seems to be working out. The main goal was to provide a permanent, comprehensive Agile resource online that people could link to when discussing specific Agile practices. In that respect, we've definitely succeeded. So, thank you! Thank you for linking us, recommending our book to your colleagues, and spreading the word. That's really all we need.

(If you'd like to do more, the best thing is to buy a copy for a colleague who needs to read it. For colleagues in particular need of new insights, the book also makes a good Clue-By-Four when wielded with proper angular momentum.)

Technically, prepping the book for HTML hasn't been too bad. Shane and I authored the book in a markup language called PseudoPOD, and I wrote a little recursive descent parser1 to convert the POD files to HTML back when we were doing public reviews. To publish a section of the book, I manually incorporate O'Reilly's copyedits and figures back into our source, run the tool, and then paste the output into the appropriate page on my site. The hardest part is figuring out something interesting to say in this weekly announcement.

1"Recursive descent parser" is one of my favorite phrases. I like to drop it into casual conversation. "Yes, Attack of the Clones was flawed, but nothing that an army of monkeys and a recursive descent parser couldn't fix."

At any rate, that's the Thinking chapter. Thanks for reading! Next week's excerpt comes from the Collaborating chapter. Our choices are:

Please use the comments to vote for the practice you'd like to me to release next Friday. See you next week!


Loading...

Agile Friday: "Incremental Requirements" Now Online

09 Jul, 2010

Incremental Requirements, this week's excerpt from The Art of Agile Development, is now online for your viewing pleasure. We're now a little more than half way through the practices. Only four more months to go!

There's no poll this week--next week's excerpt will be from the Thinking chapter, and there's only one practice left to release from that chapter (it's Informative Workspace). But you're welcome to say stuff in the comments anyway.


Loading...

Agile Friday: "The Planning Game" Now Online

02 Jul, 2010

I've released the full text of The Planning Game from The Art of Agile Development.

Next week, I'll post a practice from the Developing chapter. Which would you like to see online next? Make your vote known in the comments.


Loading...

Agile Friday: "Documentation" Now Online

25 Jun, 2010

This week's practice from The Art of Agile Development is Documentation. Documentation's role in Agile is often misunderstood. It's not completely abandoned, as some would have you believe, but it's not used in the same way as non-Agile projects, either. See for yourself how it works.

Last week's experiment with asking for votes in the comments worked well. There were fewer votes, unsurprisingly (about a tenth as many), but I really liked the context people included with their votes. My site runs faster without the poll script bogging it down, too.

Next week's practice will come out of the Planning chapter. The choices are:

Which one would you like to see next week? Post your choice in the comments.


Loading...

Agile Friday: "Real Customer Involvement" Now Online

18 Jun, 2010

I've released the full text of Real Customer Involvement from The Art of Agile Development. I particularly like our discussion of the different types of software development in this one.

The provider I was using for doing polls (Micropoll, if you're interested) turned out to be unreliable, and I haven't found a good replacement. As a result, I won't be posting any more polls for upcoming chapters. Instead, please give your preferences in the comments.

Next week's practice comes from the Releasing chapter. The choices are:

Which one should I post next week? Speak up for your choice in the comments.


Loading...

Agile Friday: "Energized Work" Now Online

11 Jun, 2010

Energized Work is this week's release from The Art of Agile Development.

We're getting close to the end of the Thinking chapter; Informative Workspace is the only one remaining. It will be posted in five weeks, on July 16th. Next week will bring a practice from the Collaborating chapter. The poll is still open for that one.

The following week, June 25th, will feature a practice from the Releasing chapter. Which one would be most useful to have online first?

Poll closed.

Here are the full results of the poll for this week's excerpt:


Loading...