In this episode I discuss how going deeper down the technology stack can give a company an important advantage over its competitors.
Each time you try to convince yourself that there will be a better time other than "now", you are about to start procrastinating.
Instead of asking "when would be a better time to do this?" ask "what can I do now?"
I use headphones with my iPhone a lot. Mainly I listen to podcasts and I listen to a lot of them. And when I say a lot I mean it. To the extent that regular wired headphones would rarely last me for more than 6 months. Of course, that all is predicated on the pattern and, shall I say, environment of my use of the headphones. Most of the time I have my iPhone in the left pocket of my jeans. The wire then goes from the pocket underneath my shirt to earpieces that are either in my ears or hanging on the wires.
With all that I would listen to podcasts while walking, sitting, standing, skating, riding a bike or a train and so on. Always with my phone in my pocket and headphones connected to it. I prefer the headphones to be light and to allow me to be at least partially aware of my surroundings. Therefore all of the headphones I used were earbuds and in all those years I’ve gone through fair share of them. In recent times they were mostly Apple’s EarPods and Panasonic RP-TCM125 ErgoFits (recommended by The Wirecutter). Knowing that headphones will only serve me as long, I did not even bother with anything fancy. If I recall correctly, the longest I had headphones in service was my first pair of TCM125, which lasted for about 10 months. The anti-record goes to noname earbuds, which gave up after just 3 weeks.
All the headphone failures were wires broken here or there because of the way I used then. You can imagine my excitement, when I finally got my hands on a pair of Apple AirPods. I’ve now spent more than two weeks with AirPods in my usual work-life balancing mode. So I’m ready to share my impressions.
As always, there good things and there bad things. (Remember, I’m talking about my experiences in how I use headphones.)
Things I like
No wires is great! (Who would have thought!) I don’t have to wire/re-wire myself each time I change clothes and can continue listening while doing that.
When at home I do not have to have the phone on me to listen to podcasts. With the caveat that I have to strategically place the iPhone to make sure Bluetooth "covers" my entire apartment.
This one may seem weird, but with AirPods it became easier for me to spontaneously watch a YouTube video. With headphones wire running under my shirt I had to either tolerate an awkward pose trying to place the iPhone such that I can see the video and still have headphones connected, or unwire myself (and then re-wire after watching the video), which is also awkward.
Switching the AirPods between the iPhone, iPad and MacBook is no more difficult that connecting/dis-connecting via the 3.5mm jack.
Things I don’t like
Surprisingly, the lack of wires also makes certain things less convenient for me.
It is really difficult to put AirPods away, when I suddenly need to talk to other people. Before I would just quickly pull the earpieces from the ears and let them hang on their wires. AirPods need either a safe pocket, which I don’t think I have, or both hands to put them into the case.
Putting AirPods on is also a problem. With headphones hanging under my chin they were always fractions of the second away from being used when, for example, a call comes in. With AirPods I either have to have them in all the time, which I don’t like, or forego using them in certain situations. Forget about taking a call, when you are driving and AirPods are in the case in your pocket.
I realize that both of these issues come from my feeling uncomfortable having earpieces in when I’m not using them and when I talk with other people. But this is the way I am.
Curiously enough, I still feel anxiety when I lean over something that can cause a loss or irreversible damage to AirPods if they fall out – think of a balcony on a high floor or a sink in the bathroom.
The only thing I use Siri for is making calls. With wired headphones I would long-press the mic button, wait for Siri’s “I’m ready” tone, say “Call Sasha” and wait while the call to my wife is connected.
Currently double-tap on my AirPods is set to play/pause for both of them1. This is because from the “wired days” I’m used to pausing podcasts with mic button before I remove the earpieces. I understand that with ear detection (what a name for a feature!) I do not have to pause the playback myself, but it will take some getting used to. Anyway, in my current configuration there is no good way to activate Siri other than yell “Hey Siri!” and hope that it will hear me on the phone in my pocket2. I think it has worked once. But, you know, as I’m writing this I’m thinking that I should go and make double-tap activate Siri and leave my wired past behind.
Overall, I’m quite happy with my new headphones situation. I only hope in my new AirPods there is no analogue of wire that will break in 6 months 🙈
1 I sometimes use only one earpiece and having different setting for L and R would be impractical.
A particular example of limitations of an unlimited service: Backblaze is a great service, but the way it markets itself as “unlimited online backup” is a fair bit of exaggeration.
From Backblaze site:
Unlimited Online Backup
Backblaze will automatically back up all your files including documents, photos, music and movies. Unlimited files. Unlimited file size. Unlimited speed.
I use Backblaze myself and generally recommend it to everyone. But I also recommend understanding all the limitations of the “unlimited online backup”.
Implicit and explicit limits:
- Backblaze backs up computer storage and connected external hard drives. Although you can invoke some trickery with external drives, for practical purposes the backup is limited by how much storage you can connect to your computer. In a sense this is an ideal situation for a provider of unlimited service: the natural limit exists, but it is not imposed by the vendor itself.
- Data from external drives is only kept for 30 days since Backblaze saw the drive for the last time.
- Deleted files and previous versions are kept for only 30 days. In the event of data or drive corruption you only have 30 days to recover your files , if you somehow manage to detect the problem.
With all these limitations I can hardly call it both unlimited and backup. But as I discussed in the previous episode, we simply cannot engineer things, which are truly unlimited.
Reddit resurfaced a 10-year old story about a project gone so terribly wrong that it sounds truly horrific. Just one anecdote from the article:
One developer was given the task of checking why right-clicking on the interface completely froze the application. After several days of careful examination and incredible amounts of patience, he found out that right-clicking worked fine, only that it took about 45 minutes for the context menu to popup. Menus were all dynamically generated from huge (static!) content every time you right-clicked the main window.
It's almost impossible to believe that such things exist.
There also a follow-up post with answers to common questions.
We all love getting infinite amount of something for a small fee. That makes all the “unlimited” plans so popular. On practice, however, those plans fairly quickly turn out not to be unlimited, infinite or lifetime and there are reasons why.
Using “unlimited” in marketing materials has its benefits:
- it gives perception that buyer gets a lot (infinite amount that is) while paying way less than that
- it eliminates questions like “will it be enough for …?” making the purchasing decision easier
But nothing is truly unlimited or infinite:
- from the business perspective finite payment for infinite access to a certain resource or service cannot cover cost of providing that service in the long run
- from the engineering standpoint creating an illusion of infinity using finite building blocks that are in our disposal an enormous challenge. An example of that is Microsoft dropping unlimited OneDrive storage after people use it for unlimited storage
When you are offered something unlimited for a limited fee, ask yourself “where is the limit?”.
When the way company makes money is misaligned with its values, it can sooner or later lead to decisions that may turn into a disaster of some sort. Similar to what happened to Mozilla with the Looking Glass add-on for Firefox.
Impressive numbers in this tweet have to be accompanied by other data to actually mean something:
- What were the returns of those who responded to other similar emails? And how many of those emails were sent?
- How well did those who did not respond to this email with their investments elsewhere?
Without that it's just an anekdote about your uncle winning in a lottery.
Masking a problem without really solving it can move the problem to a more dangerous place or time. Do you remember the story about “A a a a a Very Good Song”?
- You are finally free from the first embarrassing song on your phone
- A silent, 10-minute song is climbing the iTunes charts
Despite its popularity back in the day the song did not really solve the problem of Apple CarPlay annoyingly starting to play the very first song in the music collection, when the phone was connected to the car. It postponed that annoyance problem until 10 minutes later, when one could be driving through a busy intersection.
All modern systems are built out of components. Those components can come in different forms: 3rd-party proprietary, open source and developed in-house. Open source seems to be the most popular option nowadays and one may think that using open-source components is an all-around win. It is a win, but not all-around.
- minimal initial effort to start getting benefits from the component: some learning curve, but no heavy lifting with development
- all encompassing solution with features you do not need but still have to deal with
- fairly good understanding of costs related to getting maintenance for the component over time
- minimal control over direction of development
- possible dead ends because of lack of transparency
- tightly focused solution that delivers exactly what you need
- significant upfront costs and long and, maybe, costly further maintenance
- with all that comes full control over the direction of development
- draws resources and attention from the core competency
- ready-made solution that requires minimal to start using
- free basic maintenance by the comunity
- solution with wide focus and sometimes “half way there” functionality
- illusion of control induced by the fact that source can be forked and taken in-house