Guidelines for Demonic Coding Sessions
Lee Spector, 2015
Demonic coding sessions allow programmers to work together and help one
another, even if they are working on different things and even if they
have different levels of skill.
In a demonic coding session:
- The
leader splits the group randomly in half, into "coders"
and "demons." Roles switch halfway through the session, so everyone
will spend half of the session as a coder and half as a demon.
If the total number of participants, including the leader, is even,
then the leader participates just like everyone else. Otherwise the
leader is an extra floating demon for the whole session.
- Coders begin coding on whatever projects they want to work on (or have to work on).
- Each demon finds a coder to demonize. Each coder
should have a demon.
Demons should observe, ask questions, and make suggestions.
Demons with fewer skills than their coders should use the interactions
to learn what the coder knows. Demons with more skills than their
coders should use the interactions to pass on and
reinforce their knowledge through informal teaching. Roughly 50% of a coder's
time should be devoted to demonic interactions. The rest should be
devoted to making progress on the programming project.
- Periodically (every 15 minutes or so) the leader calls for all demons to move and to demonize other coders.
- Halfway through the session the leader calls for the role change. All coders become demons and all demons become coders.