08.29.10
Posted in Agile, BDD, Iterative Development, Pair Programming, Software Development, TDD, Teams, Uncategorized at 7:41 pm by Pablosan
Recently I was honored to have the opportunity to work toward being approved to teach Ron Jeffries’ and Chet Hendrickson’s Agile Developer Skills course. I had my first opportunity to co-teach the class last week. It was a great class and I very much enjoyed working along side Chet and Cheezy, two software craftsmen I respect highly.
If you follow the links above, you’ll notice a theme and, though it’s not explicit in the class’ title, Extreme Programming is a significant influencing factor in the course content. Like most software developers, XP has had a major positive impact on my pursuit of the craft, and it’s great to see the practices hold up so well over time.
The ADS course utilizes some lecture, but it is primarily a hands-on workshop giving participants the opportunity to experience developing high-quality, working software using Agile principles and practices. This is the second time I have experienced the class (the first time was as a participant back in May) and it has remained an intense, thoroughly enjoyable way to either learn the practices for the first time or to delve deeper into Agile. I find it hard to believe that anyone could leave the course without learning a great deal. It is both challenging and insightful.
I think my favorite part of the class are the questions and how they help shape and guide the content. That feedback is crucial to the success of the course (maybe any course) and, as an instructor, I find the questions leave me thinking about these principles long after the class is over.
Next time, I’ll share a couple of the questions and some of those thoughts. For now, though, I encourage you to take a look at Agile Skills Network and consider taking the course. Regardless of where you are in your software craftsman journey, the ADS course will encourage you to push further down the path!
Permalink
06.16.08
Posted in Agile, Pair Programming, TDD at 1:47 pm by Pablosan
Pair Programming is taught as an integral part of my TDD class. I emphasize two, further refinements of the practice: Promiscuous Pairing [PDF], and Ping-Pong Pairing (P3). While pairing with a good friend of mine and fellow trainer/mentor, Jeff (whose book you see to the right if you’re on my actual website), I came up with a new version of pairing: Stick-It-To-Your-Pair Programming. This is how it happened:
Once a week, Jeff and I try to get together for a TDD/Pairing session to keep our skills sharp. In the tradition of Dave Thomas’ Code Katas, we chose Jeff’s Roman Numeral Kata (do a search for “Roman Numeral Kata”, or look for his April 3rd, 2008 post). We had so much fun implementing an Arabic number to Roman Numeral converter that we decided to implement the reverse as well. Once we started the Roman Numeral to Arabic conversion exercise, we got a little goofy and started looking for the absolute simplest, silliest way to get the test to pass: essentially playing “Hot Potato” with the responsibility for actually implementing the right solution. The coder left with no choice but to actually implement the right approach loses.
We had a blast, jibing one another and laughing out loud (much to the dimay of those in cubes around us). What amazed me was that this approach isn’t just a lot of fun: it actually reinforces solid TDD principles:
- It forced us to implement the barest amount of code to get the test to pass.
- All code improvements were forced out by the existence of a failing test.
While P3 invented the approach, it took two screwballs like Jeff and I to crank it to eleven! Remember: you saw it here first. Oh yeah… Stick-It-To-Your-Pair Programming‘s gonna be big!
Permalink