
How Big Technical Changes Happen at Slack - felixrieseberg
https://slack.engineering/how-big-technical-changes-happen-at-slack-f1569d25ee7b
======
lbj
Slack is one of those few platforms, where their success makes no sense to me
at all. I hate using it, I hated their bloated desktop apps, I hate the
separate passwords/emails for every location you log into. I hope to one day
understand the magic behind Slack, Salesforce, Sitecore and a few other huge
tech successes, that have subpar tech.

~~~
dimgl
A large majority of people who use Slack disagree with you. I've never really
had a problem with it and I actually enjoy Slack quite a bit.

~~~
jonas21
Just anecdotally, I've noticed a high correlation between:

a) People who hate Slack

b) People who hate open-plan offices

c) People who can't imagine why anyone would ever have a different opinion
than them on such topics

~~~
forgottenpass
How is point "C" anything more than "People on that side of the fence are not
thoughtful, unlike people on this side of the fence"?

~~~
anoncake
That they didn't actually say people on their side are any better.

------
martincmartin
> we are ruthless in killing experiments early that do not prove valuable.

Ed Catmull of Pixar calls new ideas "ugly babies." Ugly because they're
covered in warts -- aspects that are easy to change, but that doubters seize
on because they destroy value. For example, the script for the first Bond
film, Dr. No, had an intelligent monkey for a villain. Babies because they
don't have value in their current form, they need more work and iteration
before they have value.

How does slack identify technologies that don't have value now, but whose
problems are superficial and fixable?

~~~
Mandelmus
> Babies because they don't have value in their current form, they need more
> work and iteration before they have value.

That’s a highly disturbing and misguided framework if you ask me.

~~~
lliamander
It's a metaphor. Maybe Catmull is a sociopath, but more than likely he
believes babies are valuable in and of themselves.

The point is that a baby is a being with _potential_ \- and require outside
input to reach that potential.

------
MatekCopatek
I very much disagree with the fads vs. revolutions division in this article,
or rather - I find it unfair. A certain technology succeeding often has a lot
to do with its quality, but it's impossible to ignore all the complex social
processes happening around it.

Sometimes great solutions simply arrive at a bad time, or don't have proper
funding, or marketing, etc. It definitely makes sense to be on the lookout and
try to improve your chances of identifying the winner early on for business
reasons, but that doesn't mean the winner is always the best.

Once you're as big as Slack, you might even be actively harming others by
doing that - i.e. a better but less popular technology might have won in the
end, had they backed it.

~~~
paxys
I didn't see the author pass any judgement on the quality of the technologies,
or whether it was fair or unfair that they didn't get adopted.

------
cco
I can't fathom why slack is so slow, on MacOS i see a channel that is white,
new messages await. I click it, and honest to God sometimes seconds pass while
slack loads the _text_.

How can this be? How could my slack client with a 30 Mbps connection have
received the signal that there was a new message but also not downloaded the
few bytes of text as well. Maybe it did but a MacBook pro from 2018 takes
seconds to render text? AOL or MSN didn't back in the day.

~~~
tiew9Vii
Electron.

The trade off between packaging a html/css website as a standalone app in it's
own standalone web browser minus toolbar vs apps using native toolkits such as
AOL or MSN.

~~~
dawnerd
That's not entirely it. VS Code is Electron (not to mention doing a lot more)
and somehow its faster than slack and uses about the same memory.

~~~
aganame
You're comparing a software that runs locally to a service that runs mostly
through the network. A fairer comparison to vscode would be emacs.

Suboptimal code might have something to do with it as well, though.

~~~
dawnerd
What about vscode remote? That's how I'm doing it. Everything is over the
network for the most part.

------
muglug
> Server-side, we’ve been migrating from PHP to Hack since 2016

A 3+ year migration of the bulk of your codebase is sort of intense. Though
the Hack team at Facebook has made some great tools to ease migration, their
fairly aggressive sunsetting of PHP features in Hack has presumably made this
job a little harder.

Also notable: Slack is the only equivalent company (outside of Facebook) that
uses Hack, at least that I know of. I wonder if that makes Slack a more likely
acquisition target.

~~~
gregoriol
Bad choices always bite you at some point.

~~~
veeralpatel979
To be fair the bad choices are what allowed them to ship quickly, get to
product-market fit, and get to the point where the bad choices started to hurt
them.

Most startups never see the effects of their bad (or good) choices because
they go out of business.

~~~
kortilla
Hard to say. Their bad choices definitely didn’t stop them from shipping
quickly but it didn’t necessarily help.

------
musicale
> Microkernels; EPIC architectures like IA-64; object request brokers; and
> 1990s’-style neural nets are gone, and will not return.

I am not entirely convinced that they are gone:

\- Xen is essentially a modern microkernel. The most popular "microkernel"
from the 1980s, Mach/BSD, evolved into Xnu/Darwin which powers macOS and iOS.
L4 and other microkernels still exist.

\- VLIW lives on inside GPUs as well as x86-compatible CPUs

\- ORBs turned into microservices

\- Neural Nets turned into Deep Learning

