开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

TDD is Freedom


 

I'd like to build on this in addition to echoing it.

Everyone, feel invited to join in. I'm asking everyone and not only George.

Which freedoms? Why do you care? What do those freedoms give you?

I have noticed these kinds of freedom:

- freedom from chasing after silly mistakes
- freedom from having to "get it right" the first time
- freedom from agonizing over design decisions
- freedom from the blank page

Most of all, I enjoyed the freedom from thinking that I had to "be born with it" to design software systems well. This is the freedom I wish most to share with the most people. And that's why I teach TDD.
--
J. B. (Joe) Rainsberger :: ?:: ::

Replies from this account routinely take a few days, which allows me to reply thoughtfully. I reply more quickly to messages that clearly require answers urgently. If you need something from me and are on a deadline, then let me know how soon you need a reply so that I can better help you to get what you need. Thank you for your consideration.


On Mon, Jun 26, 2023 at 5:04?PM George Dinwiddie <lists@...> wrote:
"That's what TDD is, you know.
It's not just test cases and assertions
and a suite and a test runner.
That's what TDD needs.
But what TDD is... is freedom."


On 6/26/23 12:59 PM, George Dinwiddie wrote:
> Joe,
>
> There are a lot of aspects I could mention, but it basically comes down
> to the fact that TDD made my software development joyful. The worrisome
> aspects were out of my head and into test code.
>
>? ?- George
>
> On 6/26/23 9:21 AM, J. B. Rainsberger wrote:
>> Hi, folks. Why do you still care about TDD?
>>
>> Please skip the platitudes and write from the heart. Why does it still
>> matter to you? Why do you still practise it? How does it still help?
>> Why do you still teach it?
>>
>> Or not?
>> --
>> J. B. (Joe) Rainsberger :: tdd.training <>?::
>> <> ::
>> <>
>>
>

--
? ----------------------------------------------------------------------
? ?* George Dinwiddie *? ? ? ? ? ? ? ? ? ? ?
? ?Software Development? ? ? ? ? ? ? ? ? ?
? ?Consultant and Coach? ? ? ? ?
? ----------------------------------------------------------------------





--
J. B. (Joe) Rainsberger :: :: ::
Teaching evolutionary design and TDD since 2002


 

Freedom to refactor, knowing you can check your work after each variable rename to know if you've made a mistake.?


On Tue, Jul 4, 2023, 08:23 J. B. Rainsberger <me@...> wrote:
I'd like to build on this in addition to echoing it.

Everyone, feel invited to join in. I'm asking everyone and not only George.

Which freedoms? Why do you care? What do those freedoms give you?

I have noticed these kinds of freedom:

- freedom from chasing after silly mistakes
- freedom from having to "get it right" the first time
- freedom from agonizing over design decisions
- freedom from the blank page

Most of all, I enjoyed the freedom from thinking that I had to "be born with it" to design software systems well. This is the freedom I wish most to share with the most people. And that's why I teach TDD.
--
J. B. (Joe) Rainsberger :: ?:: ::

Replies from this account routinely take a few days, which allows me to reply thoughtfully. I reply more quickly to messages that clearly require answers urgently. If you need something from me and are on a deadline, then let me know how soon you need a reply so that I can better help you to get what you need. Thank you for your consideration.

On Mon, Jun 26, 2023 at 5:04?PM George Dinwiddie <lists@...> wrote:
"That's what TDD is, you know.
It's not just test cases and assertions
and a suite and a test runner.
That's what TDD needs.
But what TDD is... is freedom."


On 6/26/23 12:59 PM, George Dinwiddie wrote:
> Joe,
>
> There are a lot of aspects I could mention, but it basically comes down
> to the fact that TDD made my software development joyful. The worrisome
> aspects were out of my head and into test code.
>
>? ?- George
>
> On 6/26/23 9:21 AM, J. B. Rainsberger wrote:
>> Hi, folks. Why do you still care about TDD?
>>
>> Please skip the platitudes and write from the heart. Why does it still
>> matter to you? Why do you still practise it? How does it still help?
>> Why do you still teach it?
>>
>> Or not?
>> --
>> J. B. (Joe) Rainsberger :: tdd.training <>?::
>> <> ::
>> <>
>>
>

