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
- Scott believes that if you fear the software you work on, it's a tell-tale sign that it has maintainability issues.
- 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.
- 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
- Scott emphasizes the importance of empathy in overcoming technical debt and making software more maintainable.
- Senior engineers and team leads have a responsibility to make junior developers feel safe enough to speak up and ask questions.
- He advocates for providing new hires with small, achievable tasks to build their confidence and trust in the software.
- Scott encourages teams to use "inner loop" and "outer loop" thinking.
- Inner loop - The cycle of making a change, hitting f5, and seeing changes immediately.
- Outer loop - Things like deploying the codebase, getting it tested, ensuring production stability.
- 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
- Scott shares stories about Microsoft's journey with open-source software and how that process has shaped the company's culture around maintainable code.
- 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.
- Scott warns against the trap of striving for unattainable perfection. Aiming for good, solid repeatable work over perfection ultimately yields better results.
- He uses his own projects, like the Hanselminutes podcast, as examples of focusing on consistent outputs and utilizing a simple workflow.
- Scott advocates for using AI tools to transcribe coding sessions, freeing up developers from extensive note-taking.
Book Recommendation:
- The Daily Stoic By Ryan Holiday
- Scott Hanselman - Personal Website
- Hanselminutes Podcast
- .NET Open Source History: .NET Core | Microsoft Learn
Helpful Links:
- Scott Hanselman - Personal Website
- Hanselminutes Podcast
- .NET Open Source History: .NET Core | Microsoft Learn
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!