Eric Smith from 8th light gave a hands-on TDD presentation at last night’s Chiphone meeting, hosted at Obtiva’s downtown office, (conveniently located near the the train).
There was a good crowd of people, most attendees have ‘played around’ with iphone development, 4 have actively developed apps (3 people have live apps in the store). From my quick survey of those that have submitted apps, it seems most of them were free utility apps or simple games, with at least one commercial app Dash for Confluence. It also seemed that no one had yet needed to do any animation beyond the basics, with just a bit of core-animation, but no need for more lower-level openGL or animation engines.
Eric started off by saying that he’s given talks on iPhone testing, but that just telling people what to do is not the same as letting them experience it for themselves, so we did a Randori, where a pair starts working on some code, and every 3 minutes one person from the pair swaps out and chooses his replacement from the crowd.
What I liked about this was that I felt like I got to know the audience better, and actually watch people reason their way through the code or a testing/mocking issue. (You know how sometimes you go to a user group, and it can be hard to get a chance to talk to others, or sometimes there is a ‘know-it-all’ guy, and you just want him to shut up. Knowing that you are going to have to go up there and code is a great way to silence those types)
When it was my turn, there was an interesting issue with one of the tests that had us all stumped for a bit, but ultimately ended up being one of those problems where you need to deconstruct everything and build it back up. (The issue was that while we were trying to set fooController.textView.text = @”foobar”, we hadn’t instantiated a textView object, or set it on the controller yet.)
We got into some testing, mocking strategies, and a few Xcode tips & tricks, but not being all that familiar with the mocking framework, it would have been nice to just do a little intro on the api, but whenever someone was stumped the answer was shouted out pretty quickly.
It was nice to get some pizza, so a big thanks to Obtiva & 8thlight for putting this together. I wish we could do some presentations here at Pathfinder, but our space is better for a meet & greet, than a presentation. (plus I don’t think as many people would come to the River North area)
I was new to a Randori, and I think this style of presentation is good, but I do have a few ideas I think I’ll include when I host one:
- Set out a basic agenda, introducing the approach, the codebase, relevant api, and where we’re hoping to end up
- Moderate the work (and the crowd), and be ready to help out in case the pair gets stuck (which means you really have to keep an eye on what they are doing)
- Make the work meaninful, and the outcome tangible. (we were able to see our posts getting pushed to twitter, which was nice)
- Push the final code up to github as a branch, so they can check it out later and compare the original to what they created as a group
There were a few times when I couldn’t quite hear what the pair was saying, or read the screen that well, and though it wasn’t a large group there were a few side conversations that made it harder for me to follow. I think this was most likely to happen when the pair was struggling, so a little moderation would probably keep things moving along fast enough to keep everyone engaged. I saw another post that also laid out some strategies for how to best host a Randori session.
I’m looking forward to the next chiphone meeting, and I think there was some talk of doing a group project to make a little app for next month’s WindyCityRails.org conference.
Related Services: iPhone Application Development,
Ruby on Rails Development, Custom Software Development


Yeah ..It was a really fun group of ppl . Group project sounds like a great idea.