RailsConf 2023 - Merged PRs: An Untapped Resource for Practice and Exploration by Thomas Countz

Developing skills in merged pull requests and systematic debugging approaches to become a more efficient and confident developer.

Key takeaways
  • Merged pull requests (PRs) can be an untapped resource for practice and exploration in Rails development.
  • Debugging is a costly and vital part of software development, but it’s often not taught formally.
  • Most developers learn debugging through trial and error, community resources, and online forums.
  • One way to approach debugging is by using a systematic approach, including setting up an environment, identifying problems, and evaluating solutions.
  • Another approach is to employ the scientific method, observing, hypothesizing, and testing.
  • Some key competencies for debugging include identifying problems, reproducing issues, and using debugging tools effectively.
  • A suggested exercise is to set up an environment, find a merged PR, and try to debug it.
  • This exercise can help developers become better debuggers by practicing with real-world examples.
  • It’s also important to use a low-stakes environment and to focus on learning and growing rather than feeling pressure to produce working code.
  • Some useful debugging tools and techniques include Pry, Pry-rescue, and the Rails debugger.
  • Merged PRs can be filtered for bug fixes, linked issues, or specific components.
  • It’s important to evaluate your solution, try to compare it to the actual solution, and reflect on your debugging experience.
  • The Costs of Debugging
    • Average software developer spends 35-50% of their time on debugging tasks.
    • Debugging costs money.
    • 25-50% of developers reported no formal education in debugging.
    • Debugging is not taught in school or university.
    • Debugging is not seen as a key part of software development.
  • Some interesting debugging tools and techniques include:
    • Pry
    • Pry-rescue
    • Rails debugger
    • RDBG VS code extension
    • Flame graphs
  • The importance of debugging cannot be overstated, as it can help developers become more confident, competent, and efficient.
  • Debugging can also help developers to learn and grow, and to become better developers overall.
  • The community should lead the way in debugging education and research.
  • The industry should also recognize the importance of debugging and provide more resources and support for developers.
  • Debugging is not just about fixing bugs, it’s also about learning and growing as a developer.
  • The more we learn about debugging, the better we can become at it.
  • Debugging is a never-ending process, and it’s important to stay curious and keep learning.
  • It’s also important to recognize that debugging is not just about finding bugs, it’s also about understanding the underlying causes of those bugs.