Log in

goodpods headphones icon

To access all our features

Open the Goodpods app
Close icon
Maintainable - Stig Brautaset: Understanding Alien Artifacts in Legacy Code
plus icon
bookmark

Stig Brautaset: Understanding Alien Artifacts in Legacy Code

06/04/24 • 46 min

Maintainable

In 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 and discusses the balance between shipping features quickly and maintaining long-term code quality.

Key Takeaways

  • The influence of team dynamics on software maintenance
  • Understanding the concept of "Alien Artifacts" in legacy code
  • Strategies for handling multiple versions of a software library
  • The importance of developers being on call for the software they ship
  • Managing different types of technical debt

Book Recommendation:

Helpful Links:

Want to share your thoughts on this episode? Reach out to Robby at [email protected].

Thanks to Our Sponsor!

Turn hours of debugging into just minutes! AppSignal is a performance monitoring and error tracking tool designed for Ruby, Elixir, Python, Node.js, Javascript, and soon, other frameworks.

It offers six powerful features with one simple interface, providing developers with real-time insights into the performance and health of web applications.

Keep your coding cool and error-free, one line at a time! Check them out!

Subscribe to Maintainable on:

Or search "Maintainable" wherever you stream your podcasts.

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

plus icon
bookmark

In 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 and discusses the balance between shipping features quickly and maintaining long-term code quality.

Key Takeaways

  • The influence of team dynamics on software maintenance
  • Understanding the concept of "Alien Artifacts" in legacy code
  • Strategies for handling multiple versions of a software library
  • The importance of developers being on call for the software they ship
  • Managing different types of technical debt

Book Recommendation:

Helpful Links:

Want to share your thoughts on this episode? Reach out to Robby at [email protected].

Thanks to Our Sponsor!

Turn hours of debugging into just minutes! AppSignal is a performance monitoring and error tracking tool designed for Ruby, Elixir, Python, Node.js, Javascript, and soon, other frameworks.

It offers six powerful features with one simple interface, providing developers with real-time insights into the performance and health of web applications.

Keep your coding cool and error-free, one line at a time! Check them out!

Subscribe to Maintainable on:

Or search "Maintainable" wherever you stream your podcasts.

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

Previous Episode

undefined - Brit Myers - Decoding Product vs. Technical Risk

Brit Myers - Decoding Product vs. Technical Risk

Join 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 delivery and long-term code health, stressing the importance of aligning technical risks with business objectives. The episode explores the impact of company culture on development practices, the benefits of synchronous work environments, and the evolving landscape of DevOps. Tune in to tap into Brit’s valuable wisdom.

Book Recommendation:

Helpful Links:

Thanks to Our Sponsor!

Turn hours of debugging into just minutes! AppSignal is a performance monitoring and error tracking tool designed for Ruby, Elixir, Python, Node.js, Javascript, and soon, other frameworks.

It offers six powerful features with one simple interface, providing developers with real-time insights into the performance and health of web applications.

Keep your coding cool and error-free, one line at a time! Check them out!

Subscribe to Maintainable on:

Or search "Maintainable" wherever you stream your podcasts.

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

Next Episode

undefined - Scott Hanselman - The Fear Factor in Maintainable Software

Scott Hanselman - The Fear Factor in Maintainable Software

In this episode of Maintainable, Robby welcomes Scott Hanselman, VP of Developer Community at Microsoft and host of the Hanselminutes Podcast, to discuss the emotional side of maintainable software. Scott shares his thoughts on fear as a common thread in poorly maintained software, the importance of building a team culture of trust, and how finding a good work-life balance helps create better software.

The Role of Fear in Technical Debt

  1. Scott believes that if you fear the software you work on, it's a tell-tale sign that it has maintainability issues.
  2. Technical debt is rooted in fear--either fear of making a change that will break something or fear of being unable to change something when needed.
  3. He encourages teams to talk openly about their fears and anxieties regarding the software and to consider what things give them confidence in the codebase.

Building a Team Culture of Confidence

  1. Scott emphasizes the importance of empathy in overcoming technical debt and making software more maintainable.
  2. Senior engineers and team leads have a responsibility to make junior developers feel safe enough to speak up and ask questions.
  3. He advocates for providing new hires with small, achievable tasks to build their confidence and trust in the software.
  4. Scott encourages teams to use "inner loop" and "outer loop" thinking.
  5. Inner loop - The cycle of making a change, hitting f5, and seeing changes immediately.
  6. Outer loop - Things like deploying the codebase, getting it tested, ensuring production stability.
  7. Both experienced and junior engineers have their own inner and outer loops as individuals, and continuous improvement at all levels is key.

Overcoming Fear, Embracing Maintainability, and Finding Balance

  1. Scott shares stories about Microsoft's journey with open-source software and how that process has shaped the company's culture around maintainable code.
  2. He talks about the importance of striking a balance between source-opened and open-source software and finding the sweet spot for a project or organization.
  3. Scott warns against the trap of striving for unattainable perfection. Aiming for good, solid repeatable work over perfection ultimately yields better results.
  4. He uses his own projects, like the Hanselminutes podcast, as examples of focusing on consistent outputs and utilizing a simple workflow.
  5. Scott advocates for using AI tools to transcribe coding sessions, freeing up developers from extensive note-taking.

Book Recommendation:

Helpful Links:

Thanks to Our Sponsor!

Turn hours of debugging into just minutes! AppSignal is a performance monitoring and error tracking tool designed for Ruby, Elixir, Python, Node.js, Javascript, and soon, other frameworks.

It offers six powerful features with one simple interface, providing developers with real-time insights into the performance and health of web applications.

Keep your coding cool and error-free, one line at a time! Check them out!

Subscribe to Maintainable on:

Or search "Maintainable" wherever you stream your podcasts.

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

Episode Comments

Generate a badge

Get a badge for your website that links back to this episode

Select type & size
Open dropdown icon
share badge image

<a href="https://goodpods.com/podcasts/maintainable-333012/stig-brautaset-understanding-alien-artifacts-in-legacy-code-53390465"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to stig brautaset: understanding alien artifacts in legacy code on goodpods" style="width: 225px" /> </a>

Copy