Steve Freeman did a great writeup of the session Marc Evers and I hosted at the Software Craftsmanship Conference: Mock Roles not Objects, live and in person.
What can I add besides a big thank you, especially since Steve asked for feedback before posting and incorporated a comment about my habitual way of going about naming – creating a bit more code on an empty system and then go mad about naming after I have something more to generalize on.
A few things:
Don’t Stop thinking about Naming
Steve stopped coding in the session to good effect. The Narrator class that emerged from the discussion made the design Speak to me much more.
Start thinking about tomorrow
Now that I’ve gotten better at working in small steps, maybe I can stop being paralysed by my former analysis paralysis and stand still to think about naming more often. This happens automagically when I pair with Marc or Rob Westgeest, which helps both the clarity of the code and the way the tests cover our behinds.
Bring an “imaginary Steve”
I could bring an “imaginary Steve” to work more often when I’m out coaching a team on my own. like tomorrow. We just managed to put all the necessary bits together in Week I. I’m completely addicted to showing something more or less fully functional to the client – that way we can get the dialogue going, so that we are less likely to create yet another IT invented system that has little value to its users. However, the fun is going to be short-lived if we can’t respond to their needs (quickly, so we can keep the dialogue going).
Now is the time for imaginary Steve (and imaginary Marc and Rob) and the rest of the team to have a good hard look at our naming, and figure out where the responsibilities feel more comfortable.
Especially since from the two new components we chose one feels like it has received a lot of love from its developers (Wicket) while the other (which will remain nameless until we’ve either managed to contain it, dropped it, or I have to admit I was wrong) might start to infest the rest of the code with one-letter variables and obscure Java constructs that would be interesting for a workshop on Legacy code (and I’ll include the tests for that code in the definition of Legacy code temporarily). Luckily the team decided to use the power of Open Source today and spontaneously started to refactor the base test code. More of that when we continue tomorrow – I expect slower will be faster at this point.
If that is not enough, or your imaginary Steve turned up too late, you can also bring an imaginary Ivan Moore or Mike Hill – their session about giving your code some love showed once more that good design comes in small doses.
Come enjoy the show on Thursday
Marc and I will go on tour to Agile Belgium in Gent on Thursday, to play the Responsibility Driven Design with Mocking show again. The setlist has been extended since we have an extra hour, so there will be some jamming and solo-ing by the audience with Class Responsibility Collaboration Cards and of course more Live Coding. Hopefully Rob will be there to support us (the cold visited his house too apparently).
P.S. bringing an Imaginary Jeff Patton in Week I (User Story Mapping) works wonders to get something useful working ASARP (As Soon As Responsibly Possible).