Wednesday, March 4, 2020

Types Of Projects

When I started writing articles on my site, sometimes I had great results, like writing the hexagonal grid guide in 6 weeks, and sometimes I had terrible results, like writing article about curved roads in 5 months. I eventually realized that the difference was that with hexagons, I understood the topic well, but with curved paths, I spent most of the time trying to understand the topic. To make matters worse, because I had a high standard for my articles, I spent too much time trying to polish the article about curved paths, even before I understood it well.

Back in 2013 I decided to create a separate directory /x/YYWW-name/ where I'd put the lower effort and experimental pages, numbered by year and week. For example, 1942-isometric means year 2019, week 42. Over the last few years I've realized I do two different types of projects:

  • fixed scope, variable time, usually focused on explaining something
  • variable scope, fixed time, usually focused on learning or understanding something

The fixed time articles typically go into /x/. An unexpected benefit of these short unpolished experiments is that sometimes it lets me explore a set of topics that comes together into a larger polished project. The best example of this is my map generation work in 2017–2018. Back in 2017 I had started experimenting with map generation topics:

This structure let me try things quickly, and also abandon things quickly. Those of you who know garbage collection algorithms know that there are two general strategies: throw away the garbage, or keep the non-garbage. In my regular projects I follow the "throw away garbage" strategy, but in this experimental folder I follow the "keep non-garbage" strategy. Things that work I can copy into a new project. Things that fail I leave alone. When I wanted to produce mapgen4 in 2018, I went back through these small projects and picked the parts I could use, and turned that into a new big project.

People ask me if I share links to all the /x/ pages. I don't do this because I found that by not sharing at first, it increases how much I write. I don't start every page worrying about how to explain something, or cross-browser compatibility, or making things work on any machine other than my own. If something works out, I can then fix it up and share it. Many things don't work out, and then I can abandon them quickly. This strategy has been extraordinarily successful at getting me to write more. I started these in 2013, with 7 pages, and then 11 in 2014, 20 in 2015, 24 in 2016, 33 in 2017, 36 in 2018, and 27 in 2019 so far. The downside is that it's so much easier to write the /x/ pages that I am not making many of the regular pages. I'm annoyed with myself for that but I'm just going to have to accept it for now.

No comments: