We hear a lot of talk lately about the technical debt programmers are facing, once their software becomes mature enough, and all that rapid development that was done initially starts to hurt the company.
I'm pretty sure we can say the same thing for us all as regular people, software users. We're all getting into technical debt with the software itself. There's an app for everything today, and each and every little thing someone needs to do on their phone or computer seems to have already been enabled by a purposefully built application, especially for that crazy tiny micro-niche, like “a to-do list for things to be done only in the afternoon, and when in the mood to do them”.
Note: throughout this post I will use the terms "application", "app", and "service" interchangeably, meaning simply software.
I really believe that all software that an average person needs can be classified into a handful of categories:
The majority of our work falls into one of these categories, and there are apps that help us do said work. My main point that I want to get across is that we should be better off using as few apps that help us get our work done, as possible.
Truth be told, there are apps that optimize the process of work — in terms of offering a better UI, or other auxiliary functionality — but is that really necessary? How much do we actually benefit by using a dedicated to-do list app, over an organized plain text note/file? And how far do we want to go down that rabbit hole?
For the past couple of years I have been ruthless in my pursuit of cutting down the number of apps I use to reduce my dependency of these micro-ecosystems they all seem to create. And that is exactly my biggest gripe with most of them: they make it really difficult for me to move away from them.
Honestly I didn't care all that much until I wanted to move away from a service I was using and relied on for a lot of things. The sheer amount of things I was using it for made leaving it exceptionally difficult, and this is when I realized how uneasy these so called "walled gardens" are making me feel.
This is when I realized that in the future I will do my best to rely on the basic software and systems as much as possible, and resort to installing a specific app/service only if they significantly improve the quality of my life.
Here's the list of apps I use on a day-to-day basis for each of these categories.
- Email: Gmail (Inbox actually).
- Messaging: SMS, Viber, and Telegram.
[quiet]I consider the number of messaging apps I am using to be more than necessary, but due to wanting to stay in touch with a lot of different people — each with their messaging service preference — I am forced to keep all these installed, although they all live on my phone only.[/quiet]
- Synchronized: Dropbox.
- Remote: Amazon S3.
- Photography: Google Drive/Photos.
- Calendar: Google Calendar.
- Reminders: native iOS Reminders app.
- Notes and list making: Trello, Strava, Garmin Connect.
[quiet]I find the feature where Reminders app can send me a notification about something when I'm at a certain place insanely awesome. Strava and Garmin Connect are under organization as that's where my training data resides[/quiet]
- Social networking: Twitter, Strava.
- News: Reddit.
- TV: YouTube.
- Music: Spotify.
Over time I've learned that I have settled into a pretty good system of software that I use to get the majority of my day-to-day work done, but I also realized that there were cases where I wish I could do certain tasks more efficiently.
Hence e.g. the move away from an app that simply handles the CRUD operations over text files within my Dropbox, to Trello.
I really enjoy the functionality Trello adds to my organizational tasks like making lists and taking notes, so I consider trusting my data with it a worthy trade-off. If I wanted to go full spartan I could literally do everything through email and Dropbox, but that's no way to live at all. I think the real point of this "system" is to be really picky about software that we rely on to improve the quality of our lives, instead of being anti-software at the price of making things uncomfortable for ourselves.
The goal is to use as little software as possible, but not at the price of inconvenience.
This is why I don't mind paying for the software that I use. Because I know that if I commit to using an app long-term, it's actually affecting my quality of life, and I don't mind paying for that. This is also why I see a lot of software makers struggle to get paying customers, because not all software and not every service is worth paying for simply because it's not impacting its users' quality of life enough for them to do so.
A lot of people will use an app for a small convenience it enables them if it's free, but ask them to pay for it and they will drop it like it's hot. This is the value in software smart people keep talking about.
Compared to creating real value, creating the software itself is the easy part.
It's awesome when apps can talk to each other
There is a relatively new type of service which I have enjoyed for the past few years, that I call a "glue service". It is software that doesn't do anything in particular by itself, other than connect various apps and services and allow them to understand each other.
This means that I can make my Trello add things to my Google Calendar (and vice versa), when by default these two apps can't exchange data by default and aren't connected at all. Or set up Twitter so that everything I post is copied to a Google Spreadsheet in Drive for my safe-keeping. The possibilities are endless.
Having this "middle layer" between the inherently disconnected software landscape is enabling us to continue to enjoy apps for their particular qualities, without fearing we will end up locked in their ecosystem, and at the mercy of their market and management.