RailsConf 2021

Lightning Talks: Robson Port

Lightning Talks: Robson Port

by Robson Port

Introduction

In this presentation at RailsConf 2021, Robson Port discusses the concept of programming logbooks and their application in software development, based on insights from a blog post by James Routsley.

Key Points

  • Definition of a Logbook: A logbook serves as a personal and professional reference, especially for engineers, to record everything related to a project. It is an established concept but evolves with modern tools.
  • Benefits of Logbooks: Robson highlights three main benefits of using logbooks in software development:
    • Divide and Conquer: Logbooks help break larger problems into manageable, smaller parts for easier resolution.
    • Reduce Context Switching: By documenting progress, logbooks minimize the mental load of switching between different tasks.
    • Audit Trail: They provide a thorough record of changes and decisions, which can also double as documentation.
  • Using a Logbook: Robson shares his approach to maintaining a logbook:
    1. Document the initial problem or planned implementation.
    2. Record details during the debugging or implementation process.
    3. Summarize discoveries post-resolution, focusing on what worked, what didn’t, and implications of the changes.
  • Practical Example: Robson illustrates his method of logging with a screenshot of his entries in the Joplin app, which he recommends as a versatile tool for managing logbooks. He emphasizes the importance of timestamping each discovery to track the evolution of problem-solving.
  • Documentation of Hypotheses: An example provided includes how he logged his process of investigating a problem related to sending emails, showcasing the use of timestamps to track his thought process and confirmations.

Conclusion

Robson Port’s talk emphasizes the utility of programming logbooks as a valuable technique for developers. Not only do they facilitate better problem-solving, but they also enhance communication and documentation within teams. The main takeaway is that a structured logging approach can significantly improve workflow and project management in software development.

00:00:04.940 All right, hello everyone.
00:00:07.740 Today, I'm going to talk about programming logbooks and how to use logbooks in the context of software development.
00:00:15.780 My name is Robson Port, and I'm a web developer at a company called Loft 47, which is a tech company focused on real estate and accounting.
00:00:30.539 This talk and the process I'm going to describe are highly inspired by a blog post from James Routley called 'Using a Logbook to Improve Your Programming.' If you're interested in this methodology, you can Google that after this talk.
00:00:47.040 First things first, what is a logbook? A logbook is a personal and professional reference mainly used by engineers for everything related to a project. While it may seem like a simple notebook on the right-hand side, today we have more modern solutions that I will demonstrate shortly.
00:01:15.960 Logbooks are useful for software development in several ways, but I will describe just three main uses. They can help with dividing and conquering tasks by breaking big problems into smaller, more manageable ones. Logbooks also help to reduce context switching between tasks and create an audit trail for you and your team.
00:01:49.920 How do I use a logbook? I start by writing down the initial problem or the implementation that needs to be done. Then, as I debug or implement the feature, I document the causes of the issues or details about the implementation. Finally, after I finish working on a feature or a bug, I write down my discoveries, detailing what worked, what didn't, the implications of the changes, and so on.
00:02:31.220 As a quick example, you can use pen and paper or a simple notebook. However, I prefer to use the Joplin app. It's open-source, free, and multi-platform software that I highly recommend. You can use whatever tool works best for you. In my logbook, for instance, I created a new notebook called 'Rob's Logbook.' Each entry in my logbook serves as a reference, usually containing a brief description of the problem or implementation I want to work on, alongside a ticket ID from our ticket management system.
00:03:45.060 Inside the logbook, I like to create timestamps for each discovery I make related to a problem. For example, if I start with a hypothesis about a device issue and later confirm or disprove it, I document that process. This helps in tracing back the steps I took to find a solution. In the last entry, I conclude my findings and articulate my solution based on the insights gained throughout the debugging process.
00:04:33.660 Thank you for your attention.