←back to thread

Software Friction

(www.hillelwayne.com)
141 points saikatsg | 1 comments | | HN request time: 0.204s | source
Show context
zackmorris ◴[] No.40720119[source]
Don't forget deprecation. Today Apple and AWS (among a great many others) are notorious for unilaterally turning off services that people have built businesses around.

The responsible thing to do is to create a new service and then write wrappers that emulate the old service's interface and business logic, before finally turning off the old service at some point in the distant future.

But it's more profitable to make a shiny new service and end support for the old one. Capture the profits and pass the costs on as externalities to developers.

This may seem like a small inconvenience, but I have watched basically all of the software that I have ever written over a career become unrunnable without significant modification. The friction of keeping up with deprecation has expanded to take up almost all of my time now. In other words, the rate of deprecation determines the minimum team size. Where once 1-3 people could run startups, now it's perhaps 5-10 or more. It's taken the fun out of it. And if it's not fun anymore, seriously, what is the point.

replies(2): >>40720511 #>>40732206 #
DylanSp ◴[] No.40732206[source]
I'm curious what AWS services you have in mind. I can definitely think of services that aren't actively updated and that don't integrate smoothly with newer services (thinking of Elastic Beanstalk here), but outright deprecation/removal seems pretty uncommon.
replies(1): >>40753668 #
1. zackmorris ◴[] No.40753668[source]
I was using Elastic Container Service (ECS) like I mentioned in my other comment. I first used it 3 years ago when it was still evolving, and in 2023 they turned off their launch configuration portion in favor of launch templates. I can't remember the exact details, but I think this covers it:

https://sinovi.uk/articles/amazon-ec2-launch-configurations-...

My complaint is that all service providers should provide a migration wizard to convert to and from configurations that do basically the same thing.

Frameworks like Laravel emphasize the importance of migrations for database schemas:

https://laravel.com/docs/migrations

I use that concept constantly in my work for backwards compatibility, but basically never see it from service providers, which I find sad and somewhat irresponsible or at least discourteous.