Yes.

## Why?!

### I’m trying to save a side project from dying

I have a cool side project called make-git-better. It’s a CTF-type challenge which is meant to teach you git. Right now, the project is teetering in the twilight zone of side projects. On one hand - I like it and it’s moderately successful (more than 30 people played it). On the other hand, I whipped up the first version quickly and with pretty much reckless abandon.

And it shows.

The setup is all wrong. There’s code duplication of the worst kind. Testing it is a nightmare. Both times I tried actually doing the CTF as part of a workshop, technical issues ruined almost everything, and there was no backup plan. I’ve gotten a lot of feedback (which is great!), but even thinking about implementing it in the current situation makes me anxious, since everything is super rigid and slow. So it’s time for THE GREAT REFACTOR IN THE SKY.

Maybe blogging and sharing this will make me disciplined enough to work on this project until it’s actually done.

And where did that idea come from?

### I’m inspired by someone else

#### Tom Randell and Yahtzee Croshaw

Recently, YouTube’s algorithm ingeniously offered me to watch this video:

It was HILARIOUS. And also super interesting, even though I’m not an artist AT ALL. As one does, I look into Tom’s channel and sorted the videos by popularity. And I really liked the vibe (the other videos are a lot more “developer”-ish). Seems like a great way to keep up a project alive and keep the work social and interesting. Great way to self-commit, by not actually “self” committing. Tom’s pretty funny as well which is helpful:

After that, I fell into an even cooler rabbit-hole: Yahtzee Croshaw’s 12 games in 12 months dev diary.

Yahtzee, who’s known for his rather direct manner of speaking had an amazing observation in the first minute of the video which kicked me into first gear:

I’m a creative. […] But if there’s one that I can’t stand, it’s people who claim to be creative who never finish shit. Starting projects doesn’t count; if all you do is start projects and eventually give up on them, you have as much right to call yourself a creative as someone who spent the equivalent time in a wooden box BEING DEAD.

With that kick in the ass from Yahtzee, there’s no way I’ll fail to finish this project. /s

I’ve thought about doing a devlog/dev diary/dev live streaming for a while as part of my work on Infection Monkey, but that didn’t really come to fruition. I think that this kind of thing won’t really thrive in a commercial/corporate ecosystem. It has to come from the heart.

#### Uncle Bob

I’m reading The Clean Coder, written by the most influential software writer in the world, Uncle Bob. This book is all about professionalism. And I think that it’s very difficult to be professional alone. This devlog is the mission log that will make sure I’m staying professional to myself and to the project. It’s about professional hygiene, professional practising. It’s the warmup, it’s the stone to sharp on.

In short - it’s a tool.

### Seems like a fun thing to try

Yeah. Not that complicated of a reason, but a good one. If this will make me enjoy the process more, then why shouldn’t I try it? And how can I know if I won’t try?

## What now?

Good question. Let’s plan:

### The project

The plan for make-git-better 2 is to:

1. Throw this plan into a project board on GitHub or Trello or something.
2. Set up the development so it’s a nice breeze and not a hellish nightmare. This will be a pretty big DevOps/IT kind of thing: write the challenge’s levels using some sort of fun and easy configuration (it should be a graph! not a line.), deploy to docker, connect it to docker-tcp-switchboard. Unsure if there’s going to be a companion site as well - probably yes.
3. Create some content for the levels. My current leading “content” world is to make it feel like a text-based adventure/RPG kind of thing.
4. Crack out a ton of levels. I have about 12 now, and I have plans for 30. If the development is easy and I have enough content, this part should be fun and easy.
5. Deploy and have a test run with a few people.
6. Bask in glory for the rest of time.

### The devlog

My plan is to have this devlog be a scratchpad next to me as I’m working on this project. This makes me talk “out loud” in my head about it, which is much nicer and will also force me to make conscious decisions and become a better developer.

I don’t know when’s the next time I’ll work on this project. Honestly, it should be before May, when I have another workshop planned: hopefully, this won’t peter out as well. See you soon.

Writer’s note: I started drafting this devlog in early April, but only published it in early May, when I had devlog #1 already drafted. Guess it didn’t peter out ¯\(ツ)

You can follow this devlog here.

948 Words

2020-04-11 14:00 +0300