--
? ----------------------------------------------------------------------
? ?* George Dinwiddie *? ? ? ? ? ? ? ? ? ? ?
? ?Software Development? ? ? ? ? ? ? ? ? ?
? ?Consultant and Coach? ? ? ? ?
? ----------------------------------------------------------------------





--
J. B. (Joe) Rainsberger :: :: ::
Teaching evolutionary design and TDD since 2002


 

Freedom from frequent,? long debugging sessions


On Tue, Jul 4, 2023, 10:12 Tim Ottinger <tottinge@...> wrote:
Freedom to refactor, knowing you can check your work after each variable rename to know if you've made a mistake.?

On Tue, Jul 4, 2023, 08:23 J. B. Rainsberger <me@...> wrote:
I'd like to build on this in addition to echoing it.

Everyone, feel invited to join in. I'm asking everyone and not only George.

Which freedoms? Why do you care? What do those freedoms give you?

I have noticed these kinds of freedom:

- freedom from chasing after silly mistakes
- freedom from having to "get it right" the first time
- freedom from agonizing over design decisions
- freedom from the blank page

Most of all, I enjoyed the freedom from thinking that I had to "be born with it" to design software systems well. This is the freedom I wish most to share with the most people. And that's why I teach TDD.
--
J. B. (Joe) Rainsberger :: ?:: ::

Replies from this account routinely take a few days, which allows me to reply thoughtfully. I reply more quickly to messages that clearly require answers urgently. If you need something from me and are on a deadline, then let me know how soon you need a reply so that I can better help you to get what you need. Thank you for your consideration.

On Mon, Jun 26, 2023 at 5:04?PM George Dinwiddie <lists@...> wrote:
"That's what TDD is, you know.
It's not just test cases and assertions
and a suite and a test runner.
That's what TDD needs.
But what TDD is... is freedom."


On 6/26/23 12:59 PM, George Dinwiddie wrote:
> Joe,
>
> There are a lot of aspects I could mention, but it basically comes down
> to the fact that TDD made my software development joyful. The worrisome
> aspects were out of my head and into test code.
>
>? ?- George
>
> On 6/26/23 9:21 AM, J. B. Rainsberger wrote:
>> Hi, folks. Why do you still care about TDD?
>>
>> Please skip the platitudes and write from the heart. Why does it still
>> matter to you? Why do you still practise it? How does it still help?
>> Why do you still teach it?
>>
>> Or not?
>> --
>> J. B. (Joe) Rainsberger :: tdd.training <>?::
>> <> ::
>> <>
>>
>

--
? ----------------------------------------------------------------------
? ?* George Dinwiddie *? ? ? ? ? ? ? ? ? ? ?
? ?Software Development? ? ? ? ? ? ? ? ? ?
? ?Consultant and Coach? ? ? ? ?
? ----------------------------------------------------------------------





--
J. B. (Joe) Rainsberger :: :: ::
Teaching evolutionary design and TDD since 2002


 

- freedom from having to hold the details of the assumptions of dependent code in you head, the tests will let you know if you violate them (to the extent you express those assumptions in tests)
- freedom from having to trace all the consequences of a bug fix. I can fix the obvious problem, and my tests will tell me what else I need to fix.
- freedom to push the code into a shape that's easier to understand, without worrying that I'll break something.
- freedom from worrying that I've unknowingly broken something that was working before.

