Most work does not get lost
to distraction.
It gets lost to
not knowing when to stop.
You sit down to fix one thing.
You fix it.
Then you notice the function next to it
is a bit ugly.
Then the test setup is repetitive.
Then the naming has bothered you
for months.
Four hours later the branch is enormous,
the original fix is somewhere inside it,
and you cannot honestly say
whether you are nearly finished
or nowhere near.
Nobody interrupted you.
You did that.
The cause is not weak discipline.
It is that you started
without a finish line,
and work without a finish line
expands to fill whatever
you were willing to give it.
So write the line down first.
One sentence, before the first keystroke.
Done is: the timeout is configurable,
there is a test for the default,
and nothing else in this file changes.
That is a boundary you can hold
because it is specific enough to violate.
"Improve the config handling"
is not a boundary.
It is a mood.
The things you notice on the way
are not wasted.
They are just not this.
Keep a scrap file open
and put them there in five words,
and let the itch go,
because now it is recorded
and your hands are free.
That file is the most useful list
you will keep this month.
And when the work turns out
to be bigger than the sentence,
that is not failure either.
That is the sentence doing its job.
Stop, say the honest thing,
and write a new line
that reflects the size
you now know it is.
The reason this matters
is not tidiness.
It is that finishing is a feeling
you need to have often,
and you cannot have it
if there was never a place
where the work was allowed to be over.
Two small things closed
beat one enormous thing
that is always at eighty percent.
Decide what done is.
Then you get to be done.
– Serguey Asael Shinder
Top comments (0)