Since I know how to make web apps, the urge to create personal software for myself and the people around me is huge.
Whenever I see a problem that I or someone else wants solved, my first instinct is that I can build an app to solve that problem. It’s the way I think, all day long. I know that way that I would do it, and it excites me to have a new project to figure out.
But often, that’s not the right choice. Each app that I write for myself quickly spirals into something I have to add features to and then later maintain.
I have to add all the features that other similar apps have, and then make sure that things don’t break. It’s all my responsibility now — just so I could have something that’s a bit more customized to what I want, or something that’s “cheaper” (although it probably isn’t actually cheaper if you factor in the time I have to spend maintaining it).
So too often, I find myself spending a couple hours on a new app for myself before realizing that I should just use something off-the-shelf that’s almost as good. I start all excited, but then quickly get bogged down in the details and edge-cases of it all. Building an app is always more complex in reality than it seems to me before I start.
I suppose that starting and quitting these little projects not a bad thing. It feels wasteful to sink a couple hours into something that ultimately doesn’t pan out, but I suppose that I learn something through doing it.
Plus, sometimes the projects don’t get killed. And either way, I had some fun along the way.