DEV Community

Serguey Asael Shinder
Serguey Asael Shinder

Posted on

You Are Outsourcing the Part That Was Teaching You

You have driven to that town
a hundred times.

Now describe the route.

You cannot,
and you are not embarrassed by it,
because a small screen has been
telling you where to turn
for nine years.

Nothing was taken from you.

You simply never built the map,
because you never once
had to be lost.

Something similar is happening
to a skill you still need.

The generated change is good.

It is idiomatic, it has tests,
it handles a case you would have missed,
and it took four minutes
instead of the afternoon
it used to take.

You read it, it looked right,
you merged it.

Six months later
that area breaks at half past four
and you are reading it
like a stranger,
because you are one.

Here is the part worth being precise about.

The afternoon it used to take
was not waste.

Most of that time
was you being confused
and slowly stopping being confused,
and that process
is the only one
that has ever produced understanding.

Struggle was not the price of the code.

It was the product.

The code was the receipt.

So the question is not
whether to use the thing.

Use it.

The question is which skills
you intend to still have
in three years.

For those, invert the order.

Write your version first,
badly, on your own,
then ask for the critique.

You keep the confusion,
which is the expensive part,
and you still get the answer.

For everything else, the boilerplate,
the format you have written
two hundred times,
the migration that is the same
as every other migration,
hand it over entirely
and feel nothing.

You already own that map.

The test is simple enough
and you can run it tonight.

Take something you shipped this month
with a lot of help.

Close every window.

Now change it.

Not a rewrite.

One small change,
the kind a customer asks for
on a Tuesday afternoon.

If you cannot say
which file you would open first,
that code is in your repository
and not in your head.

– Serguey Asael Shinder

Top comments (0)