
The “Run Less Software” philosophy - yrsamrith
https://blog.intercom.com/run-less-software/
======
mbid
"Here, read my ramblings about the "Run Less Software" philosophy on my blog
that loads 10MB of data for what could be a plain html + basic css page, among
which you'll find 800,000 characters of javascript code to execute. And that's
not even counting 3rd parties, isn't that great?"

/s

This is obviously marketing for the author's company. What do the four armies
have to do with the point the autor's trying to make? "Hey, you should run as
little software as possible. But first let's analyze the professional IT
landscape with an analogy that does not make anything clearer but allows us to
embed fancy pictures and videos."

~~~
shadowtree
Bit of a shame as Intercom has been doing Content Marketing right for a long
time. Older stuff by Des Traynor was pretty good though (and entertaining, his
talks about Product Strategy are hilarious). Might have switched to a staff
writer, hence the genericism (i hope they don't let engineering write articles
on their own).

I guess that is the peril of content marketing in a narrow field - eventually
you run out of fresh takes but still need to attract eyeballs. Hence the
Buzzfeed-style headlines.

~~~
jkaljundi
Initially Intercom was all about being great in a niche (on-site chat
messaging), doing one thing well, focusing. Then growth came, demands for
expansion, and so their mantra switched to all-in-one suites. So did their
content marketing.

------
dfabulich
I don't see why AWS is alone in "Tier 1" on a list that claims to prioritize
standard technology and outsourcing undifferentiated heavy lifting.

The post gives an example of switching from self-hosted MongoDB onto AWS
DynamoDB. But AWS DynamoDB is proprietary technology, not standard. Amazon
doesn't even claim that DynamoDB is standard; they argue that DynamoDB is the
best in the world, worth the premium in price. It's not at all
"undifferentiated heavy lifting."

It sounds like they made the right decision with DynamoDB, but they did it by
violating the pillars of their own philosophy, adopting a differentiated
proprietary solution for their scalability problems.

~~~
scarface74
DynamoDB is not even a good replacement for Mongo. DynamoDB only lets you
index two (?) fields and everything else is a full table scan.

At least go with a hosted Mongo solution.

~~~
ciaranlee
It’s certainly nowhere near as full featured. But in our case it is entirely
appropriate. Over time we simplified our use of MongoDB to the stage where
it’s effectively a k/v store. Swapping that simple pattern over to DynamoDB
was easy, saves us a ton of money, and means we get to shed a ton of
operational responsibility.

Also, you are incorrect about only being able to index two fields in DynamoDB.
Though we luckily don’t need anything other than the primary key.

------
hueving
Keep in mind this is an article extolling the virtues of outsourcing critical
components of your business by... a company that you outsource critical
customer interaction components to.

~~~
TeMPOraL
Oh my God, not just any company, the company responsible for those annoying
chat popups on websites?

~~~
curun1r
To be fair, if you want to annoy visitors to your site and make them hate you,
you should probably choose to outsource that functionality to Intercom.
Annoying your visitors may be dumb, but rolling your own chat widget would be
both dumb and time consuming.

~~~
dtech
I am a customer of two SaaS companies that use Intercom, and with them it is
nice to use and un-obtrusive. This is the first time I've noticed the pop-up,
so it's really on this company for configuring it to pop-up.

~~~
pc86
I can honestly say I've never noticed an unobtrusive Intercom implementation.

------
vbsteven
The article is mostly about outsourcing "heavy lifting" like database hosting
to cloud providers and non-critical software to SaaS providers. I agree with
the article when it comes to database hosting/infrastructure but I would like
to see more discussion about outsourcing to SaaS.

Outsourcing to SaaS means trusting your (and your customers) data to lots of
different companies. And in the case of SaaS those companies could be small
software companies or even one-man operations. This is not very compatible
with upcoming data privacy regulations like GDPR. And I suspect that more and
more companies are going to be looking at a model where they
purchase/license/outsource non-core software but host it themselves in their
own datacenter or cloud accounts.

The solution I am working towards in my current project is to build the
software from day 1 with dual-mode operations in mind. Easy to host as SaaS
but with the option of running Standalone on customer premises with the same
codebase. Just different configuration/modules.

~~~
notyourday
I find it hysterically funny that companies think that operating their own
mysql, postgresql, redis or mongodb is "a difficult task". It is like a home
owner deciding that knowing how to operate their own toilet is a difficult
task that must be outsourced.

Oh and before someone says "we outsource fixing our toilets to plumbers" \- in
this case we are not event talking about replacing a flap, we are talking
about being able to use a plunger.

