How We Use Geekbot to Manage a Distributed Team from Slack

How We Use Geekbot to Manage a Distributed Team from Slack

Before we built Geekbot in 2015, we used to run daily standup meetings via Zoom:

A preview of a zoom call with the Geekbot team.

Our team had been building products for a few years, and Geekbot was our fourth startup. Back in the 2009-2014 pre Geekbot days, we were a 7-person remote team.

We didnā€™t like doing video standup meetings for 2 main reasons:

  1. It was hard to get all 7 of us on the same call due to different time zones and scheduling conflicts. Inevitably, someone had to show up at an odd/inconvenient time (i.e. 5:00 AM) to accommodate the rest of the team.
  2. Our meetings would run too long and go off the rails due to personal talk, long decision making, rambling, code reviews, etc. So 15 minute meetings would often turn into half an hour or more.

These were non-trivial pain points for us since they took time away from tasks (and we knew that lost time adds up over time).

So we experimented with different ways to solve these issues.

We ended up building Geekbot in 2015 for our own use internally to run asynchronous daily standup meetings in Slack (more on how this solved our pain points later). Eventually, we released the tool to the public.

Weā€™re proud that in 5 years, 100,000 users have joined Geekbot. Zapier actually posted an article about how one of their teams uses our Slack standup bot to run faster daily standups. Also, teams within Github, GitLab, Shopify, Airbnb (and more) use our product.

Originally, we thought that remote/distributed teams would be our main audience. But it turns out that many collocated teams also prefer to run standup meetings via Slack, because they face a similar problem: lengthy standups that drag on too long and waste time. Beyond that, in-person standups arenā€™t asynchronous, so they often interrupt folks while theyā€™re in a zone and making meaningful progress on a task (an issue that Slack solves, since you can type your update at any point during the day, instead of being forced to attend a meeting at a specific time).

We also discovered that there are several interesting use cases for running many other types of meetings in Slack, not just daily standups. Many of our users (including our own team) use Geekbot every week to make the following activities faster and more efficient via Slack:

  • Retrospectives
  • Product changelog
  • Meeting notes
  • New feature proposals

Beyond utilitarian use cases, the product also had an unintended but great consequence of creating a transparent culture and promoting team bonding (more info on this later). We didnā€™t expect that originally, but itā€™s been a nice surprise for us, and many of the teams using Geekbot.

In this article, weā€™ll detail how our own team uses Geekbot everyday (using day-to-day use cases and real examples from our agile engineering team).

Youā€™ll learn:

  1. How to make remote/distributed work and project management easier and more efficient using agile methodology via Slack.
  2. How to create a transparent culture within your remote/distributed team, connect people inside the company, and build team chemistry.

Table of Contents 

The Problem with In-Person and Video Call Standups 

As we mentioned earlier in the introduction, our 7 person remote team used to run daily standups via Zoom (before building Geekbot). 

But video standups were a source of frustration for us as a remote team because (1) it was hard to get everyone on the same call due to time zone and scheduling differences and (2) standups took way too long.

We noticed two more significant downsides to video conference standups (which also apply to distributed & in-person teams):

1. Listening to irrelevant updates.

In our 7 person team, not everyone had to be present for every single update. When an update from 1 person may only apply to 2 standup participants, 4 teammates are left listening to information that is not relevant to their own work.

2. Interrupting your workflow.

This situation probably sounds familiar: youā€™re coding and get into a zoneā€¦ you feel like you could go on for hoursā€¦ but then you realize that a daily standup (or another meeting) starts in a few minutes. So you stop coding and break your concentration to take part in the meeting. And itā€™s hard to get into a similar state of flow again.

The Solution: Running Remote Daily Standups in Slack 

We originally built Geekbot for our own team internally with all the pain points above in mind (more on how our product actually works in the next section). 

We think that running standups asynchronously via Slack instead of video call or in-person is faster & less disruptive (and the fact we currently have 100,000 users backs that up).

Here are a few reasons why some teams prefer Slack-based standups:

Reason #1: Faster

Instead of sitting around waiting to hear everyone else’s standup updates (and the discussion that inevitably ensues) users normally fill out their answers in 5 minutes or less.

You can read everyone’s updates quickly, and only focus on whatā€™s necessary. This process is quicker than in-person or video standups that generally take longer than 15 minutes and keep you from getting meaningful work done.

Reason #2: Asynchronous

