The second part of your question is a big part of the answer...an IRC server needs to be well tended in order to support the features that people want. I run a Technical Operations (DevOps, SysEng, whatever you want to call it) team...the last thing I want them spending their time doing is futzing with IRC software when there is a solution that takes 5 minutes to set up and is ready to go. Businesses should focus on their core competencies.
For me, the biggest problem was when my computer was turned off overnight, I had to go to some external source to read the transcript of the conversations that transpired rather than having it available immediately, in my application. DMs can also be sent when the user is offline, which is great for "hey, get back to me when you're back on."
I was able to solve some of these issues by setting up my own Quassel or ZNC server, but these were hacks and the clients were no where near as refined as Slack or HipChat.
For me, the biggest problem was when my computer was turned off overnight, I had to go to some external source to read the transcript of the conversations that transpired rather than having it available immediately, in my application. DMs can also be sent when the user is offline, which is great for "hey, get back to me when you're back on."
I was able to solve some of these issues by setting up my own Quassel or ZNC server, but these were hacks and the clients were no where near as refined as Slack or HipChat.