As for alternatives, I don't really know if many do exist. Slack offers their free version, which allows teams to use it pretty much without any strings to see if they like it. It provides great functionality in a simple UI (you may disagree, that's totally fine), and solves a problem - Office Communication.
It has been a productivity increase for the teams I've been on as it is much, much better than email chains, easier to add code snippets, images, and the fairly rich ecosystem of plugins/bots is icing on the cake for me.
The other day it took me an hour to wire up a couple endpoints in Node, add them as slack slash commands and boom, I was able to add three commands for QA department that resolved some heartburn for them.
I think Slack did a good job with a base product, and they simply solved a pain point in a better way.