searchlore

Back to Resource

All Segments

Growing the development forest 🌲 — with Martin Fowler

Growing the development forest 🌲 — with Martin Fowler

15 segments available

Today's guest is Martin Fowler! Martin is chief scientist at ThoughtWorks. He is one of the original signatories of the Agile Manifesto and author of several legendary books, among which there is Refactoring, which shares the name with this podcast and this newsletter. With Martin, we talked about the impact of AI on software development, from the development process to how human learning and understanding changes up to the future of software engineering jobs. Then we explored the technical debt metaphor, why it has been so successful, and Martin's own advice on dealing with it. And finally, we talked about the state of Agile, the resistance that still exists today towards many Agile practices and how to measure engineering effectiveness. (03:29) Introduction (05:20) Development cycle with AI (08:36) Less control and reduced learning (13:11) Splitting task between Human and AI (14:48) The skills shift (20:17) Betting on new technologies (27:22) Martin's Refactoring and technical debt (29:24) Accumulating "cruft" (33:14) Dealing with "cruft" (37:24) The financial value of refactoring (42:04) Measuring performances (46:19) Why the "forest" didn't spread (56:11) Make the forest appealing — This episode is brought to you by https://workos.com — Show notes / useful links: • Cruft, Tech Debt, and High quality software is cheaper: https://martinfowler.com/articles/is-quality-worth-cost.html • Measuring Developer Productivity with qualitative stuff too: https://martinfowler.com/articles/measuring-developer-productivity-humans.html • Code review isn't just pre-commit: https://martinfowler.com/bliki/RefinementCodeReview.html • Thoughtworks's Haiven tool: https://github.com/tw-haiven/haiven - Building Boba AI: https://martinfowler.com/articles/building-boba.html — You can also find this at: - 📬 Newsletter: https://refactoring.fm - 🎧 Spotify: https://open.spotify.com/show/7Luds9dmzZDoDC8Q7EMbSw - 📱 Apple: https://podcasts.apple.com/us/podcast/refactoring-podcast/id1719137305 — For inquiries about sponsoring the podcast, or appearing as a guest, email: luca@refactoring.club

Segments Timeline

1
0:00 - 3:29
•3:29 duration•336 words

Nurturing Junior Developers

Martin Fowler emphasizes the importance of developing junior developers into senior ones within organizations. He highlights ThoughtWorks' strength in fostering talent and the growing necessity for companies to invest in their workforce as technology evolves. This segment underscores the value of internal growth and knowledge transfer in software development.

"One of the most important properties of a junior developer is the fact that you can turn them into a senior developer. And that's one of the crucial things that any organization needs, it needs that a..."

2
3:29 - 5:20
•1:51 duration•314 words

AI's Impact on Development Cycles

In this segment, Martin discusses the early stages of AI integration in software development. He shares insights on how AI is changing coding practices and the overall development lifecycle, emphasizing the need for developers to adapt and learn how to effectively utilize AI tools in their work.

"Hey, Martin, welcome and thank you so much for being here with us today. Well, thank you for having me. Good to see you. Thank you. So, Martin, you really need no introduction. You are the chief scien..."

3
5:20 - 8:36
•3:16 duration•489 words

The Trade-offs of AI in Coding

Martin reflects on the dual nature of AI's influence on productivity and code quality. While AI can enhance individual throughput, it may also lead to less stability and more bugs in team projects. This segment raises critical questions about the balance between increased code generation and the control developers have over that code.

"Well, I guess my primary thought is that it's still relatively early days, both in the development of the technology and in our understanding of how we can best use the technology. I am not particular..."

4
8:36 - 13:11
•4:35 duration•764 words

Learning vs. AI Assistance

This segment explores the concern that reliance on AI may hinder developers' learning opportunities. Martin argues that understanding the code and the business context is crucial for effective software development, and that AI should not replace the learning process inherent in coding.

"Yeah, and also one of the troubling aspects of this is also evidence that it reduces learning. And so if a development team is not learning as much, both about the code that they're creating, the syst..."

5
13:11 - 14:48
•1:37 duration•273 words

Splitting Tasks: Humans and AI

Martin discusses the potential division of labor between humans and AI in software development. He suggests that AI could assist in generating both code and tests, but emphasizes the importance of human oversight in evaluating AI-generated drafts to ensure quality and relevance.

"not clear to me at this point. I mean, it strikes me that AI can be equally useful at coming up with a first draft of tests, as it can be with first draft of code. And maybe as a critique of tests of ..."

