

Never Rewrite
Isaac Askew and Jeffrey Sherman
‘Never Rewrite’ is a mantra of ours in the programming realm. Often times when software developers encounter nightmare codebases, the thought crosses their mind to work towards a rewrite, a port to a new language, or despair that their code is unfixable.
It’s not unfixable, and we explore how to get started along with an array of other software topics in our eponymous podcast.
It’s not unfixable, and we explore how to get started along with an array of other software topics in our eponymous podcast.
Episodes
Mentioned books

Dec 13, 2024 • 22min
Episode 82: Can You Like Tests And Also Believe You're Faster Without Them?
Isaac and Jeffrey discuss the balance between unit testing and the need for speed in software development. The discussion delves into the contexts in which testing is most valuable, the challenges of rapid development, and real-world examples of testing practices. Ultimately, they emphasize the importance of adapting testing strategies based on the specific project and team dynamics.

Dec 6, 2024 • 11min
Episode 81: The Pause
'The Pause'—a critical juncture where development on the old system is halted in favor of completing a new system. Isaac and Jeffrey discuss the inherent risks of this approach, the implications for customer value, and the often misguided desire for dramatic reveals in software releases. The conversation emphasizes the importance of maintaining continuous value delivery and offers strategies to avoid the pitfalls associated with pausing development.

Nov 29, 2024 • 12min
Episode 80: What is "De-Risking"?
Isaac and Jeffrey delve into the concept of de-risking in project management. They discuss the importance of iterative delivery over big bang releases, using gambling analogies to illustrate risk management strategies. The conversation emphasizes the value of decoupling projects to reduce risk and the significance of obtaining feedback early in the development process. The hosts highlight how these strategies not only mitigate risks but also provide opportunities for value delivery and informed decision-making throughout the project lifecycle.

Nov 22, 2024 • 18min
Episode 79: The Toxicity of "Certainty"
Isaac and Jeffrey explore the concept of certainty in software development and its potential toxicity. They discuss how certainty can lead to poor decision-making, the importance of experimentation, and the human behaviors that contribute to toxic environments. The dialogue emphasizes the need for a balance between certainty and uncertainty, particularly in leadership roles, and highlights the dangers of strong opinions that masquerade as certainty.

Nov 15, 2024 • 16min
Episode 78: Is Frontend Modernization a Valid Reason for Rewriting?
Isaac and Jeffrey discuss the validity of rewriting front-end systems for modernization. They argue against the notion that a dated front end necessitates a complete rewrite, emphasizing the importance of iterative updates and customer experience. The conversation explores the risks of big bang rewrites, the benefits of gradual improvements, and the need for design consistency while still delivering value to customers. Ultimately, they advocate for a more thoughtful approach to modernization that prioritizes user experience over aesthetic uniformity.

Nov 8, 2024 • 15min
Episode 77: Who Gets To Define 'Shit' Code?
Isaac and Jeffrey explore the subjective nature of coding standards and what constitutes 'shit code.' They discuss the lack of industry-wide standards, the importance of intention in coding, and the balance between flexibility and adaptability in code quality. The conversation also touches on the fluidity of language and how it parallels coding practices, emphasizing that coding standards should evolve with the context and needs of the project.

Nov 1, 2024 • 25min
Episode 76: Aligning Your Company Standards to its Lifecycle Phase
Guest Dustin Rea joins us to discuss the importance of aligning a company's standards and processes with its lifecycle stages. The discussion covers five key phases: the MVP phase, where the foundation is built; the Product User Fit phase, focusing on understanding customer needs; the Product Market Fit phase, solidifying the offering; the Scaling Up phase, managing growth; and finally, the Multi-Product Platform phase, where companies expand their offerings. Each phase presents unique challenges and requires different approaches to maintain quality and efficiency.

Oct 25, 2024 • 17min
Episode 75: Rewriting is Gambling - A Lesson in Risk
Jeffrey and Isaac discuss the inherent risks associated with software rewrites, emphasizing how rewrites push risk to the end of the development cycle. The discussion highlights the need for iterative development and the significance of delivering independent components to ensure project success, particularly within the SaaS model, which thrives on continuous improvement and customer satisfaction.

Oct 18, 2024 • 11min
Episode 74: Musketeering
Jeffrey and Isaac explore the concept of 'musketeering' in software development, emphasizing the importance of collaboration in solving complex problems. They discuss the challenges of legacy code, the necessity of testing, and the strategy of 'divide and conquer' to tackle intertwined issues effectively.

Oct 11, 2024 • 12min
Episode 73: The Politics of Delivering Trivial Changes
Isaac and Jeffrey discuss the philosophy of continuous iteration in software development, emphasizing the importance of making small, incremental changes rather than large, risky updates. They explore the challenges of communicating the value of these trivial changes to non-technical stakeholders and the benefits of refactoring code for future development. The discussion also highlights the significance of storytelling in conveying the purpose and impact of these changes to a broader audience.


