{"p":"","h":{"iv":"ROXSYW+cfvEbFHu5","at":"ocxplSQjdRC3tXEtB/9/wg=="}}

This is an image of the decision tree that Slack used 5 years ago to determine whether to notify someone.

Every time you add a customization option like "don't notify me during these times in my time zone" or "mute notifications in this thread" etc, you add another branch or set of branches to a decision tree.

This is NOT a bad thing, but it is a reason that I am resistant to customization. Each knob you add expands software complexity and room for bugs.

Source: slack.engineering/reducing-sla

14
Share
Share on Mastodon
Share on Twitter
Share on Facebook
Share on Linkedin
Steve has ☕️ for brains

@darius … wow. That’s super interesting and a good reminder that feature creep can have exponential effects.

1
2y
Darius Kazemi

I am happy to expand this complexity when it comes to user safety. Less willing (but always open!) for the sake of convenience.

1
2y
Erin

@darius I love how there's an infinite loop in there among DMs

2
2y
Todd Jordan

@darius This decision tree was obviously user drive. Ha.

This is a victim of being to easy going and giving into too many voices in design.

It also is 'hidden' functionality to the users at the end of the day. It would be a mystery to many how come they missed a message unexpectedly or got one they thought they shouldn't.

1
2y
0
2y
Darius Kazemi

lol this is such a linkedin style of post, I'm sorry everyone

8
2y
🌮 Dave Millar 🌮
This content was marked as sensitive. Click to reveal

@darius and then somewhere down the line it became this.

0
2y
christa

@darius also like... managing that complexity through merges from source. I'm impressed you change as much as you do

0
2y
Eli the Bearded

@darius Flickr had (maybe still has) a similarly complicated set of rules for "Can you see this image page?" There's contact restrictions like public, friends only, family only, friends and family. There's G-rated and sensitive. There's shared in a group and thus visible to group members.

0
2y
v

@darius agreed with everything you say here, but also... this seems like a totally reasonable amount of complexity for a core feature, like "showing message notifications" is for Slack. the classic gamedev thing of having to implement a whole heap of complexity in order to approximate "common sense".

1
2y
Joachim ᕙ👨🏻ᕗ

@darius I learned that watchmakers call “complications” what we in the software industry would call “features”. I think it’s a sane way to think about it.

0
2y
Vy Nguyen

@darius I think this puts a dot on what caused Slack to go from “hey this is nice” to “what in the HR software hell is this”

0
2y
Oliver

@darius @hamefang how are decision trees usually implemented? Do you compare two lists of user settings and the required settings through a Boolean operation, or is it just a loooong if/else? Disclaimer: not a dev.

1
2y
Beekir

@darius To be honest I wish every developer spent at least that much time and effort trying to figure out how to bother me the least amount possible.

0
2y
Replies