DEV Community

Serguey Asael Shinder
Serguey Asael Shinder

Posted on

Everything You Started Is Still Costing You

Count your open branches.

Four, probably.

One is waiting on a review.
One is waiting on an answer from another team.
One you left mid thought on Tuesday.
One is nearly there,
which it has been for nine days.

You feel busy because you are busy.

You feel behind
because none of it has landed.

Started work is not stored for free.

A branch you have not merged
is a small monthly payment.

The code underneath it moves,
so your change gets older
and harder to apply,
and the conflict you fix on Thursday
is a conflict that did not exist
when you wrote the thing.

The reviewer who half read it
has to start again.

And your own memory of it decays
at exactly the speed
that makes returning expensive
and abandoning feel wasteful.

So you keep it,
and it keeps charging you.

Nothing about that is visible.

There is no column anywhere
for the cost of things
that are almost done,
and there is no meeting
where anybody asks
what you are holding.

Finished work stops costing.

That is the only real difference
between the two states,
and it is enormous.

A merged change cannot conflict.

It cannot be forgotten,
it cannot need explaining again,
and it cannot decay
into a branch nobody dares delete
because it might contain something.

The rule that fixes this
is embarrassingly blunt.

Two.

Two things in flight,
and the third does not start
until one of the two lands.

When something blocks,
that is not permission to open another.

It is the moment to go
and unblock it,
which usually takes
one message to one person
and the small social discomfort
you have been avoiding all week.

Landing beats starting.

You will feel slower for a fortnight,
because starting is the part
that feels like momentum,
and finishing is the part
that feels like admin.

Then you will notice
that things are arriving,
and that you are carrying
almost nothing around
between Monday and Friday.

– Serguey Asael Shinder

Top comments (0)