Blog Posts

The Never Rewrite Podcast, Episode One Hundred Forty-Six: How AI is Reshaping Careers and Workflows

Can the hourly billing model survive Agentic coding? How is AI reshaping the software consultant career?

If you've been wondering how AI is impacting the developer's dream of going freelance, this is the episode for you!

Watch on YouTube or listen to it at Spotify, Apple Podcasts, or your favorite podcast app.

Have a tricky problem that you think requires a rewrite of your software? Join as a guest on our podcast and we’ll talk you out of it.

Want some custom advice? Book a 2-on-1 call with Isaac and me today!

The Never Rewrite Podcast, Episode One Hundred Forty-Five: Outdated Programming Techniques: Browser Compatibility

Once upon a time web browsers worked differently. Every browser supported different features and developers had to work hard to ensure that websites worked more or less the same on each one. These difficulties were mostly on purpose! Incompatabile browsers were product differentiators, and had moats!

If you want to hear about the "old days" of 10 years ago, this is the episode for you!

Watch on YouTube or listen to it at Spotify, Apple Podcasts, or your favorite podcast app.

Have a tricky problem that you think requires a rewrite of your software? Join as a guest on our podcast and we’ll talk you out of it.

Want some custom advice? Book a 2-on-1 call with Isaac and me today!

The Never Rewrite Podcast, Episode One Hundred Forty-Four: Outdated Programming Techniques: Bit Masking

Back when cpus, memory, and hard drives were limited bit masks were the most efficient way to store flags. Why store one flag in a variable when you could store 8 flags in a byte? Why not do the everything the most efficient way possible? Because cpus, memory, and hard drivers aren't limiting factors anymore.

If you've every wondered about software optimizations that aren't worth doing anymore, this is the episode for you!

Watch on YouTube or listen to it at Spotify, Apple Podcasts, or your favorite podcast app.

Have a tricky problem that you think requires a rewrite of your software? Join as a guest on our podcast and we’ll talk you out of it.

Want some custom advice? Book a 2-on-1 call with Isaac and me today!

The Never Rewrite Podcast, Episode One Hundred Forty-Three: Tactics to Obscure (Parody)

How do you explain the status of a project? As you progress and learn more, is it even the same project? These are hard questions about the transmission of true and accurate information. Or, you might just be trying to hide that the project is falling behind schedule.

If you've ever wondered about the tricks and obfuscations used to hide a project's true status, without exactly lying, this is the episode for you!

Watch on YouTube or listen to it at Spotify, Apple Podcasts, or your favorite podcast app.

Have a tricky problem that you think requires a rewrite of your software? Join as a guest on our podcast and we’ll talk you out of it.

Want some custom advice? Book a 2-on-1 call with Isaac and me today!

The Never Rewrite Podcast, Episode One Hundred Forty-Two: Are You Ready to Scale? A Local Case Study

Are you ready to hire a developer to scale your business? Are you sure? In today's episode Isaac walks us through how he attempts to convince perspective customers not to hire him!

If you've ever wondered if you're ready to hire consultants to help you scale, this is the episode for you!

Watch on YouTube or listen to it at Spotify, Apple Podcasts, or your favorite podcast app.

Have a tricky problem that you think requires a rewrite of your software? Join as a guest on our podcast and we’ll talk you out of it.

Want some custom advice? Book a 2-on-1 call with Isaac and me today!

The Never Rewrite Podcast, Episode One Hundred Forty-One: How Rewrites Create Accountability Black Holes

What happens to new bugs in a system being rewritten? Do they get fixed in both systems, just the new system, or neither systems? In this episode Isaac Askew and I explore how rewrites create accountability black holes that encourage bugs to linger.

If you have ever wondered why annoying, but simple, bugs don't get fixed, this is the episode for you!

Watch on YouTube or listen to it at Spotify, Apple Podcasts, or your favorite podcast app.

Have a tricky problem that you think requires a rewrite of your software? Join as a guest on our podcast and we’ll talk you out of it.

Want some custom advice? Book a 2-on-1 call with Isaac and me today!

The Never Rewrite Podcast, Episode One Hundred Forty: Evolving Past Boomer AI

AI is great for coding! How is it doing outside of coding? In this episode Isaac and Dustin dig into AI's impact on legacy system development, team dynamics, and other human factors beyond the code.

If you've been wondering how AI is changing legacy development, this is the episode for you!

Watch on YouTube or listen to it at Spotify, Apple Podcasts, or your favorite podcast app, and let us know if you have ever been involved in a rewrite. We would love to have you on the show to discuss your experience!

The Roadmap to Hell Is Written In Features