~~~
mxschumacher
I find the negative sentiment regarding microkernels premature as well. There
are some really interesting projects underway:

[https://mirage.io/](https://mirage.io/) [https://www.redox-
os.org/](https://www.redox-os.org/)

Don't microkernels have a real shot at replacing containers? Maybe we can stop
running the huge linux kernel for every microservice?

~~~
koffiezet
> Maybe we can stop running the huge linux kernel for every microservice?

Ehm that's exactly how containers DON'T work. They share the kernel... (and
only the kernel)

------
breatheoften
I don’t hate slack but I’ll share my least favorite parts In the hope someone
will see these good ideas and fix them

1\. The rich text editor (thankfully you can turn it off — I am very sad for
non savvy users who don’t know this)

2\. The UX of snippets - I paste something long into a code fence — fine its
too big and you need to send it very a different mechanism — just di that
please don’t ask me and make me click around - ideally you’d see the big text
blob inside the code snippets and just extract those into something the reader
on the other side can click - this way I can provide exposition and give the
reader the option to get more details if I’ve convinced them there’s something
they should look at. Present options all require me to either lose formatting
of my exposition or manually copy stuff out if the message and into one or
more snippets

3\. Link unfurling - yes I can turn it off for me but the readers not for
readers on the other side ... they are less likely to engage properly with
what I write because of this crap and I can’t fix it for them ... would be
great if I can turn it off for messages I send and receive ...

~~~
paxys
For 3: There is an "x" next to the unfurl that you can click to make it go
away for everyone.

------
Uhhrrr
Is Slack known for their good engineering practices?

~~~
Traster
Will Slack be known for their good engineering practices after a few well
placed articles in well regarded technology focused websites.

~~~
khazhoux
Indeed, these blog posts are recruiting devices.

------
musicale
If Slack uses Slack it's amazing they do any work at all.

------
dbmikus
Aren't people starting to use microkernels for virtualization hypervisors?

And people still sometimes use non-deep neural networks because depth can
increase overfitting.

------
AceJohnny2
This is a great policy. I appreciate that they provide a roadmap for engineers
to propose and explore technologies, as opposed to most places (in my
experience) that have a blanket diktat of the allowed technologies, and any
evolution has to happen in the shadows, guerrila-style.

It's nice to see a company factoring in the evolution of technology in their
product, for a change.

------
mpoteat
The crossed out parts of failed revolutions of tech migration was brutal to
read. It really underlined the article's message.

------
kissgyorgy
> The new type annotations also caused some problems along with the bugs they
> were catching, and a canonical static vs. dynamic typing debate unfolded and
> ran its course. Through debates and accumulating experience, a rough
> consensus emerged that increasing type coverage would do more good than
> harm, and a majority of teams elected to use types.

I went through the exact same thing (word-by-word) at my last team and we came
to the same consensus.

I caught a bug in our custom made static type checker for Python and argued
that all type annotations should be dropped :D but they argued that there are
more benefits, mostly because it is easier to understand code in isolation so
we kept it and invested in even more type-annotation throughout the whole code
base.

------
TheSoftwareGuy
> Microkernels; EPIC architectures like IA-64; object request brokers; and
> 1990s’-style neural nets are gone

As someone who uses #1 and #3 every day, I wonder what it is like coding in
the 21st century :/

~~~
lwb
What kind of work do you do? I’m not aware of any major operating systems that
use a micro kernel architecture off hand.

~~~
opencl
There aren't any major desktop or server OSes that use microkernels but
they're common in the embedded space. QNX, Minix, FreeRTOS, etc.

~~~
AceJohnny2
gosh I miss QNX...

(been working with a custom in-house RTOS for the past few years...)

(but I _do not_ miss QNX's build system. Recursive makefiles!?)

------
noname120
> Most new things in technology turn out to be fads: [...] Microkernels [...]
> are gone, and will not return

Uh... What about Zircon[1]? It powers Google's new mobile operating system:
Fuchsia[2].

[1] [https://fuchsia.dev/fuchsia-
src/concepts/kernel](https://fuchsia.dev/fuchsia-src/concepts/kernel)

[2] [https://fuchsia.dev/fuchsia-src/concepts](https://fuchsia.dev/fuchsia-
src/concepts)

------
SergeAx
Ironacally, Slack IS using at least couple of fads on a product-defining
level: Hack is dead by PHP 7 and PHP 8 will dance on it's grave this year.
Electron is awful when used atop of big JS framework-based apps (it is more or
less okay with nicely crafted Vanilla JS).

And at the same time it is a great commercial success. This last one I cannot
understand.

~~~
safety-third
Commercial success has little to do with your tech stack choices. I don't
understand why people are so obsessed with jumping ship for the latest shitty
framework just as the old one is getting really good and stable.

------
je42
i really wonder why the C++ lib was discontinued. The explanation was a bit
short unfortunately.

~~~
igreulich
Honestly, it read like they stopped because it was harder then they wanted to
pay for. Or at least the next step would have been.

------
jnordwick
How do commercials keep getting posted here?

------
sub7
FTFY: How to make a chat room app sound complex and difficult

