Sinopsis
Feel like you’re hitting a wall with your existing software projects? You're not alone. On Maintainable, we speak with seasoned practitioners who have worked past the problems often associated with technical debt and legacy code. In each episode, our guests will share stories and outline tangible, real-world approaches to software challenges. In turn, you'll uncover new ways of thinking about how to improve your software project's maintainability. We're in this together. Enjoy the show!
Episodios
-
Stig Brautaset: Understanding Alien Artifacts in Legacy Code
04/06/2024 Duración: 46minIn this episode of Maintainable, Robby chats with Stig Brautaset, Staff Software Engineer at CircleCI. Stig shares his insights on maintaining well-documented but complex legacy code, the impact of team dynamics on software maintenance, and his experiences with the SBJSON library.Stig discusses the characteristics of well-maintained software, emphasizing the importance of team experience, domain knowledge, and risk appetite. He reflects on his own career journey, highlighting the transition from overconfidence to a balanced approach to risk-taking.A significant portion of the conversation delves into Stig's concept of "Alien Artifacts," which describes highly resistant legacy code written by highly skilled engineers. He explains the challenges of modifying such code and shares examples from his own experiences.Stig also talks about his work on the SBJSON library, addressing the complexities of handling multiple versions and dependency conflicts. He advocates for developers maintaining the software they ship a
-
Brit Myers - Decoding Product vs. Technical Risk
28/05/2024 Duración: 42minJoin Robby as he welcomes Brit Myers to the podcast. Brit, currently thriving as the VP of Engineering at System Initiative, discusses the intricacies of maintaining software. She emphasizes the importance of navigable software, where the ease of tracing the code and understanding its structure is paramount. Brit highlights the significance of clear naming conventions and inline documentation, as they help in maintaining a cohesive narrative within the software. The conversation touches on the challenges posed by discrepancies in vocabulary between product management and engineering, and how glossaries can bridge these communication gaps. Brit advocates for the use of glossaries more as a reflective tool rather than a proactive one, given the dynamic nature of software development. She also delves into strategies for managing legacy code and technical debt, proposing a pragmatic approach where wrapping and modularizing legacy components can mitigate risks. She discusses the balance between immediate feature d
-
Andrea Guarino - Leveraging Static Analysis for Better Code
21/05/2024 Duración: 36minIn this episode, Robby interviews Andrea Guarino, a Software Engineer at Sonar, about the importance of leveraging static analysis tools for maintaining clean and adaptable code. Andrea emphasizes that well-maintained software should be easy to change, consistent, intentional, and responsible. He explains that static analysis tools play a crucial role in identifying potential issues, ensuring code quality, and preventing security leaks. Andrea also highlights the importance of educating developers on these best practices and integrating such tools into the development workflow to uphold a high standard of code quality. He discusses the challenges of maintaining consistency in code, especially when dealing with legacy code written in different periods and by different teams. Andrea also touches on the concept of technical debt, suggesting a pragmatic approach to address it by balancing between new code quality and gradual improvements to legacy code. Stay tuned for that and more!Book Recommendation:The Brother
-
Staffan Nöteberg - On the Power of Monotasking in Software Development
07/05/2024 Duración: 46minIn this insightful episode, we dive deep into the essence of software maintainability with Agile Coach and author Staffan Nöteberg. Unpacking the layers of what it takes for software to be considered well-maintained, Staffan sheds light on the crucial roles of abstraction and modularity. These foundational elements not only make software easier to understand for newcomers but also ensure that it can evolve and adapt over time without becoming bogged down by complexity.The conversation takes a pivotal turn towards the often misunderstood concept of technical debt. With Staffan's expertise, listeners gain a nuanced understanding of why technical debt is more than just a buzzword - it's a crucial aspect of software development that requires careful communication, especially with those in management positions. This leads into an exploration of monotasking as a transformative approach to productivity. Unlike the common practice of juggling multiple tasks, monotasking focuses on dedicating one's attention to the mo
-
Martin Emde - Ruby Central and the Art of Being Tolerant to Change
23/04/2024 Duración: 52minIn this episode of Maintainable, our host Robby Russell sits down with Martin Emde, a sage in the Ruby community and the current Director of Open Source at Ruby Central. Together, they weave through the intricacies of maintainable software, legacy code, and the unwavering power of the Ruby ecosystem. Martin, with his wealth of experience, shares tales from the trenches of open-source software development, focusing on RubyGems and Bundler, and how they've evolved to face the challenges of modern software needs.Martin addresses the elephant in the room - complexity in software. He muses on the natural progression of software projects from simplicity to complexity, drawing parallels to the growth of living organisms. It's not about fighting complexity, but embracing it with open arms, ensuring the software remains adaptable and maintainable. This conversation sheds light on the importance of testing, documentation, and community support in navigating the seas of complex software development.Diving deeper, they d
-
Esther Olatunde - AI's Role in Evolving Software Engineering Practices
16/04/2024 Duración: 47minIn this captivating episode of the Maintainable Software Podcast, host Robby Russell delves deep with Esther Olatunde, Senior Product Engineer at Intercom, into the realms of software maintenance, technical debt, and the impact of AI on software development. The discussion kicks off with Esther's insights on what constitutes well-maintained software, emphasizing the importance of quality from both the user's and developer's perspectives. They explore how ease of onboarding for new developers and the ability to swiftly navigate codebases significantly contribute to a project's maintainability.The conversation then shifts towards the nuances of managing technical debt, with Esther sharing her evolved understanding of the term over her career. From her early days in startups to her current role at Intercom, she provides a rich perspective on the challenges and strategies for advocating maintenance work within diverse organizational sizes. This episode takes an intriguing turn as Robby and Esther speculate on the
-
Robbie Wagner - Whiskey, Front-End, and Whatnot
26/03/2024 Duración: 40minStarting off, Robbie Russell and Robbie Wagner bonding over the complexities of their names in the coffee queue.They dive into the essence of maintainable software, debating the importance of recent commits and the dangers of a single-contributor project.Tech debt, the ever-looming shadow over software development, gets a moment in the spotlight. They share a laugh over buying GitHub stars as a measure of project health.Wagner's approach to tackling tech debt without permission is both rebellious and pragmatic, advocating for quality and refactoring 'on-the-go'.The conversation shifts to the Scout rule in software maintenance, and how constant vigilance is key to overcoming tech debt fatigue.Discussions around Ember.js, its community, and the evolution of front-end development light up the conversation.The narrative takes a turn as they explore automating the mundane, with ESLint, Prettier, and CI tools like Dependabot starring as the unsung heroes in the quest for quality.They touch upon the challenges of ma
-
Irina Nazarova - Investing in Innovation: The Consultancy's Guide to Growth
12/03/2024 Duración: 45minIn the latest episode of Maintainable, Robby Russell has a fascinating conversation with Irina Nazarova, the CEO of Evil Martians, a name that resonates with innovation and bold strides in the software development world. They dive deep into what it takes to maintain not just code, but also the delicate balance between rapid development and long-term sustainability in the ever-evolving startup landscape.Irina shares her unique perspective on the common traits of well-maintained software, stressing the importance of adaptability and the role of technical debt at different stages of a company's growth. With a background rich in pushing the boundaries of what's possible in software consultancy, she offers a fresh take on commercializing open-source projects, nurturing innovation within the team, and the significance of building genuine relationships with clients.Listeners will get a glimpse into the challenges and triumphs of running a software consultancy that dares to dream big. From the intricacies of investin
-
Kyle Daigle - Scaling Up with AI: A New Era of Code Maintenance
05/03/2024 Duración: 47minRobby has a chat with Kyle Daigle, the Chief Operating Officer at GitHub. They dive into the evolution of software development from the perspective of maintaining and scaling software within large organizations like GitHub. Kyle talks about the importance of simplicity and readability in code over complexity, advocating for well-named variables and straightforward codebases to enhance maintainability.He reflects on his journey from a young developer to understanding the value of well-maintained software, noting the balance between creativity in naming and the necessity for clarity as projects and teams grow. The conversation also covers the approach to technical debt, highlighting that not all old code is debt, but rather it depends on whether it hinders progress. Additionally, they explore the impact of AI tools like GitHub Copilot on software development, suggesting that these tools can aid in quicker code reviews and foster higher-level problem-solving discussions among developers. Stay tuned to learn more
-
Jon Moniaci - Can We Draw A Boundary?
27/02/2024 Duración: 53minRobby speaks to the Senior Software Engineer at Perchwell, Jon Moniaci. They discuss the delicate balance between innovation and stability in software development. Jon emphasizes the importance of fostering an environment where engineers can experiment without fear, advocating for a culture of defensive programming to mitigate the fear of breaking things in production. He shares insights from his experiences, including the challenges of working with legacy code and the importance of testing and QA processes. He also talks about the value of considering software pieces as potential microservices to encourage maintainability and flexibility, even if full microservice architecture isn't implemented. This approach, Jon suggests, allows for more sustainable development practices, ultimately leading to more resilient and adaptable software systems. Tune in for that and so much more!Book Recommendations:Sapiens by Yuval Noah Harari The End of Everything (Astrophysically Speaking) by Katie MackHelpful Links:WebsiteJo
-
Chad Fowler - How Small Can We Make This Problem
20/02/2024 Duración: 58minRobby has a candid chat with Chad Fowler, the General Partner & CTO at BlueYard Capital. They delve into the nuances of software maintenance, the evolution and challenges of managing software projects, and insights from Chad's tenure as CTO of Wunderlist. They discuss the importance of building software in small, manageable pieces to facilitate easy updates or replacements, the counterintuitive perspective on unit testing's impact on maintainability, and strategies for keeping software up-to-date by redeploying to new platforms.Additionally, Chad shares his thoughts on the current industry layoff trends, emphasizing the value of adaptability and resilience. The conversation also touches on the relevance of mentoring in the tech industry and the potential implications of AI and large language models on software engineering careers. Chad's philosophy on software development, emphasizing pragmatism, adaptability, and the continuous reevaluation of problems to make them smaller and more manageable, permeates
-
John Nunemaker-How Scary Is This Change?
13/02/2024 Duración: 01h03minRobby has a conversation with John Nunemaker, the Owner at "Box Out Sports" and "Fewer & Faster". They dive into the basics of maintaining software projects, highlighting the crucial importance of keeping dependencies and versions up to date. John shares his wealth of experience from his time at GitHub, shedding light on the delicate balance between exploring new architecture patterns and adhering to existing ones. They explore practical approaches to software challenges, emphasizing tools like Dependabot for efficient dependency management and the significance of evaluating the potential risks associated with changes in dependencies. John also provides valuable insights into the release of open source libraries, emphasizing the need for clear communication of expectations from the community and personal visions for the project. The discussion spans topics ranging from navigating the challenges of legacy code reviews to the gratification derived from seeking and improving the darker corners of a codebase.
-
Jemma Issroff-Running the Parser in the Rain
06/02/2024 Duración: 39minRobby has a conversation with Jemma Issroff, a Senior Software Engineer, speaker and the author of the book, “Ruby Garbage Collection in Under Two Hours” They delve into the intricacies of well-maintained software, and Jemma brings her wealth of experience, particularly from her involvement in Prism, a notable rewrite of the Ruby parser. The duo explores the contrasting dynamics of maintaining software in C versus Ruby, shedding light on the nuanced challenges and advantages each presents. As the conversation unfolds, they draw intriguing parallels between their approaches to utilizing advanced tools like ChatGPT and CoPilot in their respective workflows. Jemma also offers a sneak peek into her upcoming transition into the realm of artificial intelligence, adding a fascinating layer to the dialogue. Beyond the tech talk, the episode takes an unexpected turn as the two bond over their shared affection for running in the rain and Jemma recounts her enriching experience at Recurse, a unique software programmers
-
Jeanine Soterwood - Helping Clients Understand Maintenance Work
30/01/2024 Duración: 38minRobby has a chat with the Software Development Team Lead at Thoughtbot, Jeanine Soterwood. Unraveling the intricacies of Ruby on Rails, they explore the often overlooked importance of keeping apps up-to-date and maintaining a robust test suite. The conversation weaves through the delicate balance between enticing features and the long-term needs of software maintenance, shedding light on the aspects clients may not find thrilling.Drawing from their experiences in the consulting realm, Robby and Jeanine share valuable insights on being a commendable guest in another team's code base. From deciphering a client's process and team culture to navigating the challenge of conveying that software is an ever-evolving entity, the episode unfolds with practical tips. The duo advocates for proposing experiments over permanent decisions, emphasizing the art of gaining buy-in. Additionally, they tackle the nuances of pairing with junior developers and unravel Jeanine's journey of embracing non-DRY tests. Wrapping up with a
-
Andrew Atkinson - Maintainable... Databases?
23/01/2024 Duración: 53minRobby engages with independent consultant and author, Andrew Atkinson, delving into the intricate world of software development and database maintenance. The duo kicks off with a profound exploration of the importance of swift and intuitive change management in software, unraveling the key traits that transform a database into a well-maintained powerhouse. From securing data to cleaning up legacy information, they shed light on the often-neglected aspects that can significantly enhance a software engineer's efficiency.As the conversation flows, Andrew unveils the secrets behind his latest book, "High Performance PostgreSQL for Rails," tracing its origins from an internal slide deck to a valuable resource for developers beyond the Rails framework. The episode explores the nuanced process of "Unshipping," as Andrew dissects Mixpanel's article, offering a roadmap for deprecating features without disappointing customers. The episode is a treasure trove of insights, covering everything from optimizing database per
-
Jimmy Koppel - Aspects of Good Code
16/01/2024 Duración: 44minRobby engages in a captivating conversation with the CEO at Mirdin and UpToSpeed, Jimmy Koppel. They delve into the transformative power of evolvable code, shedding light on its myriad benefits and how it contributes to an enriching coding experience. Drawing inspiration from Jimmy's insightful blog post, "The 11 Aspects of Good Code," the discussion unfolds to explore the external qualities of code and the profound impact of crafting code that is not just functional, but a joy to work with. Jimmy shares his vision for UpToSpeed, a platform aiming to revolutionize the onboarding process for software engineers through the strategic use of AI tools, offering a glimpse into the future of seamless integration for new team members. From the nuances of recovering the programmer's intent through well-crafted code to intriguing references to "Zen and the Art of Motorcycles," this episode is a must-listen for anyone passionate about the art and science of coding. Unlock the secrets of creating code that not only meets
-
Hila Fish - Maintainable Infrastructure Code, Culture, and Documentation
09/01/2024 Duración: 01h02minRobby has a chat with Senior DevOps Engineer, Hila Fish. They start off by discussing the key characteristics of maintainable infrastructure code. Hila shared insights on providing software engineering teams with the necessary space for exploration while maintaining essential guardrails to ensure the stability of production environments. The conversation also touched upon the significance of offering engineers useful metrics and dashboards for measuring load and stress tests. Robby and Hila reminisced about the evolution of roles like sysadmins and DBAs over the decades, highlighting the transformative journey of infrastructure management.A focal point of the episode was Hila's experience leading a large migration project from Bitbucket Cloud to a self-hosted Gitlab within a tight six-week timeframe. She emphasized the importance of rigorous testing in both development and production environments, effective communication with stakeholders and the team, and other critical aspects of successful project manageme
-
Jacob Aronoff - At Least One Person Who Cares To See It Through
21/11/2023 Duración: 46minRobby has a chat with Staff Software Engineer at Lightstep from ServiceNow, Jacob Aronoff. Their conversation delves into the vital signs of a thriving open source software project. They unpack the characteristics of well-maintained open source endeavors, emphasizing the importance of a passionate community behind the project, rather than misleading indicators like GitHub stars. They discuss the nuances of evaluating a project's health through performance metrics, suggesting that a more holistic view that includes the scrutiny of open issues can provide better insights into the project's robustness and responsiveness to community needs. Furthermore, their discussion highlights a critical, yet often overlooked, aspect of open source software: the project's own dependencies. Jacob argues that understanding these dependencies is crucial before adopting an open source solution, as it could have far-reaching implications on the stability and security of one's own project. They also take a deep dive into the organi
-
Oliver Drotbohm - Modulithic Applications
14/11/2023 Duración: 41minRobby has a chat with Oliver Drotbohm, a Staff 2 Engineer at VMware. They explore the essence of maintainable software, pinpointing understandability and modifiability as its foundational pillars. Drawing from Dr. Carola Lilienthal's "Sustainable Software Architecture: Analyze and Reduce Technical Debt," Robby and Oliver dissect the metaphor of technical debt, discussing its historical context and its relevance in today's fast-paced software development environment. Their nuanced conversation balanced the need for making compromises with the risk of over-preparation, emphasizing the critical role that clear documentation of architecture design decisions plays. They further delve into the iterative nature of building sustainable software, advocating for a build-feedback-repeat cycle to ensure that the right product is being developed. Their discussion pivots to the strategic use of microservices, unpacking the circumstances that justify their implementation and the inherent tradeoffs. An overview of the Moduli
-
Colin Campbell - The Daily Habits of Effective Engineers
07/11/2023 Duración: 40minRobby has a chat with Colin Campbell, the Director of Engineering at Tucows. Colin delves into the professional ethos of software development, emphasizing that the caliber of an engineer’s work is a reflection of their daily habits. He stressed the importance of humility for software engineers, arguing that it is crucial for continuous improvement and effective teamwork. He also talked about the strategic approach of doing nothing during Sprint Zero, suggesting that thorough planning and groundwork are essential before diving into actual code deployment.The conversation transitions to the practical aspects of the craft, sharing insights from his experience of refactoring the OpenSRS platform at Tucows. Colin expresses a strong stance against total rewrites of systems, except when transitioning to new platforms, advocating for the incremental and strategic improvements using the Strangler Fig pattern. He also describes the satisfaction derived from identifying and rectifying “code smells” through refactoring,