Log in

goodpods headphones icon

To access all our features

Open the Goodpods app
Close icon
Maintainable - Scott Hanselman - The Fear Factor in Maintainable Software
plus icon
bookmark

Scott Hanselman - The Fear Factor in Maintainable Software

06/11/24 • 36 min

Maintainable

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.

plus icon
bookmark

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.

Previous Episode

undefined - Stig Brautaset: Understanding Alien Artifacts in Legacy Code

Stig Brautaset: Understanding Alien Artifacts in Legacy Code

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.

Next Episode

undefined - Robin Heinze - React Native and the Art of Flexibility

Robin Heinze - React Native and the Art of Flexibility

In this episode, Robby welcomes Robin Heinze, Director of Engineering at Infinite Red, to discuss the intricacies of building and maintaining robust software systems. Key topics covered include:

  • Characteristics of Maintainable Software: Robin shares insights from her team on what makes software maintainable, emphasizing the need for clear documentation, robust setup scripts, and ongoing code refinement.
  • Technical Debt: They delve into managing technical debt, particularly in a consultancy setting, and how to balance client expectations with software quality.
  • React Native: Robin explains the advantages of using React Native for cross-platform development, highlighting its efficiency and accessibility to a broader range of developers.
  • Consultancy Challenges: The conversation also covers the unique aspects of working in a consultancy, including how to embed standards while respecting client processes.

Major Takeaways:

  • Effective communication and a proactive approach to maintenance are crucial in software development.
  • Visual elements like graphics can significantly enhance the accessibility and appeal of open source projects.

Book Recommendation:

Helpful Links:

For more insights, make sure to follow Robin on:

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/scott-hanselman-the-fear-factor-in-maintainable-software-54038280"> <img src="https://storage.googleapis.com/goodpods-images-bucket/badges/generic-badge-1.svg" alt="listen to scott hanselman - the fear factor in maintainable software on goodpods" style="width: 225px" /> </a>

Copy