On 7/4/23 9:22 AM, J. B. Rainsberger wrote:
I'd like to build on this in addition to echoing it.
Everyone, feel invited to join in. I'm asking everyone and not only George.
Which freedoms? Why do you care? What do those freedoms give you?
I have noticed these kinds of freedom:
- freedom from chasing after silly mistakes
- freedom from having to "get it right" the first time
- freedom from agonizing over design decisions
- freedom from the blank page
Most of all, I enjoyed the freedom from thinking that I had to "be born with it" to design software systems well. This is the freedom I wish most to share with the most people. And that's why I teach TDD.
--
J. B. (Joe) Rainsberger :: tdd.training <>?:: jbrains.ca <> ::
blog.thecodewhisperer.com <>
Replies from this account routinely take a few days, which allows me to reply thoughtfully. I reply more quickly to messages that clearly require answers urgently. If you need something from me and are on a deadline, then let me know how soon you need a reply so that I can better help you to get what you need. Thank you for your consideration.
On Mon, Jun 26, 2023 at 5:04?PM George Dinwiddie <lists@... <mailto:lists@...>> wrote:
"That's what TDD is, you know.
It's not just test cases and assertions
and a suite and a test runner.
That's what TDD needs.
But what TDD is... is freedom."
On 6/26/23 12:59 PM, George Dinwiddie wrote:
> Joe,
>
> There are a lot of aspects I could mention, but it basically
comes down
> to the fact that TDD made my software development joyful. The
worrisome
> aspects were out of my head and into test code.
>
>? ?- George
>
> On 6/26/23 9:21 AM, J. B. Rainsberger wrote:
>> Hi, folks. Why do you still care about TDD?
>>
>> Please skip the platitudes and write from the heart. Why does it
still
>> matter to you? Why do you still practise it? How does it still
help?
>> Why do you still teach it?
>>
>> Or not?
>> --
>> J. B. (Joe) Rainsberger :: tdd.training <
<>>?::
>> jbrains.ca <> <
<>> ::
>> blog.thecodewhisperer.com <>
< <>>
>>
>
--
----------------------------------------------------------------------
? ?* George Dinwiddie *
<>
? ?Software Development
<>
? ?Consultant and Coach
<>
----------------------------------------------------------------------
--
J. B. (Joe) Rainsberger :: <> :: <> :: <>
Teaching evolutionary design and TDD since 2002
--
----------------------------------------------------------------------
* George Dinwiddie *
Software Development
Consultant and Coach
----------------------------------------------------------------------


 

开云体育

To me the best is freedom from the fear of making changes to the codebase late in time.

?

From another perspective I also like the rails that TDD provides to my development: I have a repeatable way to make small increments at a constant pace. TDD gives me a safe method to walk my way through requirements.

?

--

Gian Carlo (gk)

?

?

From: [email protected] <[email protected]> on behalf of J. B. Rainsberger <me@...>
Date: Tuesday, 4 July 2023 at 15:23
To: [email protected] <[email protected]>
Subject: [testdrivendevelopment] TDD is Freedom

I'd like to build on this in addition to echoing it.

?

Everyone, feel invited to join in. I'm asking everyone and not only George.

?

Which freedoms? Why do you care? What do those freedoms give you?

?

I have noticed these kinds of freedom:

?

- freedom from chasing after silly mistakes

- freedom from having to "get it right" the first time

- freedom from agonizing over design decisions

- freedom from the blank page

?

Most of all, I enjoyed the freedom from thinking that I had to "be born with it" to design software systems well. This is the freedom I wish most to share with the most people. And that's why I teach TDD.

--

J. B. (Joe) Rainsberger :: ?:: ::

?

Replies from this account routinely take a few days, which allows me to reply thoughtfully. I reply more quickly to messages that clearly require answers urgently. If you need something from me and are on a deadline, then let me know how soon you need a reply so that I can better help you to get what you need. Thank you for your consideration.

?

On Mon, Jun 26, 2023 at 5:04?PM George Dinwiddie <lists@...> wrote:

"That's what TDD is, you know.
It's not just test cases and assertions
and a suite and a test runner.
That's what TDD needs.
But what TDD is... is freedom."