6
14:48 - 20:17
•5:29 duration•978 words

The Skills Shift in Software Engineering

In this segment, Martin addresses the evolving skill set required for software engineers in the age of AI. He highlights the necessity for developers to learn how to effectively utilize AI tools, suggesting that those who adapt will thrive while others may become obsolete.

"this? - Oh, it's definitely a skills shift, in the sense that one of the skills that we need to know is how best to utilize AI, right? Both in where it becomes useful, I mean, the skill of knowing th..."

7
20:17 - 27:22
•7:05 duration•1132 words

Betting on New Technologies

Martin shares his perspective on the importance of embracing new technologies in software development. He discusses how organizations can leverage AI and other advancements to enhance their processes and improve overall effectiveness in delivering software solutions.

"listening to my colleagues. You know, I have colleagues who I've built a lot of respect for over the years. And when they have an opinion on things, I make a point of listening to that. So that's impo..."

8
27:22 - 29:24
•2:02 duration•275 words

Understanding Technical Debt

This segment delves into Martin's insights on technical debt and the metaphor's success in the software industry. He explains the implications of technical debt on software quality and the importance of addressing it proactively to maintain a healthy codebase.

"question. Why has it it is really caught and resonated with people. I suspect because debt is in financial debt, is such a touchy and big issue for us in the rest of our lives. And therefore creating ..."

9
29:24 - 33:14
•3:50 duration•638 words

Accumulating 'Cruft'

Martin discusses the concept of 'cruft' in software development, referring to unnecessary complexity that accumulates over time. He emphasizes the need for developers to recognize and manage cruft to ensure the maintainability and clarity of their code.

"problems. And the problems are sometimes because of the fact that it is only a metaphor and people try to stretch it further than it should be. But also because people don't necessarily have a good un..."

10
33:14 - 37:24
•4:10 duration•658 words

Strategies for Dealing with Cruft

In this segment, Martin offers practical advice on how to deal with cruft in software projects. He shares strategies for refactoring and maintaining code quality, highlighting the importance of regular reviews and updates to prevent the accumulation of unnecessary complexity.

"best way I know to deal with keeping your internal quality high and therefore your costs low is to focus on those practices that minimize cruft. And that really does boil down to the kind of stuff tha..."

11
37:24 - 42:04
•4:40 duration•811 words

The Financial Value of Refactoring

Martin discusses the financial implications of refactoring in software development. He explains how investing in refactoring can lead to long-term savings and improved software quality, making a strong case for prioritizing code maintenance.

"What's your experience? That is a difficult thing. In fact, you could argue, I think that that's the failure of people like me is that we haven't been able to spread the forest as widely as one would ..."

12
42:04 - 46:19
•4:15 duration•641 words

Measuring Engineering Performance

This segment focuses on the importance of measuring engineering effectiveness in software development. Martin shares insights on various metrics and approaches that can help organizations assess their performance and improve their development processes.

"Yeah, I have attention here. On the one hand, I do think it's important we come up with better ways of measuring. And I would say we'll grow more broadly assessing the effectiveness of engineering pro..."

13
46:19 - 56:11
•9:52 duration•1667 words

Why the 'Forest' Didn't Spread

Martin reflects on the challenges faced by Agile practices in gaining widespread acceptance. He discusses the resistance to Agile methodologies and the factors that have hindered their adoption in various organizations, providing insights into the future of Agile.

"where I wish I had a better memory, because I listened to that interview. And I don't remember what Kent said, so I can't just parrot it. I mean, in some ways, I mean, the problem is, we don't know wh..."

14
56:11 - 56:30
•0:19 duration•46 words

Making the Forest Appealing

In the closing segment, Martin shares thoughts on how to make Agile practices more appealing to organizations. He emphasizes the need for clear communication and demonstrating the value of Agile methodologies to foster greater acceptance and implementation.

"element of that? - Oh, yeah. I mean, that's always the way with these things, right? I mean, you come up with something like this, and there's always the danger that something like that will happen. ..."

15
58:07 - 1:00:02
•1:55 duration•338 words

Spreading the Forest of Knowledge

In the closing segment, Fowler encourages listeners to continue spreading the knowledge of effective development practices. He expresses gratitude for the conversation and emphasizes the importance of sharing experiences to foster growth in the software development community. This segment serves as a motivational call to action for developers.

"that's a big shame, because that's not what it is. Yeah, yeah, I just agree. But I guess as long as we have good patches of forests here and there, and we can thrive in there. - Yeah, patches of fore..."