Hacker News new | ask | show | jobs
by scandinavegan 2184 days ago
I agree and disagree! I've seen the comments where the issue is nuanced, but I'll add some of mine.

I play point-and-click video games remotely with a friend. We always try to stop our sessions when we have an idea of what we want to try next, because it's much easier to start again next time. You know that you want to try to attach the rope to the tree, which means you immediately get back into the game next time.

On the other hand, I've programmed a video game with the same friend. We programmed separately, checking out a shared file of code. This meant that I always wanted to pass on a functioning version of the game. It's obvious that I wouldn't want to check in a version mid-code line, but even more than that, I got a kick out of only attempting to add things small enough so that I could finish in one evening. Aiming to always hand off a functioning version of the game made me both take on appropriate-sized tasks, and made it more fun to check in the code so that my friend could try the latest version of the game when he started coding.

There's something to be said for checking out a functioning version of the game, looking through the list of features we want to add, and then picking the one that looks easiest/most fun right now. If I had a half-finished feature to complete, I may not feel like it the next time I start, which would make me put off working on the game.

A half-finished feature may make it easier to start, but aiming to always finish a feature made me keep my ass in the chair instead of switching to playing a video game or watching Netflix.

A lot of authors would agree with your advice (I think that Hemingway talked about it in an interview, and Stephen King in the book On Writing), but I suggest trying both this method and the variant where you always try to have a functioning project and add new small features.

1 comments

Yes! :). I've done just that the past couple weeks building a game with a friend for a game jam. In that case, having the latest version of the game up and running was the strongest motivator so I didn't need tricks.

I definitely recognize what you are saying. Things don't have to be black or white, and this is a good nuance

Seems to me you can do both at the same time:

push a finished feature to the Git master branch, and a w.i.p. feature incl a compilation error to a personal branch