~~~
vbsteven
Setting up a single postgresql is not that difficult indeed. But in a
production scenario with decent uptime guarantees you are going to at least
need master-slave replication, make sure they fail over when the master goes
down, have backups so you can do point-in-time recovery, rotate and ship the
logs somewhere, apply security patches, and more.

Sure, I can do all that by myself but that takes time, time that is better
spent serving my clients instead of setting up yet another replicated db. It
takes me a few minutes to setup an Amazon RDS instance with all that enabled
out of the box.

~~~
always_good
Also, "just run your own X" starts to fall flat once you grow beyond having a
single project in your life.

~~~
notyourday
s/single project/single successful money making project/g

Oh to have those problems

------
kingkongjaffa
Everything about this post and the company behind it, is a contradiction of
any proposed "minimalism in software" philosophy.

Personally I have found growth and simplification by replacing the complex
with the simple, not necessarily less.

But certainly less software that does many things.

For example, I might replace one monolith app with many command line tools
that each do a single job well.

Embracing markdown vs myriad of closed note taking tools has been a boon.

------
jmspring
When I read "Outsource undifferentiated heavy lifting", I was skeptical, but
outsourcing infrastructure and components to established companies makes sense
(especially the list mentioned). Startups should not outsource to random body
shops unless they either have experience doing such or have specific
targeted/quantifiable/definable needs that a specialist can help with.
Outsourcing, in general, sucks more time and money than the benefit it brings
- specifically speaking to job/body shops.

~~~
akditer
And you think thousands of companies didn't do their math before outsourcing.

~~~
jmspring
I've seen management push for outsourcing simply on the basis of having worked
with a particular company/group before when there was no need/sense. It's
about knowing the trade offs and making the right decision for the company as
a whole not due to personal preference.

And many companies used to make outsourcing decisions based off of simple head
count cost and didn't factor in the extra time/hours/delays due to
integration/poor work/other factors.

------
andreareina
Anybody know why the domain is on one of uBlock Origin's blocklists[1]? The
styling is annoying as all hell but it doesn't seem to be an ad server.

[1]:
[https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hos...](https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext&_=211264)

~~~
TAForObvReasons
Ghostery has it marked as a "Customer Interaction" tracker, which apparently

> Includes chat, email messaging, customer support, and other interaction
> tools.

[https://ghostery.zendesk.com/hc/en-
us/articles/115000740394-...](https://ghostery.zendesk.com/hc/en-
us/articles/115000740394-What-are-the-new-tracker-categories-)

The summary page has some privacy details:

> Data Collected:

> Anonymous (Browser Information, Cookie Data , Date/Time, Page Views )

> Pseudonymous (IP Address (EU PII))

[https://apps.ghostery.com/en/apps/intercom](https://apps.ghostery.com/en/apps/intercom)

~~~
andreareina
Yeah apparently they provide chat popups, didn't realize since reader view
killed it. Thanks.

------
pvsukale3
And that is why I use rails and JQuery for my side projects. It is boring but
I can pull it off on my own. If I run into some problems there are thousand
already who have had same problem.

~~~
mooreds
Yes! Boring stable tech is sometimes the right answer. I've heard you should
either be pushing business boundaries or tech boundaries every time you solve
a problem. But pushing both is too risky.

------
mooreds
Great set of principles with some good examples. It's worth noting that
leveraging third party providers is not fairy dust--choosing that path brings
with it constraints and you may have to spend time working around those
constraints.

I wish he'd talked more about the four armies and how they played into the
choices Intercom has made.

------
andyfleming
"We quickly discounted this as it didn’t fit with our three pillars of Run
Less Software and decided to consolidate on MySQL, specifically on AWS MySQL.
As we were able to benefit from the pace of AWS innovation (and adopt AWS
Aurora when it came along) we got 5x throughput at a 30% cost reduction."

It's worth noting that Aurora is compatible with PostgreSQL (as of Oct 2017)
[1].

1\. [https://aws.amazon.com/blogs/aws/now-available-amazon-
aurora...](https://aws.amazon.com/blogs/aws/now-available-amazon-aurora-with-
postgresql-compatibility/)

~~~
venuur
The indented quote renders as a code block and isn’t readable on mobile. I
like your reference, so it might be nice to change to formatting for easier
reading on mobile.

~~~
andyfleming
Just updated it. I thought there might be a way to apply blockquote styling,
but the traditional markdown syntax didn't work.

~~~
hollerith
Thanks.

Dang: please consider removing the code-block functionality from HN.

------
antirez
Arguing simplification and then using DynamoDB, that is, opaque software
handled by somebody else, does not make any sense or useful argument IMHO.
It's like saying, we don't want to handle all this stuff, let somebody else
handle it so that we can just be users. This is fine if is good for your
company, but kinda negates the initial premise: you have a simplification
problem if you _own_ your infra, otherwise what's the point? Somebody else is
handling all that for a premium price, I bet you have less software to handle.

~~~
ciaranlee
I’m humbled that you read our post! We love your work, and heavily use Redis
at Intercom. Thank you :)