On 6/26/23 12:59 PM, George Dinwiddie wrote:
> Joe,
>
> There are a lot of aspects I could mention, but it basically comes down
> to the fact that TDD made my software development joyful. The worrisome
> aspects were out of my head and into test code.
>
>? ?- George
>
> On 6/26/23 9:21 AM, J. B. Rainsberger wrote:
>> Hi, folks. Why do you still care about TDD?
>>
>> Please skip the platitudes and write from the heart. Why does it still
>> matter to you? Why do you still practise it? How does it still help?
>> Why do you still teach it?
>>
>> Or not?
>> --
>> J. B. (Joe) Rainsberger :: tdd.training <
>?::
>>
<> ::
>>
<>
>>
>

--
? ----------------------------------------------------------------------
? ?* George Dinwiddie *? ? ? ? ? ? ? ? ? ? ?

? ?Software Development? ? ? ? ? ? ? ? ? ?

? ?Consultant and Coach? ? ? ? ?

? ----------------------------------------------------------------------




--
J. B. (Joe) Rainsberger ::
:: ::
Teaching evolutionary design and TDD since 2002


 

On 4 Jul 2023, at 14:22, J. B. Rainsberger <me@...> wrote:
Which freedoms? Why do you care? What do those freedoms give you?

I have noticed these kinds of freedom:

- freedom from having to "get it right" the first time
- freedom from agonizing over design decisions
- freedom from the blank page
These three. I remember about the time I was getting into TDD, sitting in a design session with some hot-shots from an MIT-founded company and the deer-in-the-headlights freeze because of the cost of making a commitment.

Most of all, I enjoyed the freedom from thinking that I had to "be born with it" to design software systems well. This is the freedom I wish most to share with the most people. And that's why I teach TDD.
I never associated that with TDD as a technique. I still see badly designed systems “test-driven” but perhaps less badly than before.

A colleague of mine had to deal with a very weak on-shore team in the early days. They took a long time to improve because it’s hard to do good design when completely immune to development pain.

S


 

开云体育

Freedom to focus on one thing at a time.

- what am I building?
- what defines success--how will I know when the code works?
- how do I describe that? how will I interface with that?
- how do I code that?
- does it work?
- did I inadvertently break anything else?
- are there opportunities to improve the design?
- are there opportunities to improve clarity for us all?
- what's the next small increment that will move the system forward?

That's a lot of stuff to remember. And yet the ingrained cycle of TDD means I don't ever forget what questions are or where I am.

Freedom to think.

Cheers,
Jeff

Jeff Langr / +1-719-287-4335




July 4, 2023 at 7:22 AM
I'd like to build on this in addition to echoing it.

Everyone, feel invited to join in. I'm asking everyone and not only George.

Which freedoms? Why do you care? What do those freedoms give you?

I have noticed these kinds of freedom:

- freedom from chasing after silly mistakes
- freedom from having to "get it right" the first time
- freedom from agonizing over design decisions
- freedom from the blank page

Most of all, I enjoyed the freedom from thinking that I had to "be born with it" to design software systems well. This is the freedom I wish most to share with the most people. And that's why I teach TDD.
--
J. B. (Joe) Rainsberger :: ?:: ::

Replies from this account routinely take a few days, which allows me to reply thoughtfully. I reply more quickly to messages that clearly require answers urgently. If you need something from me and are on a deadline, then let me know how soon you need a reply so that I can better help you to get what you need. Thank you for your consideration.


--
J. B. (Joe) Rainsberger :: :: ::
Teaching evolutionary design and TDD since 2002


 

On Tue, Jul 4, 2023 at 12:13?PM Tim Ottinger <tottinge@...> wrote:
?
Freedom to refactor, knowing you can check your work after each variable rename to know if you've made a mistake.?

This sounds like "Freedom from getting it right the first time". Is there more than that to this particular freedom for you?
--
J. B. (Joe) Rainsberger :: ?:: ::

Replies from this account routinely take a few days, which allows me to reply thoughtfully. I reply more quickly to messages that clearly require answers urgently. If you need something from me and are on a deadline, then let me know how soon you need a reply so that I can better help you to get what you need. Thank you for your consideration.

--
J. B. (Joe) Rainsberger :: :: ::
Teaching evolutionary design and TDD since 2002