Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Presentations The Limited Red Society

The Limited Red Society



Joshua Kerievsky discusses the need to reduce “red” periods of time while developing software. One is in the red when he spends too much time designing, or having compilation errors or the tests do not pass. Kerievsky demonstrates a method (Parallel Change) of reducing the red while refactoring code, and discusses another approach called Narrowed Change, and answers refactoring related questions.


Joshua Kerievsky has been programming professionally since 1987, and is the founder of Industrial Logic (, a company specializing in Extreme Programming (XP). Joshua has been an active member of the XP and patterns communities, he wrote a book called Refactoring To Patterns and he created Industrial Extreme Programming.

About the conference

Lean Software and Systems Conference 2010 — the place to learn about Lean, Pull Systems and Kanban. Understand how established industrial engineering theory can apply to software development process. The conference will assist organizations that depend on software – from start-ups to those that build complex, software intensive products, systems & services – with the application of Lean Thinking throughout the enterprise.

Recorded at:

Jun 03, 2010

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • What about ATDD?

    by Eetu Huisman,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I found the presentation extremely (pun intended) interesting. I know I have sometimes used the parallel change "pattern" myself without even realizing how useful it could be in other situations.

    What I was thinking about (and I don't think any of the questions presented by the audience touched this) was how does this apply to acceptance test driven development. Acceptance tests are by definition written beforehand, because their meaning is to a) make the story more understandable for the team and to b) make sure that the requirements of the story are really met. They are typically "red" until the functionalities they require are implemented, thus the story is more or less "done".

    Maybe failing new (story) acceptance tests shouldn't even show up as red, but as yellow or something. On the other hand, they do tell that there is work in progress, which should be limited. If we create just one test at a time, we miss the big picture completely, which doesn't seem like a good idea, either.

    Is there something crucial I'm missing here?

  • Responsive Design

    by Daniel Ribeiro,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Paralell Change is one of the design principles in Kent Beck's responsive design theme. It was also presented on a qcon last year.

  • Re: Responsive Design

    by Joshua Kerievsky,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Hi Daniel,

    I've been using the term Parallel Change for at least 4 years now, talking about it in my Refactoring Strategies & Tactics tutorials (formerly called Patterns of Refactoring) and showing videos of these strategies in my Refactoring eLearning album ( So it may just be that Kent selected a similar name to mine. I have to read his stuff and see how close it relates to the technique I'm referring to.

    Here are a few more Refactoring strategies I've been writing about over the years:

    * Piecemeal Change
    * Gradual Change
    * Narrowed Change
    * Sequence Change
    * Evolved Target
    * Unified Methods
    * Graceful Retreat

    I will blog about these one day.

  • Re: What about ATDD?

    by Joshua Kerievsky,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I don't think you're missing anything. If you do ATDD (or as we call it, Storytest-Driven Development), you will have work-in-progress and it will be good to work in such a way that you aren't "in the red" for very long periods of time, even though they will be longer than if you were just doing TDD.

    BTW, there was a time when we did ATDD all of the time and now we're much more selective about doing it.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p