Make it exist, then make it nice.
The baby steps count.
I think everyone has heard this before, and done this many times even, but I cannot stress it enough: Make the thing you are dreaming about exist first, then we can make it nicer gradually. This applies for everything.
This happens to me many times when I write software. Recently I wrote a MCP client from scratch for my coding agent, and mind you, the code was horrendous. I lost count of how many //TODO I left, sometimes I don’t even know where to put this piece of code, I got all the naming conventions mixed up or had no clue what best practices to follow yadda yadda.. Now every time I look at it, the urge to use a sledgehammer to break all of them and start again, knowing it will never satisfy me, goes on and on.
But there was this magical moment: When I ran that mess of a code, and it hooked up the MCP server, and did the handshake, and listed the tools, and bibbidi bobbidi boo the whole thing works. When I prompted the agent to make it invoke the MCP tools, it did so flawlessly. It was exhilarating. One of the rare moments that made me feel like I made the right choice to be a programmer.
Then I realized that the “make it exist” part was done, and now the hard part “make it nice”. I went straight to GitHub project Kanban Board, wrote an issue explaining what I could do to make it faster, tighter, cleaner, more readable, and many criteria. May be for the next few months (or even years, if I manage to stick with it for that long) I might give it a chance to make it nicer, but for now, that’s the goal. That’s where I should head towards, and I feel calmed.
I think that’s the whole shtick of being a programmer, and for every creative out there too. We have an idea, a desire for creation, to see what is in our heads come to life, even how ugly it could be. Such ugliness might pain us, but we know that we have the time, the resources, and the will to make it better.


