What a legend. Excellent talk. I don't think a lot of people (especially those that bash TDD) realize how good of an idea this is and how rare it is to come up with this way of thinking.
To take a shot at answering the QA question... The programmers themselves should design & write programmer tests (aka. unit tests) for both themselves & colleagues (QA) to feel reasonably confident at that level of development (the bottom of the test pyramid). QA should be more responsible for designing & maintaining the upper-half of the test pyramid. It's fine if QA wants to test the durability of the base of the pyramid, and they should, but decent software engineers should be (allowed to be) self-organizing. When defects are found (by QA) they should be reported down to engineering, who will design their own solutions for each issue. (A two-circle Venn diagram, representing programmer vs. QA design & maintenance responsibilities, would overlap in the middle / integration level of the test pyramid.)
I'm one of those people who say "TEST driven development" isn't a good name... BUT, when Kent says "fine, you give me a better name", I just stare at my boots for half and hour and then say "sorry". ;) 32:55 ... perhaps "Piton Assisted Development" would be a good name. ;)
@Kent Beck, would love if you reach out to Jim Coplien on his alternative to TDD. With it, I think he is ok if we learn TDD like we learn a kata. But moving assertions into code You have TCR (which I dislike). Jim Coplien has something different too. An evolution of TDD
16:44 LOL! The idea that you need to know what you're doing before doing it is really something lost through the Agile propaganda. Mind you that nobody in pure agile has ever saying that, more the contrary, but a lot of people mixed them up.
Really dissapointing at (ua-cam.com/video/C5IH0ABmyc0/v-deo.html ), Kent talks about 'Test'. He is just babbling. There is no reference to those who have spent a lot of time to explain 'test'. Yet, no one has a problem with this. This is the same problem with all the books related to agile, including Agile Testing, which talk about testing. For the record, I think Kent is a great intellectual and has made great contributions to software development. But, he doesn't understand 'test'.
@nilanjenator Are you serious? You know he is one of the few global technicians playing this game in god mode. His explanation sounds more than correct and he also explain additionally why he has not renamed this concept. You are disappointed because he argued thoughtfully and not about the facts he have told. I would like you to remind you here, that those Smalltalk guys (such people as Beck and Cockburn corresponds to your comment) have no need to offer monkeys their cigarettes but still remain friendly when their lighters do not work properly right away. With all due respect, your comment is that of a troll and this is a problem of the receiver here, not it's sender.
@@redsea9931 you are right, maybe I wasn't clear. When we are trying to develop a deep understanding of a software, in order to find risk, there is no substitute for using the software in an environment as close to the end-user as possible. If you compare with the design or marketing of physical products, it makes no sense for any delay in using the product/MVP/mockup in order to check fit-for-purpose. To evaluate a software for risk, you must *use* the product. Of course, you can do a lot before the product is developed - thought experiments, what-if scenarios, mock-ups. But, they are not a substitute for actual use of a product. Moving on, TDD does very little in terms of testing. In TDD, you have a test with a *known* outcome. That helps with code design. But that has *nothing* to do with testing. BTW, I still find TDD helpful, in terms of the what-if questions the possible exploration. However, the *test* part of TDD is *not* testing. And the problem is not with the name. It's about educating users to not be under the delusion that that is testing.
I agree with Kent Beck's definition. In essence, a test is just given some input, we have some processing of the input to achieve some output, and we have expectations regarding the output. That's it, simple.
What an insightful talk! "You have to experience it!"
What a legend. Excellent talk.
I don't think a lot of people (especially those that bash TDD) realize how good of an idea this is and how rare it is to come up with this way of thinking.
Thanks for sharing, excellent presentation by Kent beck
To take a shot at answering the QA question... The programmers themselves should design & write programmer tests (aka. unit tests) for both themselves & colleagues (QA) to feel reasonably confident at that level of development (the bottom of the test pyramid). QA should be more responsible for designing & maintaining the upper-half of the test pyramid. It's fine if QA wants to test the durability of the base of the pyramid, and they should, but decent software engineers should be (allowed to be) self-organizing. When defects are found (by QA) they should be reported down to engineering, who will design their own solutions for each issue. (A two-circle Venn diagram, representing programmer vs. QA design & maintenance responsibilities, would overlap in the middle / integration level of the test pyramid.)
I'm one of those people who say "TEST driven development" isn't a good name... BUT, when Kent says "fine, you give me a better name", I just stare at my boots for half and hour and then say "sorry". ;)
32:55 ... perhaps "Piton Assisted Development" would be a good name. ;)
@Kent Beck, would love if you reach out to Jim Coplien on his alternative to TDD. With it, I think he is ok if we learn TDD like we learn a kata. But moving assertions into code
You have TCR (which I dislike). Jim Coplien has something different too. An evolution of TDD
24:30 Anyone who doesn't do it every day hasn't understood it either.
Exactly, we need daily practice to truly understand something.
20:08 Book: GOOS
16:44 LOL! The idea that you need to know what you're doing before doing it is really something lost through the Agile propaganda. Mind you that nobody in pure agile has ever saying that, more the contrary, but a lot of people mixed them up.
Really dissapointing at (ua-cam.com/video/C5IH0ABmyc0/v-deo.html ), Kent talks about 'Test'. He is just babbling. There is no reference to those who have spent a lot of time to explain 'test'. Yet, no one has a problem with this.
This is the same problem with all the books related to agile, including Agile Testing, which talk about testing.
For the record, I think Kent is a great intellectual and has made great contributions to software development. But, he doesn't understand 'test'.
Hi @nilanjenator, what are good references on 'Test' in your opinion? Would be interesting for me to contrast it with what Kent is saying. Thanks
@nilanjenator Are you serious? You know he is one of the few global technicians playing this game in god mode. His explanation sounds more than correct and he also explain additionally why he has not renamed this concept. You are disappointed because he argued thoughtfully and not about the facts he have told. I would like you to remind you here, that those Smalltalk guys (such people as Beck and Cockburn corresponds to your comment) have no need to offer monkeys their cigarettes but still remain friendly when their lighters do not work properly right away. With all due respect, your comment is that of a troll and this is a problem of the receiver here, not it's sender.
@@redsea9931 you are right, maybe I wasn't clear.
When we are trying to develop a deep understanding of a software, in order to find risk, there is no substitute for using the software in an environment as close to the end-user as possible.
If you compare with the design or marketing of physical products, it makes no sense for any delay in using the product/MVP/mockup in order to check fit-for-purpose.
To evaluate a software for risk, you must *use* the product.
Of course, you can do a lot before the product is developed - thought experiments, what-if scenarios, mock-ups. But, they are not a substitute for actual use of a product.
Moving on, TDD does very little in terms of testing. In TDD, you have a test with a *known* outcome. That helps with code design. But that has *nothing* to do with testing. BTW, I still find TDD helpful, in terms of the what-if questions the possible exploration. However, the *test* part of TDD is *not* testing. And the problem is not with the name. It's about educating users to not be under the delusion that that is testing.
I agree with Kent Beck's definition.
In essence, a test is just given some input, we have some processing of the input to achieve some output, and we have expectations regarding the output. That's it, simple.
@@valentinajemuovic are you aware of any alternate opinions/definitions?