AI-powered
podcast player
Listen to all your favourite podcasts with AI-powered features
Hypothesis, a software testing tool developed by David MacIver, aims to improve the efficiency of software testing by generating diverse sets of test inputs automatically. This innovation in property testing helps identify bugs that manual testing might miss, enhancing overall software reliability. Derived from David's experience with other testing libraries, Hypothesis introduces a more systematic and automated approach to software testing.
While initially starting as an experimental project, Hypothesis evolved to become a widely adopted tool due to its unique feature called 'shrinking.' This feature reduces complex test cases to simpler ones, aiding in bug identification. David's deliberate focus on enhancing property testing by refining this feature pushed the boundaries of property testing methodologies.
The adoption of Hypothesis in software development circles signifies a significant advancement in property testing practices. By addressing the limitations of traditional testing methods and introducing new techniques, Hypothesis has shaped how software developers approach quality assurance. Its impact on promoting systematic, automated testing approaches highlights David's pioneering contributions to the software testing domain.
David's journey with Hypothesis underscores the evolution and impact of innovative testing practices on the software development landscape. His experience in refining testing methodologies and introducing automation tools showcases the importance of continuous improvement and adaptation in software testing. From conceptualization to widespread adoption, the story of Hypothesis mirrors the iterative nature of software development and the value of pushing boundaries in testing practices.
When facing something challenging, the podcast discusses the approach of starting with easy tasks and slowly making them harder in a way similar to the difficult challenge. For instance, if writing a book feels daunting, starting with a short story can be a stepping stone. This gradual progression towards the challenging goal helps in building skills effectively, even if the path may not always seem linear or obvious.
The podcast delves into the concept of learning mathematics as a working skill rather than a series of memorized rules. Understanding mathematics involves actively using the knowledge in solving problems and recognizing patterns. By engaging with the subject on a practical level, individuals build a solid foundation and improve their mathematical abilities. The discussion emphasizes the importance of applying knowledge in order to truly understand and internalize mathematical concepts.
David MacIver is most known for pushing the adoption and ergonomics of property testing in software with his testing library Hypothesis. Hypothesis is well regarded and widely used in the Python programming language community, and it introduced a handful of innovations that are now quite widespread in the practice of property testing. You’ll hear more about Hypothesis during the podcast, as we talk about what he’s learnt pushing the boundaries of a domain. Then, we shift gears to talk about his coaching practice. David specialises in helping programmers with self improvement, more effective learning, and developing soft skills, which many computer programmers are likely to struggle with, in ways that may limit their careers or their personal development.
David’s Substack — https://drmaciver.substack.com/
David’s Twitter — https://twitter.com/DRMacIver
Hypothesis — https://hypothesis.works/, docs: https://hypothesis.readthedocs.io/en/latest/
Ethics of False Negatives in Interviewing — https://www.drmaciver.com/2019/06/the-ethics-of-false-negatives-in-interviewing/
Life as an Anytime Algorithm — https://notebook.drmaciver.com/posts/2020-03-23-15:52.html
If You’re Stuck, Try Something Different (on chopsticks) — https://drmaciver.substack.com/p/lateral-moves
How To Do Hard Things — https://www.drmaciver.com/2019/05/how-to-do-hard-things/
Stargate Physics 101 (fanfiction) — https://archiveofourown.org/works/3673335
David on why people struggle with mathematics — https://twitter.com/drmaciver/status/1422208261349052420
How to Explain Anything to Anyone — https://www.drmaciver.com/2018/10/how-to-explain-anything-to-anyone/
0:00 Introduction
1:09 What Hypothesis Is
3:47 The Story of Hypothesis
6:43 Hypothesis’s Contribution to Property Testing
12:51 Exploring the Design Space for Hypothesis
17:24 When David Knew He Was On To Something with Hypothesis
20:35 From Hypothesis to Coaching
25:21 Emotional Reactions as Legacy Code
29:08 Why David’s Approach to Self Improvement Works for Programmers
31:15 Ethical Problems with Optimising False Positive in Hiring
37:44 Ways that Programmers Harm Themselves in Their Careers
43:28 What Non-Technical People Get Wrong when Dealing with Programmers
48:00 Applying Lessons Learnt from Hypothesis to Coaching
50:03 Rigour in Self Improvement Writing
56:30 Explaining Computers to Non Technical People
01:02:55 The Nature of Mathematical Expertise
01:11:32 David’s Practice with Teams and Organisations
01:14:23 Getting Better at Sprint Planning
Listen to all your favourite podcasts with AI-powered features
Listen to the best highlights from the podcasts you love and dive into the full episode
Hear something you like? Tap your headphones to save it with AI-generated key takeaways
Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more
Listen to all your favourite podcasts with AI-powered features
Listen to the best highlights from the podcasts you love and dive into the full episode