Why a project management app for Slack

Paolo Perazzo Blog

My team is partially based in San Francisco and partially remote. We build a Slack and mobile app called Kyber. To collaborate, we need two main kind of tools: a messaging app to communicate and a set of productivity apps to manage projects, track tasks, and schedule meetings.

For messaging, we use Slack. For productivity, we replaced many apps with our own Kyber and in a sense Slack too. In fact, through Kyber, we manage our personal to-dos, reminders, calendar events directly within Slack.

4. To-dos, Reminders and Calendar - Create and complete

We also use Kyber to assign tasks to each other (instead of sending a plain “Can you do this?” message, that can easily get lost):

2. Task delegation - Assign and follow up

and schedule meetings that get added to Kyber Calendar on Slack or sync’ed with existing calendars (Google, Outlook, Apple, etc):

3. Calendar on Slack - Scheduling a meeting with interactive messages

But to manage the Kyber engineering project itself, for both Slack and iOS apps, we still used an external project management app. Even for us already used to our own native Slack app, we initially didn’t feel “comfortable” to embed such important and complex business app into the text-only Slack UI. “We won’t be able to do this and that”, “How will we do that?”, “How can we do that with just commands and text?”

Still, when you start using Slack and its native conversational apps like Kyber, your way of working changes and you can’t really go back.

It starts feeling very inefficient and out of context to have to switch to another app to record the task, bug or feature you just discussed on Slack.
It starts feeling cumbersome to go through multiple fields in a form to name, assign and tag a project task.
It starts feeling time consuming and distracting to switch again to that external app each time you have to know what to work on next.

We had no choice but to at least try to extend Kyber to a full fledged project management app within Slack. Even from the very first iterations of the product, I decided to force ourselves to use Kyber on Slack to track the development of Kyber itself (totally “meta”, if you think). At the beginning it was honestly painful, as key features were missing and using commands for recurring actions like “complete” was not super efficient. But this internal experiment helped us to identify the key features we really needed and to creatively find them within Slack. When we got the opportunity to work as selected partners on the new Slack buttons, we immediately realized we could now provide a much more user friendly experience and really showcase the future of Slack as a platform.

How we use Kyber to manage our projects

First, we create a channel for each software release or “project” we are working on. For example, we now have #slack-rel1_0, #ios-rel-1_2_6 and #website. In there, we discuss all the topics related to that project.
Then, when a task needs to be created as a result of a conversation, we use the /task tag to create and share it with the entire channel. As other Kyber tags, /task uses natural language processing to transform a normal sentence in a structured task. For example, by entering in channel #slack-rel1_0

/task Offer button to add attachment by Wednesday at 5 PM @mike

few things happen:

  • the task “Offer button to add attachment” is created
  • a due date/reminder is set for Wednesday at 5 PM
  • the task is assigned to Mike
  • the task is added to Mike’s personal list for automatic filtering of own tasks
  • the task is added to assignor list for easy tracking and follow up
  • the task is labeled with #slack-rel1_0

With the previous project management app, we had to:

  1. Switch from Slack to the browser where the project management app run in a tab
  2. Find such tab. If you are like me with hundreds of tabs open, it might not be an easy step, requiring to flip between multiple browser windows. This single step also assumes that you always keep the app open in a tab, else you would have to type the web address, login (perhaps after switching to a password manager) and pick the right project.
  3. Click on “Add task”
  4. Type the task name
  5. Click on the label field
  6. Enter the project label
  7. Click on “Assign”
  8. Click/type a teammate username
  9. Click to Subtask field
  10. Enter subtasks
  11. Click on date field
  12. Pick the date (typically one of the most cumbersome UI/UX ever designed)
  13. Save
  14. Go back to Slack

With Kyber, we do everything with one command, a natural sentence, without leaving Slack. Do you see the difference now?

When a task name is not enough to fully detail an issue, we leverage Slack collaborative tools to attach a post, a snippet or a file to a task. Anyone in the channel can access it, commenting on it and editing depending on the file settings. In our case, we use posts for detailed feature specification, snippets for code reviews, screenshots for bug reports.

1. Project Management leveraging Slack tools (Post, Snippet, Files)

By integrating Slack tools with Kyber, there is nothing we can’t do now that we could do with previous, sophisticated project management tool. The big difference is that now we have every project-related information contained and searchable in Slack.

In addition to documents created with Slack tools, we can also import any file already shared on Slack or simply add a link to any external document.

After a task is created, actions like Complete, Snooze, Ask, Follow up, Return, Recall, Delete can be executed with the new Slack buttons. If conversational commands are great for one time creation of complex tasks, buttons provide the best user experience for such recurring interactions.

1. Project Manegement - Project view per #channel

When one of us marks a task as completed, the entire channel is notified. This provides full transparency at the team level, automatically sharing project progress that motivates the team and reduces micromanaging (“Is that done?”).

Finally, when a release is shipped or a project is finished, we archive the channel and we create a new for the next one. This way, we keep conversations and tasks organized by project, making it easier to search and revisit if needed.

Now we feel totally comfortable running one of our most important business aspects fully on Slack.

How Slack is changing the way we work

Today, most business apps are used as a system of record (calendar, project management, to-do list, etc), i.e. they simply record the information discussed in system of engagement (messaging, email, etc). Transferring information from one system to the other has always been a manual, painful, error prone process. The context of a conversation around a record is lost when transferred to the other app. Switching between apps is well known to impact productivity and introduce distracting interruptions.

The introduction of interactive messages and buttons on Slack changes all of this: as we demonstrated with Kyber, Slack can now seamlessly embed various systems of record, with unique benefits to the workforce:

  • Even complex and critical business operations can now be executed without leaving Slack, removing the need for external apps and making Slack the converged center of our work
  • All the records and content created by native apps like Kyber stay in Slack, easily searchable and accessible with the same user roles and channel policies already set up at the Slack level
  • The context of the conversation is maintained along with the records for current and future reference
  • The powerful combination of intuitive conversational UI for one-time content creation and practical graphic UI for recurring interactions can uniquely deliver easy to use business applications
  • A consistent Slack-based interface can significantly reduce the learning curve for different kind of business apps, increasing adoption and everyone’s productivity

So, what are you waiting for? Give Kyber for Slack a try now:

Add Slack