Skip to main content

Ralsina.Me — Roberto Alsina's website

Software projects are not pets. FINISH YOUR PROJECTS.

I have late­ly been start­ing a ton of project­s. Usu­al­ly that would mean that I would be aban­don­ing a ton of pro­ject­s, but I have been fin­ish­ing them. I have been do­ing this by treat­ing my projects like they are not pet­s.

For ex­am­ple, let's take grafi­to a web fron­tend for sys­tem logs.

I start­ed it. I worked on it for a week or two of spare time, and now it's DONE. To­tal­ly done. It has no miss­ing fea­tures. It has no bugs. It is DONE.

It does what I want it to do, it does it well, it's pou­b­lished in all the ways that make sense, and I don't have to think about it any­more.

Sure, if some­one finds a bug, I will fix it. If some­one asks for a fea­ture, I will con­sid­er it. But I am not go­ing to spend time on it un­less there is a good rea­son to do so.

I am spe­cial­ly not go­ing to spend time on it just be­cause I like it, or be­cause I want to keep work­ing on it. I am not go­ing to pet it, or feed it, or take it for walk­s.

I am not go­ing to think about what fea­tures I could ad­d. It does what it does. It's pret­ty unixy, in that it does one thing and does it well. It is not a pet, it is a tool.

That is how I am han­dling my projects nowa­days. I wrote tar­trazine which is a syn­tax high­light­ing tool in a cou­ple of weeks and it's done. Six­teen? DONE.

Some projects are not fin­ished. Cryc­co is not fin­ished. I will work on it some more. Be­cause it's not done yet. It has miss­ing fea­tures, it has bugs, it has things I want to do with it.

This is spe­cial­ly im­por­tant for free and open source project­s. Main­tain­ers get over­whelmed. Start­ing a project is fun but main­tain­ing it is like hav­ing a pet par­rot, re­quir­ing con­stant at­ten­tion, feed­ing, clean­ing, and who will out­live you.

That at­ti­tude is not sus­tain­able. Imag­ine you were a hob­by car­pen­ter mak­ing ta­bles. Would you say "ta­bles are nev­er fin­ished, they are aban­doned"? No, you would say "this ta­ble is done, I will make an­oth­er one if I want to".

That is a healthy at­ti­tude. This is not re­li­gion, and this is not a job. If I start a new project I will fin­ish it, or I will aban­don it, but I will not cre­ate projects that will re­quire my at­ten­tion for­ev­er.


Contents © 2000-2025 Roberto Alsina