Hands-on coding exercises
We provide hands-on coding exercises at the software craftsmanship meetings for several reasons. Some of those reasons include
- We provide coding exercises to give participants an opportunity to practice their craft. Having the opportunity to practice in a non-work, non-production environment is an important component of improving our skills.
- Hands-on coding exercises provide an opportunity for participants to learn about the techniques we talk about. Talking about TDD or pairing or other techniques is valuable, but the learning experience is incomplete without actually using the techniques.
- We want the entire meeting to be interactive, including the coding exercise. We don't want attendees to get "lectured at" for an hour. We want people to be engaged and to talk to and get to know each other.
Notes for presenters
If this is your first time leading a coding exercise you probably want to choose one of the exercises from the list below. If you have lead a coding exercise before feel free to choose from the list below or to branch out to other katas you find online or other interesting problems you encounter. Whether you are using an exercise from the list or bringing one of your own, please keep the following in mind:
- The coding exercise portion of the meeting is 60 minutes. Make sure your exercise can fit in that time. The example exercise are chosen so that they can fit in that time.
- The exercise should be hands-on for everyone in attendance. Not everyone necessarily has to participate at the same time (a group Randori-type exercise is great, for example), but everyone should be able to write code and participate in some way for the entire time.
- Participants should spend the majority of their time coding. It's okay to have a few minutes of intro at the beginning and/or a few minutes of debrief at the end, but people should be coding for most of the time.
- The entire meeting is language and platform agnostic, so ideally the exercise can be completed in a variety of languages on a Mac, Windows or Linux machine. Occasionally we do an exercise on getting started with a specific language or something else where a specific language is required. In those cases make sure that the necessary tools are cross platform. Also make sure that any installers or other tools participants will need can be installed quickly. It might also be a good idea to have any installers on a USB drive or two in case there are issues with internet access.
- Before presenting the coding exercise, think about if you would like participants to code individually, in pairs, as a group, in whatever grouping they want, etc. The meeting organizers can help people find pairs or get in to other groups if you need help organize themselves.
The above list of example code katas is a great place to start, especially if this is your first time facilitating the coding exercise. But this is by no means an exhaustive list. There are many lists of code katas that various people have compiled, such as this one. Or you can make up your own katas. If you need help knowing if a kata would be appropriate, please ask one of the meeting organizers.