My Q&A for InfoQ on Keeping Distributed Teams in Sync

I spoke with Ben Linders of InfoQ (thrilled to be published at that website!) about challenges and communication patterns for Distributed Teams, uncovering bits of my Atlassian Summit 2018 speech.

The biggest challenge of distributed teams is communication, which is essential for establishing ground rules on collaboration. Shifting working hours to accommodate each other and team liaisons help to communicate and synchronize work. Teams based on trust, respect, and openness will thenselves to help people throughout the organization and foster a culture that keeps teams in sync.

Marat Kiniabulatov, project manager at SkuVault, will give a talk about the anatomy of distributed teams at the Atlassian Summit Europe 2018. This event will be held September 3 – 5 in Barcelona, Spain:

InfoQ spoke with Kiniabulatov about the challenges of distributed teams, how product owners and stakeholders collaborate at SkuVault and how the workflow is managed, how distributed teams communicate effectively and synchronize their work, and how SkuVault nurtures a culture that keeps teams in sync.

Full Q&A at Keeping Distributed Teams in Sync,

Also available in Japanese and Chinese

Minsk AUG Hosted!

1c0346c5-3d86-4f3d-a3c7-6e301876a15e-original

Hey guys, good news – Minsk has it’s own Atlassian User Group now, me & StiltSoft kicked out the first event, gathered 60 RSVP’s in just one week, and had an amazing time in the beautiful city of Minsk, Belarus!

Hosted an event in an awesome Eventspace.by at the old factory!

  • AUG Minsk, SkuVault-Jira – Speech on how we organized processes and workflows in Jira, and helped SkuVault become more transparent in development;
  • AUG Minsk, Stride – our experience in migration from Telegram to Atlassian Stride.

https://www.linkedin.com/embed/feed/update/urn:li:activity:6396021858935861248

And of course, a pub pic.

2018-04-29 18.10.07

Telegram -> Stride Migration Experience

Recently I hosted Minsk Atlassian User Group, where I shared our experience on migrating to Stride and gave the analogy between Stride, and Russian word ‘Stradai’ (-> eng.: ‘Suffer’). I’ll explain the analogy later. Hence the ‘Napalm Death’ song ‘Suffer’ joke on the first slide 🙂

Given that a lot of people use Telegram as a corporate messenger, and given all of the telegram-blocking happening in Russia currently, it’s pretty relevant to write about alternatives. We at SkuVault migrated due to the need of user control, but migration experience is relevant to many other teams.

Atlassian launched Stride as a HipChat Cloud replacement (so we can call it hipchat 2.0). Main competition is Slack, which is currently de-facto corporate messaging standard, as we know. I’ll compare Stride to Telegram and Slack in areas they are strong.

Pros

Atlassian Ecosystem

Biggest point of Stride is that it connects to your atlassian ecosystem. Typically you got single account for Atlassian User, from which you can manage entirety of Atlassian Permissions. Now, Stride is added as an application to the very same account, and access / admin rights are easily managed from the very same place. If you want to have control over the users and the ecosystem that is locked to Atlassian (as we do) -> this is an ideal scenario.

admin_unified

In Telegram we had personal accounts, which you don’t have control of (sure you can create virtual / work phone numbers and link them to telegram to make it corporate-friendly, but that is kind of a crappy way to maintain users ecosystem).

In Slack – you have to pay more than $3/user and it’s a separate account management system.

Users Control

User Control means removing a person, when she no longer works at the company, visibility for messages in order for infosec to not be compromised.

Audio and Video Group Calls

It may not be something you’d count as a pro, but given that we previously used Telegram + Skype for calls (with hangouts as a fallback in case of skype outage), it’s nice to have same app doing everything.

Jira / Confluence Integration via bots

z0ogiy1zqdssa9zywvco-ccwoii

Integration with Jira and Confluence (not out-of-the-box-though) gives you a glimpse of the ticket in the chatroom (ticket card that reflects priority, assigne and editable layout), ability to create tickets as a command to chat-bot (create new bug Fix spacing on signup page in SV project), bitbucket PR review poking, and a lot of neat other things you’d expect inside the Atlassian ecosystem).

bz_ruco5zorq8lnv3cnme3tpjvq

Basics

Mentions, citation, styles for text. NO HASHTAGS THOUGH – giant bummer!

Cons

suffer_stride.png

And here’s my analogy of ‘Stride’ to russian word ‘Suffer’: you can use Stride, but it’s still raw, and a lot of features you’d expect to be basic in messaging, are half-baked in Stride.

Video Calls

Let’s admit, that Slack sucks at group video calls as well. But Stride is much worse 🙂

