Feel like you’re hitting a wall with your existing software projects? You're not alone. On the Maintainable software podcast, 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!
Henrik Warne - There is No Software Maintenance
42:31Robby has a chat with Henrik Warne (he/him/his), the Senior Software Engineer at Talos. In Henrik’s view of well-maintained software, he talks about the importance of code having structure early on because, without structure, code tends to inevitably drift over time toward complexity. He highlights the importance of engineers being able to not only read code when they join a project but also be able to run the code and test it.Henrik will share the details of his blog titled, "There is No Software Maintenance," where he argues that software maintenance is simply software development, and how software is better seen as a product versus a project. He will talk about why all software engineers should spend a portion of their time working on bugs, tactics engineers can use to reflect on and capture their thoughts after fixing a bug, and strategies for teams to improve software and avoid rot. Stay tuned for more and enjoy.Book Recommendations:How to Win Friends & Influence People by Dale CarnegieHelpful Links:There is No Software Maintenance By Henrik WarneHenrik's BlogHenrik on TwitterHenrik on LinkedInSubscribe to Maintainable on:Apple PodcastsOvercastSpotifyOr search "Maintainable" wherever you stream your podcasts.Keep up to date with the Maintainable Podcast by joining the newsletter.
Andy Croll - Keep the Weird Stuff Weird
49:45Robby has a chat with Andy Croll (he/him/his), the CTO at CoverageBook, a Rubyist, the Organizer of the Brighton Ruby Conference, an author, speaker, and bootstrapper. The most important thing when it comes to the maintainability of software is “That code is read much more than it’s written”, Andy says. He insists that the core focus should always be on readability. Andy will dive into the rationale for why weird things in our code should stay weird until we find a better way to express it and even shared some specific examples within a Ruby on Rails environment. He will share his career journey from the front end into the backend, what prompted him to start the First Ruby Friend project to connect newcomers to a community with people who want to be mentors, examples of how to manage technical debt in a small team and why it's okay to let some stuff "sit in the air", and so much more. Stay tuned. It’s going to be an epic one.Book Recommendations:The Overstory by Richard PowersHelpful Links:Andy's websiteOne Ruby ThingBrighton RubyFirst Ruby FriendSubscribe to Maintainable on:Apple PodcastsOvercastSpotifyOr search "Maintainable" wherever you stream your podcasts.Join the discussion in the Maintainable Discord Community
Não percas um episódio de “Maintainable” e subscrevê-lo na aplicação GetPodcast.
Marianne Bellotti - Building Empathy by Asking, "How Would You Write This in 2007?"
1:01:45Robby has a chat with Marianne Bellotti (she/her/hers), the Engineering Manager at Rebellion Defense. Marianne is the author of the books, “Hiring Engineers” and “Kill it with Fire”. She talks about the maintainability of software being about whether software can be changed and how easily changes can be made to it. She dives into her experience with legacy modernization and talks about how to effectively judge software.Marianne also shares her insights on the challenges teams face when people don't understand how older code works, the value of developing a plan around tests to naturally build confidence within an organization, why it's important to have a safe space to break things (e.g., staging/QA environments), how onboarding metrics can be difficult to compare when dealing with regulatory systems, and building empathy toward previous engineers on a project. Tune in for that and a whole lot more in this value-packed 61-minute episode.Book Recommendations:Drift into Failure: From Hunting Broken Components to Understanding Complex Systems by Sidney DekkerHelpful Links:Kill it with Fire: Manage Aging Computer Systems (and Future Proof Modern Ones) by Marianne BellottiWebsite - bellotti.techhttps://github.com/mbellottiTwitter - twitter.com/bellmarSubscribe to Maintainable on:Apple PodcastsOvercastSpotifyOr search "Maintainable" wherever you stream your podcasts.Join the discussion in the Maintainable Discord Community
Arpit Mohan - Aspiring To Be Boring As Possible
51:35Robby has a chat with Arpit Mohan, the Co-Founder and CTO of Appsmith, an open-source low-code tool that helps developers build dashboards and admin panels very quickly. Appsmith helps businesses build any custom internal application within hours. In regard to well-maintained software, Arpit points to the importance of engineers writing code for humans and not machines while also focusing a lot on readability. He believes useful code comments are also very crucial in facilitating well-maintained software.Arpit will share his wisdom on the importance of conveying the why over the how behind any code being developed, how open source and closed source projects have different code commenting/documentation needs, why engineers should always keep an eye out for code smells and friction in their ability to deliver software functionality, the problems that AppSmit helps organizations solve, the differences between B2C vs B2B when it comes to the benefits of automated testing, performance concerns, etc, and much much more. Stay tuned, enjoy, and if you like the episode, don’t forget to share.Book Recommendations:The Score Takes Care of Itself: My Philosophy of Leadership by Bill Walsh - https://www.amazon.com/Score-Takes-Care-Itself-Philosophy/dp/1591843472Helpful Links:https://twitter.com/mohanarpithttps://twitter.com/theappsmithhttps://www.appsmith.com/Subscribe to Maintainable on:Apple PodcastsOvercastSpotifyOr search "Maintainable" wherever you stream your podcasts.Join the discussion in the Maintainable Discord Community
Noah Clark - Maintainable Software is a Team Sport
59:28Robby has a chat with Noah Clark, a consulting applications developer at Merchants Bonding Company, one the top 15 largest surety writers in the United States. On the top of Noah’s list of things that facilitate the maintainability of software is team dynamics. Well-maintained software can never be achieved by a single individual refactoring code or having grand ideas/visions. It’s made possible by a team coming together and committing to a practice of well-maintained software. He highlights trust and communication between a team and the company they’re developing software for as key. He also advises engineers to avoid writing code just to solve problems.Tune in as Robby and Noah discuss why engineers should ensure that their software code leans on the business domain especially when it comes to naming things, how teams can determine when it’s necessary to refactor and/or improve existing software, the complexities that come with basing software development projects on best practices, why and how to avoid blog post driven development, why referring to "organizational debt" might be more effective than "technical debt", and so much more. Enjoy!Book Recommendations:The 5 Love Languages by Gary Chapman - https://5lovelanguages.com/I Will Teach You to Be Rich by Ramit Sethi - https://www.iwillteachyoutoberich.com/Helpful Links:https://www.linkedin.com/in/noahmclark/https://twitter.com/nolarknoahSubscribe to Maintainable on:Apple PodcastsOvercastSpotifyOr search "Maintainable" wherever you stream your podcasts.Join the discussion in the Maintainable Discord Community
Ben Parisot - Documentation Just Needs To Be Used Once
1:01:14Robby has a chat with the Engineering Manager at Planet Argon, Ben Parisot. Ben has worked in the tech industry since 2010 and has worn many, many hats: blogger, web designer, web developer, technical producer, scrum master, technical project manager, copywriter, and more. He loves all parts of the software development lifecycle and always has a creative personal web or mobile app humming along outside of work. The first thing Ben says he looks for that represents well-maintained software is thorough and up-to-date documentation. He feels that every developer or project manager must ensure that they leave a good paper trail of the work they do. He encourages engineering teams to do regular documentation audits of internal and external documentation they use in order to find outdated and obsolete documentation. Drawing from his experience working on multiple client projects, his advice is to build processes around auditing and improving documentation to make sure it's effective. This convo will prove incredibly valuable as he shares some tips on how engineering teams can go about that based on the projects they work on and so much more. Don’t miss out!Book Recommendations:Sapiens: A Brief History of Humankind by Yuval Noah HarariHelpful Linkshttps://www.linkedin.com/in/benparisot/https://www.planetargon.com/about/ben-parisotSubscribe to Maintainable on:Apple PodcastsOvercastSpotifyOr search "Maintainable" wherever you stream your podcasts.Join the discussion in the Maintainable Discord Community
Stefanni Brasil - When Is Tackling Tech Debt Possible?
40:37Robby has a chat with Stefanni Brasil, the Co-founder and Educator at hexdevs, Co-creator of the Get to Senior online course and community, and most recently joined thoughtbot as a developer. Reflecting on her experience in the industry, Stefanni says that well-maintained software can only be a result of teams agreeing on conventions before coding starts. She feels that the term technical debt facilitates better communication and her perspective around it has shifted over time due to the fact that most projects that have employed it are the ones that have been generating revenue. Stefanni notes that software engineering teams can work seamlessly when they document their decisions (on Trello, Google Docs, etc) for future reference. Creating an environment where every team member feels safe and comfortable to speak up about any issues also contributes to project success. Steffani will also share her knowledgeable insights on how to be a good guest in another team's codebase as a consultant and the steps to take when onboarding with a new client project. She will dive into her Get to Senior course and highlight all the value that it offers. Tune in for more of her software engineering wisdom.Book Recommendations:The Assertiveness Workbook: How to Express Your Ideas and Stand Up for Yourself at Work and in Relationships by Randy J. PatersonHelpful LinksFearless Change: Patterns for Introducing New Ideashttps://twitter.com/stefannibrasilhttps://www.stefannibrasil.me/https://academy.hexdevs.com/Subscribe to Maintainable on:Apple PodcastsOvercastSpotifyOr search "Maintainable" wherever you stream your podcasts.Join the discussion in the Maintainable Discord Community
Andrea Goulet - Empathy-Driven Software Development
54:49Robby has a chat with Andrea Goulet, the CEO of Corgibytes, a software development shop dedicated to maintaining and modernizing software applications. Named by LinkedIn as one of the top ten professionals in software under 35, Andrea is the host of the podcast Legacy Code Rocks, is the author of the forthcoming book, “Empathy-Driven Software Development”, has co-founded several successful technology companies, and has taught over 50,000 students how to turn soft skills like empathy and communication into software skills.Through her newest venture, Heartware.dev, she is on a mission to operationalize empathy for tech teams and keynotes frequently about building a business based on balance, empathy, and trust; the perils of the technical/non-technical divide; and the technical philosophies around working with legacy code. Andrea says that the maintainability of software comes down to trust and while she doesn't find the term technical debt useful, she uses it in instances where it’s being widely used especially in software remodeling projects. From her experience, the term is not useful at all when dealing with business-minded people who view debt differently.She points out that the success of a project is always highly dependent on the project owner and the team working on their project having shared goals as they approach the writing of software. Robby and Andrea will also dive into why we should avoid deferring to other people and defaulting to being ticket takers, how empathy has different definitions, avoiding us vs them thinking, and so much more. Stay tuned and enjoy!Book Recommendations:Set Boundaries, Find Peace: A Guide to Reclaiming Yourself by Nedra Glover TawwabHelpful Linkshttps://twitter.com/andreagoulethttps://heartware.devhttps://corgibytes.comComing in 2023! Empathy-Driven Software Development by Andrea GouletSubscribe to Maintainable on:Apple PodcastsOvercastSpotifyOr search "Maintainable" wherever you stream your podcasts.Join the discussion in the Maintainable Discord Community
John Ousterhout - It's Not You, It's the Codebase
49:22Robby has a chat with Professor of Computer Science at Stanford University, John Ousterhout. John founded Electric Cloud with John Graham-Cumming. Ousterhout was a professor of computer science at the University of California, Berkeley where he created the Tcl scripting language and the Tk platform-independent widget toolkit and proposed the idea of co-scheduling. Ousterhout led the research group that designed the experimental Sprite operating system and the first log-structured file system. Ousterhout also led the team that developed the Magic VLSI computer-aided design (CAD) program.When it comes to the maintainability of software, John is more interested in the design aspects of software and feels that indeed the core goal of good software design is to make it easier to maintain software and continually improve it. He explains what problem decomposition is all about and why his course on the art of software design is probably the only one of its kind in the world. Join the convo as he also talks about how to write good code comments and why they are so important, the main differences between tactical and strategic programming, how engineers can discuss long-term improvements with their boss, how his curriculum has students approach a project with two different designs before deciding which to proceed with, and so much more. Enjoy!Book Recommendations:Talent is Overrated By Geoff Colvin Helpful LinksA Philosophy of Software Design By Professor John OusterhoutTcl/TkJohn on TwitterJohn’s WebpageSubscribe to Maintainable on:Apple PodcastsOvercastSpotifyOr search "Maintainable" wherever you stream your podcasts.Join the discussion in the Maintainable Discord Community
Courtney Wilburn - Maintainable Software Has Good Community Around It
47:49Robby has a chat with Courtney Wilburn (She/Her/Hers), the Sr. Engineering Manager at Elastic Cloud, the leading platform for search-powered solutions. She is an experienced DevOps Engineer, speaker, and writer. With solutions in enterprise search, observability, and security, Elastic helps enhance customer and employee search experiences, keep mission-critical applications running smoothly, and protect against cyber threats. For Courtney, well-maintained software is all about software having a good community around it that is enthusiastic about its long-term success. She shares her expertise on the traits of excellent documentation and talks about how engineers should go about joining a software team. Courtney uses the metaphor technical debt and she will graciously break down how her team discusses, prioritizes, and documents what and when they focus on it. She also talks about the challenges that come with process debt, how to go about hiring junior-level engineers, and what we can do to foster mentorship in our teams. It’s going to be a very interesting conversation so don’t miss out.Book Recommendations:Emergent Strategy: Shaping Change, Changing Worlds By Adrienne Maree BrownHelpful LinksCourtney on TwitterCourney’s WebsiteCourtney on LinkedInSubscribe to Maintainable on:Apple PodcastsOvercastSpotifyOr search "Maintainable" wherever you stream your podcasts.Join the discussion in the Maintainable Discord Community