The Ground Rules

Welcome! As a new member of The jbrains Experience, you can expect the following:

  • A library of useful articles to read at your leisure.
  • The opportunity to ask questions and get answers, both from me and from others in the group.
  • The chance to hire me as a coach for a tiny fraction of the price that companies typically pay.

When you ask a question, you're not only getting help for yourself, but you're also doing two very important things:

  1. You're making it easier for another person, who perhaps didn't want to ask that question, and now feels better.
  2. You're giving me a new article to write, more confident that the group will find the topic relevant to their needs.

Therefore, please ask questions!

Ask Questions About What?!

This is hard, because I don't want to constrain the discussion, but at the same time, you probably need to know at least where to start.

If you scan the articles, you'll see some themes, and that will give you a picture of which topics are certainly "on topic" for this group. Generally speaking, I'm happy to answer questions related to the life and work of a software development professional. These topics range from deeply technical to deeply philosophical. Here are a few areas in which I specialize:

  • Evolutionary Design: TDD, writing tests to guide design decisions, incremental design, iterative design.
  • Getting Things Done: not only David Allen's system, but also more generally how to organize and track your work. This includes the topic that we old folks still think of as "project management".
  • Teamwork and Communication: navigating the feedback loops between us and others as we try to figure out how to work together with some amount of harmony.
  • Product Sashimi: how to explore and understand features in order to plan to deliver them in an incremental and iterative way.
  • Lifestyle Design: personal finance, the tradeoffs between traditional jobs and freelance work.

There's more, but that's enough to start. I make this commitment to you: if I don't have a good answer, then I will tell you. I will never go beyond what I know and have experienced. I will never suggest anything for you that I'm not prepared to do myself.

How This "Course" Works

Let's stop calling this as "course". It's only here because a training platform was the best choice for me at the time to launch this service. That means that it's structured like a course, but you can read whatever you like, in any sequence, and there are no assignments.

Each article's page includes a comment thread. Please share your thoughts and ask questions. If you are interested in a topic, then subscribe to its comment thread. When you ask a question, I will answer it, either briefly in the comments, by adding details to the article, or by writing a new article. Join the discussion! It's all for you!

If you'd like to answer someone else's question or comment further on a thread, then you're very welcome to do that! If you want to share a relevant outside resource, then please do that, but there are limits: no spam, no link-bait, no marketing.

I intend to give you an answer within 3 days, even if it's not complete. If I need to write an article, then I share my notes with the person who asked the question before publishing the article. This gives me a chance to answer quickly, while still taking the time to craft a high-quality article for the rest of the group to read.

Sometimes I will answer with audio or video, rather than an article. For deeply technical programming questions, I might find it easier to demonstrate an answer than describe it. The production quality of that media might be lower in order to provide a useful answer sooner.

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. You can always come back when you're ready.

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.

This group is aimed at individuals, which includes self-employed people or those who otherwise work in one-person companies. Your membership includes deep discounts for real-time working sessions with me and I make those discount available only to individuals. If you need consulting, coaching, or mentoring for your team or larger group, then please visit to browse your options or go directly to to learn more about giving your team the support they need.

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