The road to hell is paved with good intentions; the roadmap is written in features.

The Road To Hell Is Paved With Good Intentions points to the common disconnect between someone’s intent, and the result of their actions.  Good intentions, and good actions, do not guarantee good outcomes.

Roadmapping features has the same disconnect between intent and results.  Good intentions, and good features, do not guarantee good outcomes.

Each feature makes sense, and is good by itself.

The problem is that the goal isn’t a feature, a whole series of features, or even projects.  The goal is the outcome.  Roadmaps full of features don’t track the progress towards an outcome, they track progress on features.

Roadmaps based on features present a linear path.  Each feature unlocks the next.  This, then that, and then that, until the project is complete.

Customer feedback isn’t baked into the process.  Will all of the good features lead to good results?  Probably not!

The opposite of roadmapping features, is roadmapping outcomes.  This requires getting clear on where things are, where they need to end up, and the mechanisms that drive change.

The only feature that comes out of an outcome based roadmap is the first one.  The first attempt to change the system.  After that?  Depends on the outcome of the feature!

Outcome based roadmaps are built on mechanisms that can drive change, and feedback loops.  The features are unknown because the impact of each feature is unknown.  

A roadmap built of features is like a road to hell, paved with good intentions.

The Never Rewrite Podcast, Episode One Hundred Thirty-Nine: A Failure of the Imagination ft. Mark Mandau

Are rewrites a failure of the imagination? Are they the inevitable consequence of deferred maintaince? Is it possible a rewrite to succeed in such a way that it validates the choices that led to a rewrite? Mark Mandau rejoins Isaac and me to discuss how managers and leaders look at the question of rewrites.

If you've ever wondered how managers and leadership evaluate rewrites, this is the episode for you!

Watch on YouTube or listen to it at Spotify, Apple Podcasts, or your favorite podcast app, and let us know if you have ever been involved in a rewrite. We would love to have you on the show to discuss your experience!

How I Will Talk You Out Of A Rewrite

If you come to me saying “we need a rewrite”, I will run you through a lot of “why” questions to discover if you actually need a rewrite.  I am basically trying to answer these three questions:

  1. What will the new system do differently?
  2. Why can’t you do that in the current system?
  3. Why can’t you build the new things separately?

Answering these questions yourself will help you think through whether you really need to rewrite your existing system.

Let’s examine each more closely.

What Will The New System Do Differently

What will be different about the new system?

For this exercise you have to ignore code quality, bugs, and developer happiness.  Those are all important, but corporate reality hasn’t changed.  The same forces that resulted in low quality code, endless bugs, and developer unhappiness are still there.  A rewrite might get you temporary relief, but over the long term, the same negative forces will be at work on the new system.

So, what is different about the new system?  The differences could be technical, like a new programming language, framework, or architecture.  Maybe you need to support a new line of business and the existing system can’t stretch to cover the needs.

Get clear on what will be different, and write it down.  These are your New Things.

Why Can’t You Do It In The Current System

Now that you are clear on what New Things you need, why can’t you build the New Things into the existing system?

We are still putting aside issues like the existing code quality, bugs, and developer happiness.  If those forces are all that is stopping you from doing the new work in the existing system, I have bad news, those forces will wreck the new system as well.  You don’t need new software, you need to change how you write software.  Stop now, while you only have one impossible system to maintain.

Other than the forces that cause you to write bad software, why you can’t use the current system.  Get clear.  Write it down.  These are your Forcing Functions.

Why Can’t You Build The New Things Separately?

At this point we know what the New Things are and we know the Forcing Functions that prevent you from extending the current system.  Why can’t the New Things live alongside the existing system?

A rewrite requires rewriting all of your existing system.  Building New Things in a new system because of Forcing Functions, only requires building the New Things.  Why can’t you do that?

By this point office politics are out.  Office politics can’t overcome Forcing Functions.

Quality and bugs are also out, because there is no existing code to consider.

Get clear.  Write it down.  This is your Reasoning.

Now, take your Reasoning, backed by the Forcing Functions, and you have explained how getting the New Things requires a rewrite.  If your Reasoning can convince your coworkers, then I’m sorry, you do actually need a rewrite.  

If not, it is time to talk about alternatives.

What Happens After I Talk You Out Of A Rewrite

Most rewrites are driven by development culture issues, not the software itself.  This brings us back to code quality, bugs, and developer happiness.  A rewrite won’t fix any of those issues.

The good news is that you can fix all of them without a rewrite.  Even better news is that fixing them will only take about as much effort as you think a rewrite would take.  The bad news is that your culture is pushing against making the fixes.

Take it one step at a time, and keep delivering.

Site Footer