Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Say you've been tasked with building a feature or subsystem in a Rails app. How do you get started? How do you plan out your objects? How do you figure out the names, responsibilities, and relationships? While some reach for pen & paper and others dive straight into implementation, there's a third option: Riffing on Rails. When you riff, you work with Ruby code in a scratch file to help drive your design. This way you get rapid feedback and can revise as quickly as you had the idea — try out alternative implementations too! It's great for building shared understanding by pairing with a coworker. Walk away with new ideas for improving your software making process: one where code is less daunting & precious. Riffing gives you space & grace to try more approaches & ideas. Let's riff!
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
# Summary of 'Riffing on Rails: sketch your way to better designed code' In this session presented at RailsConf 2024 by Kasper Timm Hansen, the focus is on improving code design through a technique known as 'riffing.' Riffing involves using a Ruby scratch file to explore ideas, define object names, responsibilities, and relationships, ultimately leading to better software design. ## Key Points Discussed: - **Introduction to Riffing**: Riffing is described as a creative process that allows developers to sketch and iterate quickly without the constraints of traditional development methods. It offers the flexibility to explore different implementations and build shared understanding among team members. - **The Need for Better Design Processes**: Hansen emphasizes that creating perfect code instantaneously is unrealistic. Instead, he advocates for a process that permits exploration and fast iterations, critical to understanding project requirements and objectives. - **Personal Experience with Riffing**: Hansen shares his experiences from working on product teams where he often felt overwhelmed and anxious at the start of a new project. Through riffing, he found a way to alleviate these pressures and improve his design approach. - **How to Riff**: The method involves creating a single Ruby file focused on conventions and runnable code, which helps in understanding the problems better, while conventional processes like testing and migrations can be set aside temporarily. - **Benefits of Riffing**: - Lower startup costs and friction in development. - Encourages experimentation and exploration, leading to enhanced creativity and confidence in design. - Externalizes thoughts, reducing mental burdens and supporting better collaboration. - **Live Demo Insights**: Hansen conducted a live demonstration of riffing through a feature where users can favorite objects, illustrating how to start with basic controller logic and expand to user models without diving into complex associations prematurely. - **Overcoming Challenges**: Hansen acknowledges potential obstacles, such as the need for knowledge of APIs and feeling disoriented with a blank file. He emphasizes the importance of adhering to conventions and being open to exploration. - **Collaboration and Teamwork**: Riffing can improve collaboration and communication amongst team members, fostering an environment of creativity where everyone can engage in the design process together. ## Conclusion: Hansen concludes the session by inviting developers to adopt riffing in their workflows, especially during collaborative hack days. The takeaway is that riffing can serve as a valuable tool in a developer's toolkit to enhance coding practices and overcome the daunting aspects of software design.
Suggest modifications
Cancel