Maintainable

Marit van Dijk: How Are We Going to Test This?


Listen Later

In this episode of Maintainable, Robby sits down with Marit van Dijk, a Software Engineer at bol.com. Marit brings a wealth of experience from her work on complex systems and her involvement in the European testing conference and the Cucumber community. They dive deep into the importance of testing, maintaining legacy code, and the collaborative nature of software development.

Episode Highlights
  • [00:01:00] The Role of Tests in Well-Maintained Codebases: Marit emphasizes the importance of clear and intent-driven tests in understanding application behavior and maintaining code quality.
  • [00:01:55] Dependency Management in Legacy Systems: Marit discusses the challenges of keeping dependencies up to date and the potential issues that arise when they fall behind.
  • [00:02:35] Documentation Practices: Exploring the differences in documentation needs for internal projects versus open-source projects, and how README files play a critical role in onboarding and running applications.
  • [00:05:09] Defining Technical Debt: Marit shares her perspective on technical debt, including the concept of "code rot" and how it can slow down development over time.
  • [00:06:41] Empathy in Software Maintenance: The importance of understanding the context in which legacy code was written and having empathy for past decisions.
  • [00:08:53] Test-Driven Development for Bug Fixing: Marit explains how writing tests first when fixing bugs can ensure a thorough understanding of the issue and lead to more reliable fixes.
  • [00:14:52] bol.com's Approach to Automation: How bol.com uses automation tools to maintain its large-scale platform, ensuring consistency and reliability across its services.
  • [00:15:48] Collaborative Coding: The benefits of pair programming and mob programming, and how they contribute to knowledge sharing and faster problem-solving within a team.
  • [00:18:03] Managing Technical Debt: Strategies for integrating technical debt management into the development process and how to advocate for it within a team.
  • [00:21:00] Isolating Test Environments: How Marit and her team use mock testing to ensure that tests are maintainable and independent of other services in their landscape.
  • [00:25:15] The Balance Between Refactoring and Rewriting: Marit shares her preference for refactoring over rewriting and discusses the challenges of maintaining complex applications.
  • [00:29:23] Advocating for Maintenance Work: Tips on how developers can make the case for addressing technical debt and maintenance within their teams.
Key Takeaways
  • Testing is a cornerstone of well-maintained software, helping to ensure that code behaves as expected and can be confidently changed or extended.
  • Documentation, whether in README files or more extensive systems like Confluence, is critical for both onboarding and long-term maintenance.
  • Managing technical debt is an ongoing process that requires empathy, strategic planning, and sometimes, a bit of civil disobedience.
  • Collaborative coding practices like pair programming and mob programming can accelerate problem-solving and foster a culture of continuous learning.
  • Refactoring code, rather than rewriting it from scratch, can often be a more effective approach to maintaining complex systems.
Helpful Links
  • Marit on Twitter
  • Careers at bol.com
  • Test Automation University
  • Use Testing to Develop Better Software Faster
  • Marit on Medium
  • Testing on Production – deep backend edition
  • The Wall of Technical Debt

Subscribe to Maintainable on:

  • Apple Podcasts
  • Spotify

Or search "Maintainable" wherever you stream your podcasts.

Keep up to date with the Maintainable Podcast by joining the newsletter.

...more
View all episodesView all episodes
Download on the App Store

MaintainableBy Robby Russell

  • 5
  • 5
  • 5
  • 5
  • 5

5

30 ratings


More shows like Maintainable

View all
Hanselminutes with Scott Hanselman by Scott Hanselman

Hanselminutes with Scott Hanselman

378 Listeners

Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

Software Engineering Radio - the podcast for professional software developers

263 Listeners

The Changelog: Software Development, Open Source by Changelog Media

The Changelog: Software Development, Open Source

286 Listeners

Thoughtworks Technology Podcast by Thoughtworks

Thoughtworks Technology Podcast

42 Listeners

Talk Python To Me by Michael Kennedy

Talk Python To Me

584 Listeners

Software Engineering Daily by Software Engineering Daily

Software Engineering Daily

630 Listeners

Soft Skills Engineering by Jamison Dance and Dave Smith

Soft Skills Engineering

272 Listeners

Go Time: Golang, Software Engineering by Changelog Media

Go Time: Golang, Software Engineering

128 Listeners

JS Party: JavaScript, CSS, Web Development by Changelog Media

JS Party: JavaScript, CSS, Web Development

91 Listeners

Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

Syntax - Tasty Web Development Treats

986 Listeners

REWORK by 37signals

REWORK

210 Listeners

CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

CoRecursive: Coding Stories

185 Listeners

The Stack Overflow Podcast by The Stack Overflow Podcast

The Stack Overflow Podcast

63 Listeners

Oxide and Friends by Oxide Computer Company

Oxide and Friends

47 Listeners

The Pragmatic Engineer by Gergely Orosz

The Pragmatic Engineer

48 Listeners