Keyboard Shortcuts
Likes
Search
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. --
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:
|
|||||||||||
Freedom from frequent,? long debugging sessions On Tue, Jul 4, 2023, 10:12 Tim Ottinger <tottinge@...> wrote:
|
|||||||||||
- 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)
toggle quoted message
Show quoted text
- 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. --
---------------------------------------------------------------------- * 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@...> 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:
|
|||||||||||
On 4 Jul 2023, at 14:22, J. B. Rainsberger <me@...> wrote:
Which freedoms? Why do you care? What do those freedoms give you?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
|
|||||||||||
On Tue, Jul 4, 2023 at 12:13?PM Tim Ottinger <tottinge@...> wrote: ?
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 |