Why is it hard to buy things that work well?
I always enjoy danluu&#x27;s blog; one of the few I have bookmarked and go randomly read from time to time.  Some random comments on out-of-context snippets:<p>&gt; For example, we tried &quot;buy&quot; instead of &quot;build&quot; for a product that syncs data from Postgres to Snowflake. ... Despite being widely recommended and the leading product in the space, the product has a number of major design flaws that mean that it literally cannot work.<p>This is nearly always my experience with buying software, especially software I know I can write myself.  I always run into massive pushback if I propose writing such software.  It comes across as too risky -- what if I get bored, what if it&#x27;s actually too hard and I can&#x27;t do it, etc.  What people never think about are the benefits; full knowledge and control over the process.<p>I have bought so much software and it&#x27;s made me sad every time.  You&#x27;re always promised the world before you sign the contract, and then you sign it and none of the things that were supposed to work work.  Support tickets take days to be resolved; passed around like hot potatoes.  In the time it took to get someone to reply to my email, I could have just written it myself.<p>Many years ago I was looking at Istio.  I wanted some enhanced Kubernetes ingress support, and Istio checked the checkboxes; what I needed now, and room to grow.  But it sure had a lot of detractors on the Internet, and a ton of alarming-sounding open bugs.  I thought about rewriting the parts I needed from scratch, and went to see what parts of their code I could steal.<p>I looked at the core XDS implementation, and it was completely wrong.  It didn&#x27;t implement the protocol correctly at all, conveniently swallowing crucial errors that probably explain most of the filed bugs.<p>So, I decided to write my own version and a few days + 2000 lines of code later, I had the parts I needed and they worked perfectly.  I didn&#x27;t have to scrutinize the docs, I didn&#x27;t have to file 30 bugs.  I just typed in some code, deployed it to production, and ... it&#x27;s never bothered me since.  It was risky, but it worked out better; I can explain the entire system to anyone with a question and I can add whatever features I want.  It was way better than buying.  (I&#x27;m equally happy with the two version of a single signon system I wrote.  It works exactly how I want it to work, and costs $0 month for an Enterprise contract.  Savings!)<p>There are counterexamples, of course.  Once upon a time, I needed to learn CAD.  Instead of writing my own software, I just bought Fusion 360.  I didn&#x27;t know anything about CAD at the time, so there is no way I could have built something better.  (I probably could have implemented the &quot;don&#x27;t crash for no reason&quot; functionality that eludes their developers, but wouldn&#x27;t have even known to implement sketches or geometric constraints.  They just know the domain so much better than me, there is no way in the world I could ever have made something better.)<p>&gt; Since then, many people have changed their opinion to &quot;having ever locked down was stupid, we were always going to end up with endemic covid, all of this economic damage was pointless&quot;.<p>This happens all the time, not just with pandemic restrictions.  The pattern is that people want to cure X, and suggest remedy Y.  People try remedy Y for a while, get bored, and then declare remedy Y a sham.  It&#x27;s universal across fields; &quot;I tried running but didn&#x27;t lose weight&quot;, &quot;We tried writing more tests but it didn&#x27;t increase reliability&quot;, &quot;We tried sheltering in place but the disease didn&#x27;t die&quot;, &quot;I took antibiotics for a few days but the strep throat came back&quot;.  The problem is not that remedy Y is ineffective (though it certainly can be, that&#x27;s where this heuristic comes from), but that it wasn&#x27;t used for long enough.  I think changing habits is one of the hardest things humans can do, so we are quick to declare defeat when success can only be measured over a long period of time.<p>&gt; You could imagine services would, like Amazon, request a photo along with &quot;proof of delivery&quot; or perhaps use GPS to check that the driver was plausibly at least in the same neighborhood as the building at the time of delivery, but they generally don&#x27;t seem to do that?<p>Amazon does this sporadically.  Sometimes I get photos, sometimes I don&#x27;t.