Project optimism

Macoy Madson

This post is also on my blog.

I have been working hard on a file organization application written in Cakelisp. This is part of my career goal to sell my software. The project's name is File Helper (I haven't spent any time trying to come up with a better name yet).

I believe I have a good approach to thinking about my projects. It is sometimes hard to define project success in terms other than "other people think it's really cool". There are a large number of reasons why a project is still a success, even if it ends up not being popular.

Accumulating code

I have been continuously improving Cakelisp and GameLib and intend to continue using these tools on future projects. This means all the bugs I find and fix, the features I add, and the body of references I accumulate all contribute to my potential for future success.

The more I can leverage and improve my existing tools, the easier it will be to create better applications. I started Cakelisp because I believed it would help me make better software faster, and I would be happier working with it. I still believe I have achieved these results.

Accumulating experience

Before File Helper, I hadn't had much experience writing shaders for 3D graphics. My career has always been focused on gameplay software engineering. File Helper's Tree Map gave me an opportunity to write some simple shaders and get my feet wet with OpenGL. I am already excited to use this knowledge on my next project, which will definitely need some shaders, because it also requires some custom graphical widgets.

Additionally, the more projects I get to version 1, the better I get at planning and executing my plans. I feel I have gotten better at knowing when to set artificial deadlines for myself, and how to more effectively filter the features which waste time vs. the ones that really matter.

Determining what's worth making

It is very difficult to know whether something is worthwhile until you have something to put in front of people. This is partly the idea behind the Lean startup. I knew the reasons I wanted File Helper, but I do not know how many other people would want it. Do others encounter similar problems to what made me want the tool?

I needed to create something in order to answer this question. I plan on having an MVP for File Helper online and available to download in October. This project was started around 5 months ago, and developed in earnest (nearly every day) for around 2 months. I would like to shorten this time for the next project, especially by gathering input from potential users much earlier, which is something I didn't do with File Helper.

If File Helper doesn't find an audience, I gained an extremely valuable data point. I'd know I am making the wrong thing[^1], and I would hopefully also receive user feedback to hint me in a better direction. I think spending a couple months to learn this lesson isn't entirely unreasonable, especially because I still gain a tool which is valuable to me at the end of it.

Crafting things is satisfying

I'm very proud of the projects I have finished. It feels good to create things, and even if those things "fail", the journey of putting them together, the "Aha!" moments, and tinkering with the whirring machine you built is still worth a ton.

[^1]: In the context where my end goal is to make enough money on my projects to sustain myself, which is my career goal.

What do you mean exactly by a file organization application ? Is it a file browser or something else ?

It's different from anything I've seen before. The purpose is to categorize all the files on your drive so that you can more easily automate actions on those files.

In my case, my backups were getting too large to put on the cloud, so I wanted a tool to help me figure out what was in the backup, and organize multiple tiers of backup. For example; Critical files can be a small set backed up on multiple servers, whereas a Media backup tier would be annoying to lose, but not the end of the world.

I needed something which would help me very efficiently go through all my files. This tool lets you inherit and override categorizations such that it doesn't take many actions to completely mark up a drive.

The categorization works in tandem with the treemap visualization of file sizes to help you know what files are very large and therefore might belong in a different backup tier.

I can't say that I see a lot of use for that (for myself). But something I often want in file browser is to easily select files from different directories and sub-directories and move or copy them (optionally keeping the directory structure in the copy). It's more a temporary thing, that I need just for a single "action" so it could be useful for that.