The Bike Shed

About the show

On The Bike Shed, hosts Joël Quenneville and Stephanie Minn discuss development experiences and challenges at thoughtbot with Ruby, Rails, JavaScript, and whatever else is drawing their attention, admiration, or ire this week.

The Bike Shed on social media

Episodes

  • 445: Working Iteratively

    October 29th, 2024  |  40 mins 6 secs
  • 444: From Solutions To Patterns

    October 15th, 2024  |  34 mins 58 secs
  • 443: Rails World and Open Source with Stefanni Brasil

    October 8th, 2024  |  32 mins 23 secs
  • 442: Paradigms - What is a Program?

    October 1st, 2024  |  42 mins 22 secs
  • 441: The Pickaxe Book with Noel Rappin

    September 24th, 2024  |  39 mins 44 secs
  • 440: When we stray from Rails defaults

    September 17th, 2024  |  42 mins 56 secs
  • 439: Async Ruby & Rails with Trevor Turk

    September 10th, 2024  |  34 mins 11 secs
  • 438: Writing abstractions in tests

    September 3rd, 2024  |  49 mins 8 secs
  • 435: Cohesive Code with Jared Norman

    July 30th, 2024  |  28 mins 45 secs
  • 434: Git and GitHub Workflows

    July 23rd, 2024  |  47 mins 42 secs
  • 433: Riffing with Kasper Timm Hansen

    July 16th, 2024  |  37 mins 20 secs
  • 432: The Semantics and Meaning of Nil

    July 9th, 2024  |  38 mins 13 secs

    The term ‘nil’ refers to the absence of value, but we often imbue it with much more meaning than just that. Today, hosts Joël and Stephanie discuss the various ways we tend to project extra semantics onto nil and the implications of this before unpacking potential alternatives and trade-offs. 

Joël and Stephanie highlight some of the key ways programmers project additional meaning onto nil (and why), like when it’s used to create a guest session, and how this can lead to bugs, confusion, and poor user experiences. They discuss solutions to this problem, like introducing objects for improved readability, before taking a closer look at the implications of excessive guard clauses in code.

  • 431: Developers Are Professional Question Askers

    July 2nd, 2024  |  38 mins 54 secs

    Stephanie shares her newfound interest in naming conventions, highlighting a resource called "Classnames" that provides valuable names for programming and design. Joël, in turn, talks about using AI to generate names for D&D characters, emphasizing how AI can help provide inspiration and reasoning behind name suggestions. Then, they shift to Joël's interest in Roman history, where he discusses a blog by a Roman historian that explores distinctions between state and non-state peoples in the ancient Mediterranean.

    Together, the hosts delve into the importance of asking questions as consultants and developers to understand workflows, question assumptions, and build trust for better onboarding. Stephanie categorizes questions by engagement stages and their social and technical aspects, while Joël highlights how questioning reveals implicit assumptions and speeds up learning. They stress maintaining a curious mindset, using questions during PR reviews, and working with junior developers to foster collaboration. They conclude with advice on documenting answers and using questions for continuous improvement and effective decision-making in development teams.

  • 430: Test Suite Pain & Anti-Patterns

    June 25th, 2024  |  40 mins 57 secs

    Stephanie and Joël discuss the recent announcement of the call for proposals for RubyConf in November. Joël is working on his proposals and encouraging his colleagues at thoughtbot to participate, while Stephanie is excited about the conference being held in her hometown of Chicago!

    The conversation shifts to Stephanie's recent work, including completing a significant client project and her upcoming two-week refactoring assignment. She shares her enthusiasm for refactoring code to improve its structure and stability, even when it's not her own. Joël and Stephanie also discuss the everyday challenges of maintaining a test suite, such as slowness, flakiness, and excessive database requests. They discuss strategies to balance the test pyramid and adequately test critical paths.

    Finally, Joël emphasizes the importance of separating side effects from business logic to enhance testability and reduce complexity, and Stephanie highlights the need to address testing pain points and ensure tests add real value to the codebase.