You can customize Geekbot to start the standup at the userā€™s local time zone:

Timezone based notifications are available within Geekbot.

If the standup was set at 3:00 PM for someone in LA, it wouldnā€™t be convenient for someone in Greece, where itā€™s 1:00 AM. So by selecting ā€œUserā€™s local timezoneā€, the starting time would be 3:00 PM for everyone, despite their location.

Remote team members can update each other on their work at a time thatā€™s convenient for them.

Reason #3: Side Discussions

You can open up a thread in Slack and have side conversations with teammates about a specific update without involving non-relevant team members. This saves everyone time since these side discussions can be lengthy and detailed.

Geekbot pushes daily updates to a specific channel in Slack.

This differs from video conferencing or face-to-face communication, where you have to sit through the entire meeting, whether or not updates have any significance to your own work.

Reason #4: Non-Disruptive

When you get a notification from Geekbot in Slack saying itā€™s time for the daily standup, you donā€™t have to answer the questions right away. You can simply snooze the standup, and Geekbot will remind you at a later time (reminder frequency settings are customizable). 

This way, if youā€™re in the middle of a task, you donā€™t have to stop working and break your flow — you can just complete the standup answers afterwards.

Running Daily Scrums via Slack Using Geekbot (Logistics)

After failing to find a good solution to staying up to date on what everyone was working on, remotely, we ended up building Geekbot.

In this section, weā€™ll explain how we designed Geekbot.

Geekbot sends a message to team members in Slack (based on a userā€™s timezone or a time of their choosing) asking them to complete the standup using the 3 standard scrum questions:

  1. What did you do yesterday?
  2. What will you do today?
  3. Anything blocking your progress? 
Geekbot: "What did you do since yesterday?"

