Of Slack and Snapcraft: collaboration and containerisation are changing the way software works

Developers from Slack and Canonical discuss the coder's burden

In a software-defined world the developer is king. Not that it always feels that way. Traditionally monarchs are untroubled by petty notions such as productivity and deadlines, but these are the hard facts of developers' lives. Faster, better, safer, quicker - the demands never cease to grow.

An important release valve to alleviate some of the pressure on developers has been the growth of communities, particularly in the open source world. No matter how obscure your field or how cutting edge your code, there will be someone out there doing something similar and it's easier than ever to reach them. They may be working for a competitor, but the chances are they'll still help out.

One of the most popular collaboration tools is Slack. If there's something a developer needs help with one of the quickest ways is to jump onto a project's Slack channel and start asking questions.

"That problem that's keeping you awake at night? There are probably hundreds of people with the same issue, so we just have to reach out and find them and not isolate ourselves," as Spotify developer Dave Zolotusky put it recently.

A little ironically Slack itself is not open source (neither incidentally is GitHub, another favourite collaborative haunt). Computing asked Felix Rieseberg, a software engineer at Slack, why not. He gave an indirect response. While the core code may be proprietary, many elements are open and the firm cooperates on upstream code, he said.

"Slack closely collaborates with GitHub and supports the project with multiple engineers working full-time on improving and advancing Electron. In addition, our engineers have open-sourced dozens of packages used to build Slack - like electron-windows-store, electron-windows-notifications, node-mac-notifier, or electron-compile."

Reiseberg continued: "Where it makes sense, we often open-source individual pieces used to build the Slack desktop app, but there are no plans to open-source Slack itself."

Slack snap

In January Slack was made available to Linux users as a ‘snap'. Snaps are containerised software packages that install with all the dependencies included, run on all flavours of Linux and update automatically. The Snappy package manager was first released by Canonical at the end of 2014. Rieseberg said that roughly 15 per cent of the Ubuntu user base has switched to the snap version, a figure that he expects to grow "given how much less hassle installing and updating snaps are when compared to traditional Debian packages".

It's still early days, however, and the company is observing progress with interest.

"We're pleased with the community's immediate response to our release in the Snapcraft store, but I believe that there's still a lot of education and outreach left to be done," Reiseberg said.

"We'll be closely watching whether or not snaps are adopted by the masses, and if so, whether they can actually dethrone Debian packages," he added.

"Secondly, there's the stability of the platform itself. Platforms don't get too many opportunities to correct their fundamental course and users will generally expect that a snap package will run on any system that claims to support snap packages. In other words, things will get messy quickly if snap packages created today cease functioning properly next year."

Evan Dandrea, engineering manager at Canonical, is one of those who has been developing this model with Snapcraft, a command line tool for publishing software as snaps. Slack has been one of the more successful snap-based applications he said.

"Overall, we see Slack as our sixth most popular and installed snap, of those that require manual installation, which is really positive considering it is a workplace-based tool. That speaks to just how successful Slack has become generally."

While collaboration with likeminded peers can ease the burden on developers, technical innovations such as snaps also have a part to play he said.

"From a developer's perspective, primarily we see how they can save resource which translates into both time and money savings."

Dandrea continued: "Snaps allow developers to further push the boundaries and develop horizontal skills in confidence, providing unique features such as instant rollbacks in case an update goes wrong."

Future iterations of will automate some of the manual processes, Dandrea claimed.

"We are constantly evolving the snaps ecosystem and there are always enhancements that can be done. One of these again relates back to simplifying a developer's life as we will start to predict the actions that are needed and complete multiple steps automatically.

"Take a security vulnerability as an example. We will identify it relevant to the developer, rebuild their snap using Snapcraft to fix that vulnerability and then send them a notification to check and publish the updated snap. Currently we do most of these steps but we will be introducing the automatic re-build functionality soon."

Collabortition

Snaps or no snaps, Slack will be feeling the heat from competitors such as Riot, Workplace by Facebook, HipChat and others. Never to be underestimated, Microsoft released Teams to compete with Slack head on - and of course it now owns GitHub too.

Reiseberg claims the company is not worried, however.

"When it comes to others in this space, it gives us further clarity of purpose," he said.

"We're in the early stages of a 100-year transformation of how people work and communicate. Improving workplace communication and collaboration is a massive business opportunity that will inevitably include many players, therefore, it's validating to have others as competitors as it will bring a better future forward faster."