The DynamoDB move is certainly a tradeoff, but for us it really makes sense.
Moving to it will allow us to:

\- scale out this storage layer trivially easily

\- shed a ton of operational responsibility

\- save lots of money

There are certainly downsides to moving to a proprietary database run by a
single proivider, but we’re happy to make that tradeoff.

Also, we’re absolutely not recommending that people move from MongoDB to
DynamoDB as some general rule. It just made sense for us at this time.

------
avip
I feel a strange dissonance between the fantastic write-up, with which I 100%
agree, and the ever so annoying intercom product... oh that horrible popup.
What a terribly effective product though.

------
zerogvt
Nice piece with lots of takeaways but I think that they tend to lock
themselves in AWS. This certainly adheres to the Run Less SW paradigm but they
might suffer a vendor lock later on.

~~~
rich_archbold
We've deliberately chosen to accept vendor lock-in with AWS. I probably should
have made that explicit in the blog post.

We believe that the value we get from going all-in on AWS is greater that the
_potential_ negotiating power you _may_ get by staying higher level and having
the illusion of low cost switching to GCP or Azure.

This also accepts the risk that if AWS goes down, we go down.

I think both of those are acceptable risks/tradeoffs at this point.

------
z3t4
In early stage you should outsource as much as possible but as you grow and
get competition - in order to lower margins you have to incorporate full stack
expertise and control the supply chains. However contraditional to the
software solo-entrepreneur who's time is free, which allows almost zero
operational cost vs crazy burn rates of some startups.

------
_raul
Related reading: "Ephemeralization", by Adam Wiggins (Heroku co-founder)
[https://adam.herokuapp.com/past/2011/4/7/ephemeralization/](https://adam.herokuapp.com/past/2011/4/7/ephemeralization/)

------
dschuetz
Opening that link my ad blocker is going crazy. I guess the website surely
runs _less_ software, huh?

------
jaequery
This philosophy fits well with a new open source framework I've been working
on that is focused purely on simplicity.

[https://github.com/jaequery/jasis](https://github.com/jaequery/jasis)

The goal is to have a framework that's so easy to use that even non-
programmers can understand it. I'd really love to hear your thoughts,
especially anyone that is new to programming. @jaequery

------
asdf1234tx
That article was a long winded way to say "Serve an underserved market
efficiently, and execute sooner, better than competitors."

You don't say!!!!

~~~
ciaranlee
That is a very concise summary! I still think the examples and detail are
useful to explain how we do that at Intercom, rather than simply issuing a
statement :)

------
halfnibble
This statement about software talent appears to be in direct contradiction
with software development history:

"But as technology advances and provides us with more advanced software
components it devalues and commoditizes what we’re working on and at worst
makes us redundant."

------
jtth
Kinda wish my browser would follow your advice; the blog post is over 10 megs.

------
jve
uBlock has blocked this page from loading due to this filter: ||intercom.com^
Peter Lowe’s Ad and tracking server list

~~~
eeereerews
You've missed out on a charming popup bubble offering you a... customer
retention start kit, was it?

------
Sukotto
My readability bookmarklet doesn't remove the vertigo-inducing animated
background. So I'm going to have to pass on reading this one.

Will someone please post a summary?

~~~
uniformlyrandom
My adblocker blocks the whole domain, so I am also waiting for someone to post
a summary.

~~~
andyfleming
It's because Intercom is sometimes classified as marketing software.
Unfortunately their blog is hosted on their domain which is blacklisted by
most adblockers.

------
chynkm
Good read and info

------
pg_bot
Does/Did Intercom use MySQL, PostreSQL and MongoDB at the same time?!

~~~
mariokostelac
No :). Started with Postgres long time ago, switched to MySQL. Added MongoDB
into the mix. Removing MongoDB from the mix.

~~~
Gorgor
What was the reason for switching from Postgres to MySQL?

~~~
briandear
I am interested as well — this is the first time I have ever heard anyone,
without being under duress, switching to MySQL from PG. I would hope the
reason is technical, but given it’s MySQL we’re talking about, it was likely a
political decision.

~~~
socksy
This was a quite popular write-up of such a switch by a major company:
[https://eng.uber.com/mysql-migration/](https://eng.uber.com/mysql-migration/)

With the HN comments being here:
[https://news.ycombinator.com/item?id=12166585](https://news.ycombinator.com/item?id=12166585)

