How Slack built a well loved product going against Peter Thiel and app fashion
I enjoy watching companies do fantastically well against the grain. It is the opposite of schadenfreude, and although the Germans may not have a word for it the budhists have the concept: mudita.
Here are two lessons of Slack’s early success that buck the trend:
Slack and incremental improvement
Peter Thiel talked about how your business needs to build something that is 10x better that what is out there. Larry Page and others have also talked about the need to leap-frog. Revolution over evolution.
Imagine for a second that Stewart Butterfield had decided to start off with Slack (versus doing another genius pivot) and he had come out and said:
“We are going to do a better group chat! It will be worth billions!”
You would have laughed. It is such a crowded market. Hell 37Signals decided to close up shop on Campfire and focus on Basecamp. They thought that it was basically done and weren’t adding features!
“According to Fried, Campfire and Highrise will likely sell for single digit and tens of millions respectively”
Slack was a better Campfire. It’s search was so much better (with ElasticSearch and friends it is so much easier to make search awesome in your products!). They added features (e.g. private groups really matter to many companies. I wonder if 37Signals missed this as they are a small company that didn’t need it themselves?). They polished (how they grok URL pasting).
On paper if a large IT organization were to compare the features of Slack to HipChat and Campfire and [insert all the others] you would end up with a table of checkmarks and crosses, yet this doesn’t tell the tale. Again, people *love* Slack. I am sure there are people who enjoy the other tools, but I don’t hear the same passion. If you took it away, how would the masses react!
Of course, there are many many companies who came along and just did something better. Facebook to Friendster/MySpace. WhatsApp to all of the other chat apps. Google to AltaVista. iPod compared to the Argos.
Oh ok, some of those are “10x better”, however you define that ☺
Slack isn’t (all) native
UPDATE: I got this wrong! Ali Rayl of Slack corrected me, letting me know that although the Mac app is MacGap, the iOS and Android apps are native. Fascinating… they feel all so similar. I would love to understand if anything is shared. It feels like there is a lot of Web going on here. I am shocked!
To build a product that doesn’t feel like it was a mediocre UX means native right? Especially if it has to work real-time and be highly interactive!
Slack wears its Webbiness like the iPhone 5c embraced plastique. The Mac app is MacGap and the forthcoming Windows app is built on top of Atom Shell. In the Mac app, I used to enjoy being able to get to an Inspect Element popup, and you can select text all over the UI!
What about under the Web hood?
You have to deeply care about the craft and be on the bleeding edge right?
There is no way it would be powered by some brute force DOM manipulation with jQuery right? No ugly brittle code like this?
$(“#col_channels_bg”).parent().prepend(‘ <div id=”col_channels_collapse_view” class=”channels_list_holder”> <div class=”section_holder starred_section”><h2>starred</h2><ul id=”starred-list-collapsed”></ul></div> <div class=”section_holder”><h2>channels</h2><ul id=”channel-list-collapsed”></ul><div class=”clear-both”></div></div> <div class=”section_holder” id=”direct_messages_collapsed”><h2>dms</h2><ul id=”im-list-collapsed”></ul><div class=”clear-both”></div><a id=”im_list_collapsed_more” class=”list_more hidden”>X</a></div> <div class=”section_holder”><h2>groups</h2><ul id=”group-list-collapsed”></ul></div> </div>‘);
It is very humbling to be reminded that although I care deeply about the craft of software development, you shouldn’t get too anal about every aspect and instead should focus on the quality of the product. I am sure the Slack team cares deeply about many parts of the software process, and it is working for them.
Don’t get me wrong, the UX isn’t perfect (whose is?), and I think that a totally native desktop experience would be superior but there are trade offs. Who are the players on your team? How quickly can you develop features across the platforms?
Maybe it is good to explore being more of a Slacker? Stay humble!
p.s. I do love the other subtle touches, such as the fun release notes!