Then, the info is published in a transparent, public Slack channel (i.e. #Status) that the whole team sees.

Here at Geekbot, we value the transparency component, because we know not only whatā€™s happening with our own team (Engineering), but also other teams within the organization (i.e. Marketing).

Since the updates are pushed to a public Slack channel, you can achieve ā€œnot only company wide but also intra-team communicationā€ (as one of our customers stated on Capterra).

Kate Martinez, Brandon Clark, and Susan Green posted an update for Daily answering the basic questions.

This standup process is quick. You type your answers and then skim teammateā€™s updates to find whatā€™s relevant to you.

From there, if you have a comment/ update/ question/ idea, etc; you can start a threaded conversation in the Slack channel.

Thereā€™s no need to sit through long updates that donā€™t apply to you. Itā€™s simple.

Notifications Based on Userā€™s Timezone

As previously stated, you can configure Geekbot to alert participants of a standup in their local time zone:

Timezone based notifications are available within Geekbot.

Being asynchronous makes it convenient for anyone, regardless of their location or work schedule.

Manage standup period and days to be notified.

You also have control over the standup days & time period.

If a daily scrum is starting and youā€™re in the middle of an important task, you can just snooze the standup and customize how often you get reminders.

For example, you could get two notification reminders in Slack: one after an hour, and another after 3 hours:

Personal reminders: Smart reminders or manual reminders are available.

Note: Manual reminders need to be turned on within the settings. Smart reminders are the default at Geekbot to avoid being too intrusive.

One of our customers wrote a relevant Geekbot review on Capterra about the

ā€œRemindersā€ feature:

Geekbot review from Paul A. on Capterra: if you are too busy, you can easily dismiss the notification.

You can look back at your teamā€™s standup answer history via Geekbotā€™s dashboard (not just a Slack channel) and access a written record that is searchable by date and keyword.

You have the option of downloading answers via CSV, getting standup email summaries, or sending answer data to Asana/Jira/Trello/etc. using Webhooks or our API.

$curl https://api.geekbot.com

Geekbot replaces tedious in-person and video call standups with efficient, transparent standup meetings in Slack. Learn more here and try it free for 30 days.

Running Retrospectives in Slack 

Originally, our sole purpose for starting Geekbot was to have a place for teams ā€” including our own ā€” to run asynchronous standups in Slack.

But we soon realized that this asynchronous in-Slack concept could expand beyond the 3 daily standup questions to other agile events (i.e. retrospectives, product changelog, etc.)

Here is an example of a retrospective report:

Geekbot gives the option of having a #retrospective channel within Slack.

This has worked out really well for us and our customers. Above you see an update from a team member on a particular meeting, and one specific reply to just that update:

Easily see the reply's to specific conversations threaded within Slack.

In other reports in a #retrospective channel, those reply threads can become long, important discussions.

Similar to standups, we decided to see if Geekbot could be useful in prompting team members in Slack to answer the retrospective questions asynchronously.

The asynchronous nature of Slack is appealing to distributed & remote agile development teams in different locations, because they donā€™t have to run retrospectives at the same time.

Instead, teammates can just type retrospective updates and do a sprint review at any convenient time throughout the day.

You can customize the retrospective questions to whatever youā€™d like.

We personally use these 3 questions at the end of every sprint:

  1. What went well?
  2. What didnā€™t go so well?
  3. What have you learned?

One of our customers (Danny Varner) published a worthy read on his blog about why and how his team runs distributed retrospectives in Slack. Hereā€™s an excerpt from his article:

Since we already use a Slack bot (Geekbot) to conduct our daily standups, it got me thinking it may be possible to conduct a distributed retrospective via Slack. The result would be an asynchronous retrospective spread across multiple days in order for the team to collaboratively build off each others ideas and eventually come to an action plan without requiring anyone to wake up in the middle of the night to participate.

Product Changelog in Slack 

We can use this same framework for other types of discussions and agile practices. For example, our team at Geekbot has a dedicated SlackĀ channel for Product changelog. Hereā€™s an example of a Product changelog update:

Brandon Clark posted an update for Product changelog: "What was changed in the product today?" Resonse: "Deployed App Home. Should be visible and out in the wild in a bit."

Using Geekbot for product changelogs has been so useful for us that we have it as a preset in Geekbot. You can set product changelog updates to broadcast to the whole team.

So if an engineer changes something in the backend and it affects the marketing team, the engineer can tag them in Slack and make them aware. It keeps teams on the same page to ensure that important changes/updates donā€™t slip through the cracks.

A lot of teams start out using Geekbot for daily standups, but end up running retrospectives and product changelog in Slack as well. When everything is done in one centralized place, it increases overall efficiency. And as weā€™ve already said, the asynchronous nature of Slack is convenient for remote & distributed agile teams (this is a constant theme throughout Geekbotā€™s 50+ capterra reviews).

Meeting Notes in Slack

Here at Geekbot, we also have a dedicated Slack channel for meeting notes. Hereā€™s an example:

Geekbot allows you to easily setup #meeting channels as well with consistent questions to keep everyone on the same page.

Weā€™ve found it useful to utilize the sameĀ organized set of questions after every meeting:

  • What was this meeting about?
  • Which teams were invited to this meeting?
  • Who attended?
  • What were the decisions made?
  • Are there any notable objections/problems to look out for?

The questions themselves are customizable within Geekbotā€™s settings.

You can configure Geekbot so that anyone in the company (even if they werenā€™t invited to the meeting) can see the notes in a public Slack channel.

If a team member didnā€™t attend a specific meeting, they can scan the notes and:

  1. Get up to date on the decisions that were made.
  2. Open up a threaded conversation in Slack if they have anything to add (i.e. objection to a decision). This is much faster than discussing over a call.

Using the same organization of questions for notes in Slack creates structure.

One team member may type up meeting notes in a completely different way than someone else. Having consistent structure with the same set of organized questions makes it easier for managers to scan information quickly and find exactly what theyā€™re looking for.

Also, by writing notes freehand (without any structure or organized set of questions to guide someone) a teammate may forget to include information that is actually important.  

New Feature Proposals in Slack

Our team also uses a dedicated Slack channel for new feature/product proposals. Hereā€™s an example:

Having a #newproposal channels also come in handy for certain teams as well.

Everyone on the scrum team has to use the same structured template/set of questions:

  1. Give some words as a quick topic of your proposal (keep it short)
  2. Describe your proposal
  3. Is this a fix, improvement, or new functionality?
  4. What is the expected goal/outcome/result, if we implement this? (best estimate)
  5. Is there any evidence (business opportunity, user feedback, etc) to back up this idea?

These questions force team members to think through the rationale behind a new feature before discussing it since detailed proposals are more likely to be approved by the development team.

How We Do Team Bonding in Slack

Originally, our goal was to build a tool that lets us run many types of meetings in Slack (i.e. standups, retrospectives, product changelog, etc).

While running different meetings in Slack was faster than in-person/video (and saved us a lot of time) our remote team felt that it was missing a social component.

So the question became, how do we achieve the team bonding function of standups in Slack?

Sure, saving time by shortening meetings was a priority. But we also wanted to build better relationships within our team and create a fun remote work culture.

Here are some ideas we came up with:

1. The option to add a ā€œHow do you feel?ā€ question to every Slack standup: 

Add the question "how do you feel today?" to make things feel more personal and be a supportive team member.

For example, someone may respond and say theyā€™re having a tough time due to some personal issue that has nothing to do with work (i.e. broken leg).

In an actual standup, itā€™s not usually appropriate, time-wise, for everyone to have a personal discussion.

With Geekbot, teammates can chime in with uplifting comments via Slack threads to help that person feel better.

Itā€™s hard to achieve this remotely, because youā€™re not seeing your coworkers all the time. You donā€™t know whatā€™s going on behind the scenes. So prompting remote teammates to bring their personal life forward via the ā€œHow do you feel?ā€ question is useful and creates transparency.

You can argue that in a remote company, there’s no alternative for this, because nobody usually discusses personal stuff on Slack. Itā€™s often all work related. Perhaps some teams have private Slack channels for ā€œpersonal lifeā€, but itā€™s not common.

2. Geekbotā€™s ā€œPizza Toppingsā€ preset

A few months ago, we released a new preset called ā€œPizza Toppingsā€. It was more of a half-joke and we didnā€™t expect it to get traction. But to our surprise, it became a huge hit!

Users even contact us from time to time just to say how much their team enjoys using the ā€œPizza Toppingsā€ preset to connect people inside the company and create better working relationships.

You can set up Geekbot to send personal, fun questions to teammates. We have a set of 100+ pre-written questions that are picked at random. You can also choose from the questions or add your own.

Here are some example questions:

  • Whatā€™s your favorite food?
  • Whatā€™s your favorite hobby outside of work?
  • Did you like the last season of Game of Thrones?

Teammates have the option to open up Slack threads and respond to other peopleā€™s answers (i.e. ā€œI hated the last season of Game of Thrones!ā€). So you get a better sense for everyoneā€™s personality, traits, and hobbies.

Some remote teams use the ā€œPizza Toppingsā€ preset in Slack everyday since it promotes a more fun agile work environment.

Weā€™ve only been using the preset once a week for the last few months, but weā€™ve already gotten to know each other a lot better. We see that as a good thing because it has translated into better working relationships, with more energy, since youā€™re more excited to work with someone you like on a personal level. 

Final Thoughts

Weā€™re proud of how much has changed since our remote (now distributed) team first built Geekbot in 2015. We now have a thriving, transparent team culture. Our meetings are quick and efficient. People can work uninterrupted for longer stretches. And this all happened simply because we felt that video calls were an inefficient way to run remote daily standups.

Frequently asked questions

What are distributed teams?

Distributed teams are teams with members that are working not from the same location. Some employers in distributed teams can be located in the office, while the rest of the team may work remotely. Often members of distributed teams can work from different cities, countries, and time zones.

How do you manage a distributed team?

One of the main challenges of a distributed team is to keep team members aligned around company goals and processes. The most effective distributed teams develop specific processes and use specific remote tools that let their team members communicate and collaborate effectively even when they are not working from the same location and time zone.

How does agile manage distributed teams?

Agile methodology puts emphasis on consistent and effective communication between team members. Agile meetings such as daily stand ups and retrospectives allow distributed teams to consistently communicate and quickly identify challenges within distributed teams that may affect productivity and well-being of its team members.


You Might Also Likeā€¦

Frequently asked questions

What are distributed teams?

Distributed teams are teams with members that are working not from the same location. Some employers in distributed teams can be located in the office, while the rest of the team may work remotely. Often members of distributed teams can work from different cities, countries, and time zones.

How do you manage a distributed team?

One of the main challenges of a distributed team is to keep team members aligned around company goals and processes. The most effective distributed teams develop specific processes and use specific remote tools that let their team members communicate and collaborate effectively even when they are not working from the same location and time zone.

How does agile manage distributed teams?

Agile methodology puts emphasis on consistent and effective communication between team members. Agile meetings such as daily stand ups and retrospectives allow distributed teams to consistently communicate and quickly identify challenges within distributed teams that may affect productivity and well-being of its team members.

Leave a Reply

Your email address will not be published. Required fields are marked *