June 15, 2007 Uncategorized, Unit Testing

Confusing Purpose and Benefit

Four zen's stones

 One of the main goals in Buddhism is to learn to be present in the now.  Not to wonder off into the past or the future.  When you are practicing meditation or any other Buddhist practice you do not do it for some future benefit, you are present in the moment.  You are doing it for the value experienced in the now.  It is true that these practices may contribute to benefits in the future.  Yet this is not the reason to do them.  To do the practices for some future benefit is to miss the point.  If this is your motivation you most likely do not understand the practice.  If you do not understand the practice you run the risk of not performing it correctly.  If you do not perform it correctly chances are that you will not reap the benefit that you were after in the first place.  How would this leave you thinking about the practice?

I see a parallel in TDD, where people think that the reason to do TDD is for the creation of a test suite.  This springs from a misunderstanding of the word test in TDD.  Test is a description of an action that you perform in the practice.  It is true that you may gain the benefit of a test suite, and this is not the purpose of the practice.  I have heard TDD described as a design/production activity.  The more I have learned about the eastern mind, see below, the more I see TDD as an activity of growth.  It is a means to grow your product.

Do TDD for right now, for how it grows the product, not for the regression test suite that it creates.iStock_000002543406XSmall

I see things like maintainability, KISS, and YAGNI in a different light now.  KISS and YAGNI are about keeping you focused on the purpose, where as maintainability is a benefit, most of the time.

To help illuminate the subtlety that I am pointing at I will use an extreme example.  If you threw away the unit tests that were created during TDD you would still be achieving the purpose of the practice.  Of course this would be a silly thing to do.  We do in fact keep the tests and enjoy the advantage they bring.  Doing things like addressing the unit tests in the refactoring step of TDD may increase the benefit.  The key is to be mindful and not do things to add or increase benefit at the expense of the purpose.

Growth vs Made

Here is a quote of Alan Watts that contrasts the eastern and western minds on the subject of growth vs designed:

All right, now–the two images which we have been working under for 2000 years and maybe more are what I would call two models of the universe, and the first is called the ceramic model, and the second the fully automatic model. The ceramic model of the universe is based on the book of Genesis, from which Judaism, Islam, and Christianity derive their basic picture of the world. And the image of the world in the book of Genesis is that the world is an artifact. It is made, as a potter takes clay and forms pots out of it, or as a carpenter takes wood and makes tables and chairs out of it. Don’t forget Jesus is the son of a carpenter. And also the son of God. So the image of God and of the world is based on the idea of God as a technician, potter, carpenter, architect, who has in mind a plan, and who fashions the universe in accordance with that plan.

So basic to this image of the world is the notion, you see, that the world consists of stuff, basically. Primoridial matter, substance, stuff. As parts are made of clay. Now clay by itself has no intelligence. Clay does not of itself become a pot, although a good potter may think otherwise. Because if you were a really good potter, you don’t impose your will on the clay, you ask any given lump of clay what it wants to become, and you help it to do that. And then you become a genious. But the ordinary idea I’m talking about is that simply clay is unintelligent; it’s just stuff, and the potter imposes his will on it, and makes it become whatever he wants.

And so in the book of Genesis, the lord God creates Adam out of the dust of the Earth. In other words, he makes a clay figurine, and then he breathes into it, and it becomes alive. And because the clay become informed. By itself it is formless, it has no intelligence, and therefore it requires an external intelligence and an external energy to bring it to life and to bring some sense to it. And so in this way, we inherit a conception of ourselves as being artifacts, as being made, and it is perfectly natural in our culture for a child to ask its mother ‘How was I made?’ or ‘Who made me?’ And this is a very, very powerful idea, but for example, it is not shared by the Chinese, or by the Hindus. A Chinese child would not ask its mother ‘How was I made?’ A Chinese child might ask its mother ‘How did I grow?’ which is an entirely different procedure form making. You see, when you make something, you put it together, you arrange parts, or you work from the outside in, as a sculpture works on stone, or as a potter works on clay. But when you watch something growing, it works in exactly the opposite direction. It works from the inside to the outside. It expands. It burgeons. It blossoms. And it happens all of itself at once. In other words, the original simple form, say of a living cell in the womb, progressively complicates itself, and that’s the growing process, and it’s quite different from the making process.

9,103 Total Views

1 to “Confusing Purpose and Benefit”

Trackbacks/Pingbacks

  1. [...] When something is grown, vs made, it is almost always in a useable state.  When something is made it is almost never useable until it is finished. [...]

  1. JayFlowers > Change Course 20 Degrees says...

    [...] When something is grown, vs made, it is almost always in a useable state.  When something is made it is almost never useable until it is finished. [...]

Leave a comment

*

here