The Ground Rules

This is intended as an indefinite, open-ended learning environment. I'll continue to run it as long as people want to learn with me. My vision involves building a learning community that we all love to participate in, and which helps us all learn. I'll share what I know and try to help you succeed at your work.

At first, I expect us to focus on programmers and programming, but I don't want to limit what we learn. It remains my responsibility–and I take this very seriously–to set limits on what I feel comfortable teaching and admit when I'm out of my depth. I will never try to teach what I don't confidently understand.

I originally designed this as a companion to the World's Best Intro to TDD courses, so you'll find people here discussing what's going on in those courses. Over time, however, it has become a more general learning, coaching, and consulting group. Even if you don't participate in those courses, we will at least discuss all things TDD, including programmer/unit testing, modular design, object-oriented programming, functional programming, Java, Ruby, Python... you get the idea. We will also invariably talk about discipline and good habits for programmers, how to communicate with other programmers as well as other people, how to manage projects and products, XP, Scrum, Kanban Method... you decide.

The most important message I have for you is this: this is your opportunity to learn from and with me the things that matter most to you. You can (and should!) go through my other training courses, but if you don't want to wait for some future course to answer your burning question, then ask it here!

How This "Course" Works

You participate in the comment threads on each "lecture" page. You can ask a question anywhere, and I will queue it up for an answer. I will organize answers accordingly, and on those pages you'll find comment threads for follow-up questions, comments, criticisms, whatever. With any luck, over time the result will look like curated course material.

If you see someone ask a question and want to answer it yourself, then feel free to respond in the comments. Also feel free to link to outside resources, but please... no spam, no link-bait, no marketing.

I commit to answering questions within two weeks at the extreme, but much more often within a few days. My travel schedule provides the most common obstacle to answering quickly. Sometimes, if you ask a particularly difficult question, I need to find a few quiet hours to draft a reply, and that sometimes has to wait.

I will generally choose the appropriate format to answer your question, which might be text (article), podcast (audio) or demonstration (video). If you have a specific request, then I will try to honor it, but I can't record and produce 100 hours of video per month. I intend to produce a podcast version of these articles, so that you have something to listen to on your commute, but you'll never be forced to listen to audio when you prefer to read or skim text. In all cases, my goal is to get you a useful answer soon, then develop better answers over time.

Especially when I answer a question with a video demonstration, I will produce a rough cut demo and post it sooner, rather than striving for high production value and delaying release.

Don't Be Shy!

Ask as many questions as you want. Don't hold back. Offer your ideas to your fellow learners. This group works because you drive the learning. If you don't know what you need to learn, then other training courses like The World's Best Intro to TDD probably fit you better. (Moreover, selected training courses include a month's free subscription to this course, anyway, so there's no risk for you to try one instead of the other.)

Some Legal-ish Stuff

I'm not going to spam you, and you're not going to spam me. More generally, I'm not going to act abusively and neither will you. If I detect abuse, then I will remove you from this group. If you detect abuse, then you should tell me and we'll fix the problem together.

I reserve the right to use the discussions in this group to help design material for future training courses, but I will never include your personal details in those courses. I will anonymize your code, your words, everything. No-one who hasn't had access to this group will know that that material came from you.

You will not distribute the content of this group to people who are not participating here, although I hope you will tell your friends and colleagues in general terms what you're learning here and how wonderful the experience is. The more learners we have, the richer the experience.

If, at any time, I need to change these ground rules, then I will do it openly and prominently.