460: I Don't Care What Your Math Says

Embedded.fm · 28 Sept 2023 · 1h 19m · Episode 460

What this episode covers

Dr. Greg Wilson, founder of Software Carpentry and author of 'Software Design by Example', argues that the software industry lacks the empirical rigor and professional standards found in medicine or mechanical engineering. He discusses the 'It Will Never Work in Theory' project, which synthesizes scientific literature on software development to debunk myths like the efficacy of Test-Driven Development (TDD). Wilson advocates for teaching computer science students empirical methods and establishing liability standards for software to ensure safety and accountability.

Mentioned

Companies
Software Carpentry, GitHub, Stack Overflow, Pluralsight, Deep Genomics, Python Software Foundation, SourceForge, Mozilla, Facebook, ACM SIGSOFT, IEEE, University of Toronto
Products
Waze, Google Maps, Quorum, TypeScript, JavaScript, Python, C++
Also
It Will Never Work in Theory

Other shows on the same ground, closest first.

  • The Pragmatic Embedded Podcast · 1h 01m

    James Grenning on TDD

    James Grenning, author of 'Test-Driven Development for Embedded C' and creator of a new self-paced online course, discusses the evolution and practical application of TDD in embedded systems. He explains the ZOMBIE acronym for deriving test cases, the importance of 'tracer bullets' to address project risks early, and why mocking should be used sparingly to avoid brittle tests. Grenning also reflects on the shift from Extreme Programming to Scrum, arguing that the latter often alienates engineers by ignoring core technical practices.

  • Oxide and Friends · 1h 31m

    Are LLMs Insufficently Lazy?

    Bryan Cantrill and Adam Leventhal of Oxide Computer Company are joined by software engineer Gregoirein to critique Y Combinator CEO Garry Tan’s claim of writing 37,000 lines of code daily using LLMs. Gregoirein used Claude to audit Tan’s public projects, revealing broken assets, legal non-compliance, and a site outage, while the hosts discuss the 'peril of laziness' and the difference between generating code and engineering elegant systems. They argue that while LLMs are useful for review or low-stakes tasks, they cannot replace the deep thinking required for complex, high-consequence software like kernel linkers or signal handlers.

  • The Pragmatic Embedded Podcast · 39m

    Christmas Special

    Hosts Jeff Gable and Luca share war stories from their careers in embedded systems, highlighting the pain of manual testing in helicopter avionics, the chaos of managing requirements with Word and Excel in Dropbox for medical devices, and the technical debt of massive #ifdef blocks in legacy machine tool software. They discuss the industry's slow adoption of modern software practices like version control and CI/CD, contrasting embedded development with web development standards. The episode concludes with book recommendations including 'The Phoenix Project' and 'Team Topologies', and reflections on the future of IoT security and agile adoption in hardware.

  • Oxide and Friends · 1h 24m

    RIP USENIX ATC

    Bryan Cantrill and Adam Leventhal of Oxide Computer Company, joined by Tom Lyon, discuss the discontinuation of the USENIX Annual Technical Conference (ATC) and its historical shift from a practitioner-focused event to an academic one. They recount their experiences at USENIX 2004, including presenting DTrace, meeting Dennis Ritchie, and the conference's low acceptance rate, while critiquing the modern academic publishing model. The conversation highlights the disconnect between academic research and practical systems engineering, citing examples like the failure of simulated data structures and flawed RAID implementations to illustrate the importance of real-world implementation details.

  • The Pragmatic Embedded Podcast · 32m

    The Matthew Test with Matthew Eshleman - Part 2

    Matthew Eshleman, founder of Cove Mountain Software, joins Jeff Gable and Luca Engineer to discuss Part 2 of his 'Matthew Test,' a framework for better embedded software. They cover the balance between upfront design and agile development, the importance of Test-Driven Development (TDD) in C/C++, and the value of investing in high-quality engineering tools. The conversation also addresses hiring practices, realistic scheduling under business constraints, peer code reviews, and the role of dedicated QA teams in preventing bugs.

The summary, chapters and topics are generated from the episode’s audio by this directory, not written by Embedded.fm. The episode itself belongs to its publisher.