As I've been working through my thoughts on creating apps and
software, I've realized that software is pretty unique. Most software
feels so fluid and flexible. It's relatively easy to make changes. For
me, releasing something feels pretty anticlimactic. I put something
out there, but now I need to keep taking care of it. There's new
features to add, bugs to fix, compatibility issues to address when
operating systems or browsers change. Software feels alive to me in a
lot of ways. And I've been struggling with this feeling.
One of my other hobbies is bookbinding. The process is pretty
simple—basically gather materials, make materials the right size, put
materials together1. Once a book is put together, and the glue has dried, that's it. You
don't go back to that book and make changes to it after it's all
assembled. It's pretty satisfying, and in stark contrast to software.
I love making apps and websites, but I'm finding it very cathartic to
make something that I can be done with, that I don't have to return
to. I'm not sure if there is a way to get this feeling with software
or not. Maybe it's just me, but I just do not feel like I can be
"done" with any software I make. I would like to figure out
a way, but it's kind of a Catch-22. The fun part is making something,
so I don’t want people to use what I make because I don’t
really want to support it. But I don’t want to go through the
effort making something if no one is going to use it. I could do
better at setting expectations and say "no updates, use as
is", but most people don't want to use something that will never
get updates. Then I'm back to not wanting to make something no one
will use. I keep going in circles.
I think a lot of this is just me and my expectations for myself. As a
developer, I completely understand when other developers are not
constantly pushing out updates or sunset an app, and I think a lot of
people are just as understanding and forgiving. But as a user it can
feel frustrating when a tool you depend on is not getting bug fixes or
goes away completely. I don't want to make people feel like that, and
honestly, it feels like the only solution is to not make anything.
This is what is going through my head right now. Might figure it all
out one day.
I just removed my two iOS apps from sale on the App Store. I hadn't
updated either of them in over a year. It felt bad having them hanging
out there, wanting to update to them, but having trouble finding the
time, but more importantly, the motivation to do it. It honestly felt
like a sigh of relief to remove them. But, it was a hard decision.
Releasing something is often just the beginning, and I seem to always
forget this. By releasing these two apps, it felt like a promise I was
making to the world that I would keep working on them and making them
better and better, especially since one of the apps was paid. I have a
strong sense of duty and obligation to the things I build and put out
in the world. I think this is good in a lot of ways—in my opinion,
it's an indication that I care about what I make—but it can be
exhausting.
It really drags me down when I know there's a bug, or a requested
feature out there that I haven't addressed yet. And, it turns
out that I'm kind of a people pleaser1. If some stranger requests a feature, I expend too much energy
making it happen. And for what? Another couple dollars or another star
on GitHub? I have a lot of trouble putting stuff out there and not
doing everything I can to make it perfect for everyone. I do my best
to be responsive and accommodating. I have a hard time saying no. Even
when I'm not actively working on it, I'm thinking about how so-and-so
requested this feature or reported a bug and it's just hanging out
there.
With everything I have built and released, it comes to a point where
it just doesn't feel fun for me anymore. At first it feels like an
exciting new adventure. Then, one day, it doesn't. It feels like a
burden. A collection of tech debt waiting to break. A pit of
responsibility I dug myself into.
I don't really have any answers or lessons learned here. It just feels
pretty bad to feel burnt out by the things that used to excite you. It
also feels bad knowing that I have abandoned a lot of projects out of
fear that people would actually start using them and expect more from
them.
Maybe if there's a lesson to be learned, it's to not hang onto things
longer than you need to. It can feel bad for so many reasons to give
up on a labor of love, but perhaps that's what you need to do to give
yourself time, motivation, and energy back. I'm still grappling with
all this. I'm perfectly fine giving up on things I haven't finished,
but it feels so different when it's something that is already out
there, being used by people. I'm proud of proud of what I've built.
There's a surprising amount of emotion and feelings mixed into code
I've written and shipped, and it's hard to let that all go sometimes.
Anyway, I'm glad I removed those apps from the App Store. I can breath
a little easier now. Now, I just need to decide what to do with other
current projects, and how to handle any future projects. I kinda want
to just shut everything down and start fresh. Feels like maybe I
shouldn't, but who knows. At least turn off GitHub notifications and
take a break for a while.
As I was reflecting on what to do with my side projects, this
realization was a surprise to me. Probably should not have been.
But hey, always time to learn something new about yourself.
↩︎
I recently hit a 365 day streak in
Day One. I've never been very good at keep a journal, so it felt pretty
good! I found a couple things that helped journaling stick for me:
Keep it short.
Treat it like a private Instagram.
Keep it short
I don't write everything that happened in the day. That would be
boring to read any way. I usually just write a sentence or two about
something that stuck out. And that's it. I just had to give myself
permission to leave most of the day out.
Treat it Like a Private Instagram
Any time I take a picture and think "I should post this to
Instagram", I don't. Instead, later that night, I put it in Day
One and write a little about it. It's just for me. By ignoring
Instagram, I feel like I can be more present, and also spend zero
mental energy thinking about everything involved with sharing a photo
or video. Win-win.
After I made those two changes, I'm now pretty excited to write in my
journal each night. I know I'll be glad I did in the years to come.
For a while, I tried to utilize Twitter's bookmark feature to save
interesting links, helpful tidbits, and whatnot. I quickly realized
that it was almost impossible to go back and find what I had saved.
Around the time I started looking for other options, I was also diving
deeper into Obsidian. After some fights with Shortcuts on iOS, and
creating my own Obsidian plugin, I now have a quick way to add tweets
and other links to notes in Obsidian from the iOS share sheet.
The shortcut
gets the url, asks for a note, wraps it in a markdown link, and
prepends it to the appropriate file. The shortcut does some other
things like look in my bookmarks folder and present me with a list of
files to insert the link into1. It can also create a new file if I want to start saving links
related to a new topic.
With the links now in Obsidian, I can use the search to easily find
them again. One downside, since I'm not saving the actual content of
the links, search is dependent on the notes I attach. I'm not always
great at coming up with good notes...so I also wanted a way to easily
scan through my links. That's why I made the
Simple Embeds plugin. It automatically replaces supported links—like Twitter and
YouTube—with embeds instead. This way, when my laziness fails me, I
can quickly scroll through my bookmark notes and see the actual tweet
or video.
My iOS bookmarks file
My iOS bookmarks file with Twitter links replaced with an embed
So that's my bookmarking system with Shortcuts and Obsidian. Works
pretty well for me.
The shortcut does require
Toolbox Pro
because that was the easiest way I could find to sort my list of
files. ↩︎
I was listening to a podcast this morning and they talked briefly
about how so many of us start way more projects than we finish. It got
me thinking. How do you even know if a project is finished? And does
it even matter if we don't "finish" what we start? The
answer is that it depends1.
What does it even mean when we say "I want to finish this
app?" So many things we make cannot ever be finished2. Software is constantly needing to be updated and changed. Even
buildings need maintenance and renovations. Books mostly don't change
after they are published, but there are different editions that fix
typos and things like that. I think we need to stop talking about
finishing things. Might just be semantics, but it is probably better
to be more specific—publish the novel, release version 1.2, get the
certificate of occupancy for the house. This perspective has given me
a chance to go into new projects with clearer and more realistic
expectations.
I am constantly starting new projects. I have created countless new
Xcode projects, ran npm init hundreds of times, and even
started a couple books and screenplays3. Most do not survive beyond its initial creation. Of my dozens of
Xcode projects, 2 have ended up on the App Store. Out of the bazillion
websites I've started, I think 3 are live. I used to feel really bad
about starting all these and not "finishing". I felt like a
bad software developer because I did not have all these side projects
generating passive income for me4. Secretly, I was hoping each project I started would let me quit my
job and retire early.
Now, my attitude is to start projects to learn. Once I feel like I
have learned what I wanted to from a project, I can abandon it without
losing any sleep at night. This keeps the stakes low, and also gives
me a low pressure environment to see if a project has legs. If it
does, then I can adjust my intentions and push the project a bit
further.
It is unhelpful to expect ourselves to "finish" every
project we start. Experiment and explore instead. Everything we learn
and everything we start builds on each other. All that knowledge and
experience will come in handy when it really matters.
Now go start a bunch of stuff and see what sticks.
I've been thinking about all this in the context of personal
projects. Things change when other people are involved. If
you're driving your friend to the airport, you should probably
finish that and drop them off. If you started building a bench
and you promised your spouse that you would finish it, you
probably should. Unless abandoning the project and just buying a
bench would make everyone happier. But that gets into a whole
area of morals and ethics I don't want to dive into right now.
↩︎
This sentence originally read: "I don't think anything can
ever be finished." Then I thought about running. If you
complete a race, that is done, finished. You cannot go back and
change that race after it is complete. So I guess I'm talking
about things we make, and not really things we do. If that makes
sense... ↩︎