PostHole
Compose Login
You are browsing us.zone2 in read-only mode. Log in to participate.
rss-bridge 2024-05-10T16:38:00+00:00

SE Radio 615: Kent Beck on "Tidy First?"

Kent Beck, Chief Scientist at Mechanical Orchard, and inventor of Extreme Programming and Test-Driven Development, joins SE Radio host Giovanni Asproni for a conversation on software design based on his latest book "Tidy First?". The episode starts with exploring the reasons for writing the book, and introducing the concepts of tidying, cohesion, and coupling. It continues with a conversation about software design, and the impact of tidyings. Then Kent and Giovanni discuss how to balance design and code quality decisions with cost, value delivered, and other important aspects. The episode ends with some considerations on the impact of Artificial Intelligence on the software developer's job. Brought to you by IEEE Software and IEEE Computer Society.


Kent Beck, Chief Scientist at Mechanical Orchard, and inventor of Extreme Programming and Test-Driven Development, joins host Giovanni Asproni for a conversation on software design based on his latest book “Tidy First?”. The episode starts with exploring the reasons for writing the book, and introducing the concepts of tidying, cohesion, and coupling. It continues with a conversation about software design, and the impact of tidyings. Then Kent and Giovanni discuss how to balance design and code quality decisions with cost, value delivered, and other important aspects. The episode ends with some considerations on the impact of Artificial Intelligence on the software developer’s job. Brought to you by IEEE Software and IEEE Computer Society.



Show Notes

Related Episodes

  • SE Radio 574: Chad Michel on Software as an Engineering Discipline
  • SE Radio 554: Adam Tornhill on Behavioral Code Analysis
  • SE Radio 520: John Ousterhout on A Philosophy of Software Design
  • SE Radio 462: Felienne on the Programmer’s Brain
  • SE Radio 430: Marco Faella on Seriously Good Software
  • SE Radio 333: Marian Petre and André van der Hoek on Software Design
  • SE Radio 278: Peter Hilton on Naming
  • SE Radio 262: Software Quality with Bill Curtis
  • SE Radio 236: Rebecca Parsons on Evolutionary Architecture
  • SE Radio 55: Refactoring Pt. 2
  • SE Radio 46: Refactoring Pt. 1

Links And References

  • Book: Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design, Ed Yourdon, and Larry Constantine, 1979 Prentice Hall (out of print)

Transcript

Transcript brought to you by IEEE Software magazine and IEEE Computer Society. This transcript was automatically generated. To suggest improvements in the text, please contact [email protected] and include the episode number.

Giovanni Asproni 00:00:18 Welcome to Software Engineering Radio. I’m your host Giovanni Asproni. And today I’m joined by Kent Beck for a conversation on software design based on his latest book, Tidy First? with a question mark at the end. Kent is the creator of Extreme Programming, a pioneer of software patterns and a co-author of Uni. He rediscovered test-driven development and is an observer of three Xís, Explore, Expand, Extract. He’s a signatory of the German manifesto and currently is the Chief Scientist at Mechanical Orchard. He authored several books on extreme programming test-driven development and patterns, and of course Tidy First?. Kent, welcome to Software Engineering Radio. Is there anything I missed that you’d like to add?

Kent Beck 00:01:02 Ciao Gio, it’s good to be with you this San Francisco morning. No, I think that about covers it as far as the computing world is concerned.

Giovanni Asproni 00:01:10 Okay, then let’s start. So first of all, let’s start about the reasons for writing the book. Yeah? So reading your book, you wrote there that your aim was to bring to today’s audience the contents of the book Structured Design by Yourdon and Constantine, which you call the bible of software engineering. Can you tell us a bit more about that?

Kent Beck 00:01:37 When I was in college, I had this brand new book as a textbook called Structured Design. It’s a green cover. If you had it in college, you fear this book as well (oh you have a copy, fantastic). Because it was a college textbook, of course, I only read the assigned parts and I read them as quickly as necessary to pass the test. So I didn’t really absorb everything that was, or much of what was in the book. And then in 2005, I was invited to be on a panel with Ed, (rest in peace) and Larry to discuss the 25th anniversary of the book. So I thought, well, I better read it. And I read it cover to cover and it was an absolute page turner to me. And what I discovered as I was reading it was there laid out were the basic fundamental laws like Newton’s Laws of Physics, but for software engineering, the challenge is, the examples are ancient.

Kent Beck 00:02:42 , there’s a discussion of paper tape, there’s a storage medium, there’s a discussion of the big debate between assembly language and higher-level languages. It’s just really hard for a modern reader to read it. And so I said, well Iím going to translate, but the information was absolutely fundamental. Coupling, cohesion, all laid out there why software is so damn expensive and what you can do about it. They understood all this stuff and our understanding of those basic principles has sort of been handed down from one person to the next to the next and gotten very diffused. So that was the point at which I said, okay, I really do need to write a book that brings this information to a modern readership.

Giovanni Asproni 00:03:31 The decision to write the book. So I read it cover to cover. I also have to tell you that I was using some markers in the book to say, okay, what can I ask you in the interview? I ended up marking everything. So I had to cut down content. But one thing that I read as well, which I always do in books, is also the references. And in the references he wrote something about a book of A Philosophy of Software Design by John Osterhout, which I paraphrase. You said that reading that book that prompted you to write Tidy First? because he makes some good points, points well taken, but they are presented dogmatically. Can you explain as what you mean?

Kent Beck 00:04:13 So it’s deeply satisfying as a programmer to take some messy code and clean it up. That activity just feels good to somebody with a programming kind of mindset and philosophy of software design says, okay, well if how to clean up the software, always clean it up. And that just seems to me to be not the whole story. That there are pressures, there’s legitimate pressures that cause you to leave software in a messy state. And part of the skill of being a designer is knowing how to sense those pressures and when to give into them, but also sense those pressures and knowing when to buck them. So somebody says you finish a feature, they say they want the next feature. You say, not quite. Before I implement this feature, I’m going to tidy first. And that’s a design decision. The decision whether or not to design is as much a design decision as the decision of how to arrange the modules and services and functions and statements and the functions and so on and so forth. So that was my objection to that book. I love it’s a slim little book, which you’ve been kind enough not to mention Tidy F

[...]


Original source

Reply