You Need To Fight Back Against This Astonishing Trend
The rise of copy-paste code, and why design patterns matter more than ever in 2025.
Hey there,
At the start of 2025 GitClear released a white paper on AI Copilot Code Quality
The finding that made me fall out of my chair?
The year-over-year change from 2023-2024 in code moved: -39,9%
That is a shocking figure. Moving code is dying out. But what exactly is moving code?
An essential part of refactoring is taking existing code and finding ways to extract it into reusable components like modules or files. It’s a signature of code reuse: a great practice for maintainable code.
2024 was the first year that copy/pasted code exceeded moved code.
The proliferation of AI brings massive changes to the industry. It already has, and it will continue to do so. The sheer amount of code AI can churn out is making developers much more productive, but it has a cost. Developers are now less likely to refactor code, and more likely to just duplicate it.
And what does that bring?
A maintainability nightmare.

What if you are assigned a change in a code block that is duplicated? Do you now have to make the same change in all blocks? Just a few of them? Only that one? do you even know where they all are?
How do you test it? In all places? In just the one you were assigned?
Are all these considerations budgeted into the estimate for the task? Or is it just the one block you had assigned? And what happens if all these considerations lead to you feeling behind, scrambling to make up for lost time?
Well, your morale drops, you’re more likely to make mistakes, and eventually it will just cost more to fix anyway.
So how do we fight back?
Remember when you first learned to ride a bike? You probably started with training wheels, unless you were much smarter than I (let’s face it, most people are 🫠).

But those wheels weren't permanent.
They were just temporary guides until you developed that muscle memory for balance. Design patterns in software development are the same: training wheels that help you write better, more maintainable code that doesn’t haunt you.
But what even is a design pattern?
Design patterns are, simply, typical solutions to common problems.
You don’t need to reinvent the wheel all the time. You don’t need to feel completely lost. Design patterns provide the middle ground: a solution that has been applied to a similar problem that you can use as well!
But they’re not just something you can copy into your codebase.
It’s not a library that you import and happily call FixMyCode(). They’re a concept. A blueprint. You don’t have exact steps, but you know what the result and its features are.
But why should you learn patterns?
Identifying problems and mapping a design pattern onto it is difficult. But it’s also a great way to show you really understand what’s going on. You’re not just doing a step-by-step that someone else wrote for you.
You’re taking a concept and fitting it to your needs to make maintainable code.
If you’re an early-career engineer, showing you understand and have the ability to transform code using patterns is a great way to stand out. To show that that you know your craft.
And that you’re valuable.
On top of this, understanding and being able to reason about patterns gives you a common language to discuss with your team. You don’t have to explain exactly what a pattern does if everyone knows it already. The name is enough to convey your message.
The GitClear white paper makes it clear: now is the time to learn.
The increased speed is making developers careless and it WILL create more problems.
AIs get more powerful. They churn out more code. We are more tempted to duplicate, take shortcuts, and not fully understand what we’re doing.
That’s why you should do the opposite.
Take care. Understand. Use AI without abusing it.
Change is the only constant.
Use your human ability to simplify, change and consolidate code to make it Enduring.
The question now becomes: how do we write maintainable code in an age where AI makes it so easy to duplicate?
That's where design patterns come in.
Next Tuesday, we'll break down three essential patterns that can help you fight back against code duplication. Patterns that will help you write code that's:
Easy to change
Simple to test
A joy to maintain
See you then!
PS... Did this newsletter scare you? Share it with fellow developers to join the fight. Each share helps more developers care about quality!