stride_kianu.png

  • Issues include showing bad internet connection, when connection is good.
  • People may suddenly leave the call, although didn’t click on leaving or anything
  • Stride’s animations are smooth, so when it switches to another person, it fades in / fades out. And sometimes crashes during that animation!
  • Video lags a lot, sound doesn’t though
  • Video freezes a lot, and doesn’t resume until you restart the call
  • RAM consumption (400mb), CPU consumtion 70% on core i5 2014. This is a lot.
  • When you share the screen, and stride catches a glimpse of itself (stride window), it falls into the infinite glitch of Stride fractal windows.

Ok, done with the video calls!

Basics

  • No hashtags (sucks)
  • Sending messages is painful (it’s slow).
  • Sending messages with attachment is a torture (Stride waits until image is uploaded (slow), and only then allows you to click on send message (which is slow as well)
  • No forwarding between chatrooms -> leads to isolation of discussions to room-only.

Notifications

They are horrible (not Rocky-Horror-Show or Dr. Horrible way, and not even Troma-way. They are as bad as most coffee in US (ha-ha)). The sound of notification is bleak and unnoticable. You can’t change it, even if you rip apart the guts of app package and assemble it again 😦 That results in people not reacting on urgent messages.

2018-05-04 11-51-23

There is no mute for chat rooms, which results in information overload and renders the whole notifications system pointless.

There is no indication that your message was read by your counterpart. You don’t know whether to poke your colleague or he already read this.

Phone gets 2/3rds of all notifications. But when it does – mac app doesn’t show any of those! This is a typical failure, I’m writing this post on the train from Brest to Minsk where I ride to host AUG Minsk, and our team notified me with long message on my phone, but i see no new messages in my mac app. I have to restart it to get those messages.

Jira Bot

Although integration with jira bot is neat (hey, slack does that even better, actually), it crowds chat room’s vertical space like a giant worm that digs Jasinto in Gears of War 2. If you dump number of tickets to dicsuss in the chatroom, you can’t read any message because card previews will occupy the whole 2-3 screens of vertical space.

xetwzcbgzz5vqnfapjf4ab5il5a

JSON parsing

As per our admins, Stride doesn’t parse JSON on itself, so basically you have to parse and feed parsed JSON to the API yourself. Not the case with telegram.

Nutshell

Stride is not-horrible-beyond-anything, it’s ok. You can use it and adjust to it. Especially if you’re locked to Atlassian Ecosystem (and I love and use jira, even after the latest interface update). But if you’re already on slack – there’s no point, it will work better for now.

There are a lot of things to improve, and the guys at Stride work on making their product better. It took 5 years to telegram to become the best and neatest messaging platform, it took same number of years for Slack.

Parking Lot

References – Submitted Issues

Ufa AUG #1. Wrap Up

So we’ve survived Ufa Atlassian User Group, the very first meetup, with 17 people visiting our office to hear about jira, confluence, bitbucket and other atlassian products 🙂

 

We’ve discussed how Jira helped us in reflecting SkuVault development processes, and how do we keep documentation on the feature in Confluence, until it’s released, and what info do we store there.

Panel consisted of Smena.io, modulbank, MEGI, and a couple other teams 🙂 Presentation is available in Russian via this link: UfaAUG_1.

Stay tuned at https://aug.atlassian.com/ufa/ for more events in Ufa 🙂

 

Ufa Atlassian User Group

UPD: Rescheduled Jan. 30th -> to Feb. 6th.

Recently buddies from Moscow recommended me to join Atlassian User Group Leaders,to host Atlassian events in Ufa, so here I am (after an interview with Atassian)!

First ever-ever Atlassian User Group with special Atlassian swag will be happening January 30 2018, 7pm 🙂 Meetup related to all things atlassian and related! Follow the link and save the date 🙂 https://aug.atlassian.com/events/details/atlassian-ufa-presents-ufa-atlassian-user-group-1#/

2017-12-29 10-12-57

  • # I’ll be talking about how we adapted our development workflow in JIRA
  • # Documentation lifecycle in confluence at SkuVault

More topics to come, from our local Atlassian Users 🙂

Jira: removing transition from current status to itself (if All -> transition is turned on)

Small and duct-tapey resolution for the time, when you have an All -> [statusName] JIRA workflow transition.

By default, it results in the following: Default Ticket Screen shows transition from current to current status, among others. So e.g., you have an In Progress ticket, you have the transition to the very same In Progress. To avoid that, use simple conditioning for the transition:

  1. Go to transition Conditions
  2. Click Add New
  3. Select ‘Value Field’ from the given list
  4. Select logical operator ‘doesn’t equal’ / ‘!=’
  5. And put a value in it (name of current status, and the value to be handled as string)
example_ticket
Start Working is the transition name to the “In Progress” status
all_transition
This is how it looks in Workflow

2017-10-06 15-52-01

2017-10-06 15-53-08

This works in the following way:

Perform Transition (if (Status doesn't equal string('currentStatus') condition is met).

@AtlassianTeam! A good UX would be something like a checkbox, checked by default, and labelled “Don’t show transition option to same status”.