Trust Stories – Growing trust in distributed teams (RU)

Last week me and Alex Pikulev of Agilix recorded Trust Stories podcast episode, on Growing Team Trust in Distributed Teams. Courtesy of In Teams we Trust website

Main bullets are: 
– Growing trust in distrubited teams is hard, but nevertheless as important as in co-located team. 
– Team itself creates an atmosphere of trust in itself. Our task, as a scrum master, coach, manager – is to help and highlight needed areas.
– XP and especially Pair Programmingи helps in growing trust.
– Intrateam trust, from the informal side (skype beers, navigating as a guest to your colleagues in other locations, bike fixing via the webcam, ordering stuff on flea market in your city and sending it over to a colleague) helps a lot.
– More freedom for the team, for collaborative work and motivation. More trust! Work harder on understanding the context and value of features implemented.

More details (rus) / tg channel : https://t.me/inteamwetrust_rus/35
Video: https://youtu.be/Pq82aFap1rc

How to turn off New Jira Issue view

  1. Navigate to Personal Settings
  2. Turn switcher for Jira Labs off
  3. And leave feedback. Atlassian team needs you to help’em understand what didn’t you like. Ahem, I got some help 🙂
    1. It’s not comfortable to edit
    2. It doesn’t support markup
    3. It doesn’t allow to work with resolutions
    4. It makes it hard to find needed fields, although they are already turned on in standard view

Are you finding new view comfortable? Has it helped you improve your Jira routines?

Conducting Remote and Distributed Retrospectives with Trello

and why Trello?

Lately I’ve started using Trello as an ultimate tool for the Retros and Demos. So this post will cover the path to using trello as opposed to other solutions.

yet another pencil illustration

Tools

I’ve been using multiple tools, such as Realtimeboard (now Miro) as an interactive flipchart to collaborate with the team, Google Docs with sections appointed to the retro stages, Confluence (as in 100% of the projects I’ve been working in we’ve had Atlassian stack), even Jira once (wow that was a bad idea)! 

I bet almost everyone was trying to find that nieche, that ultimate tool he can expand to using in various projects no matter the area! 

The main criterias for the proper tool are: 

  1. handling item-centric discussion -> cards, ideally.
  2. fast and effortless collaboration of the cards
  3. markering the cards (by all members), no matter label or color
  4. cards reordering
  5. time spent on executing action of: creating section -> adding item -> labelling it to be worth (by members) -> adding comment to the item.
Realtimeboard

While Realtimeboard is awesome, it’s not as simple to use in collaboration (well, it exceeds in functionality but format of retro is tied to the cards which is not the strongest of that product’s sides). There’s no barebone structure that supports cards, so you have to maintain it yourself: create some kind of a column, move items that are not self-aligned to that column. This is time-consuming and effortless. Labelling is not a stronger side of Realtime board.

Google Docs

When it came to Google Docs, it’s the default option for zillions of companies I’ve discussed remote retros with. However, it’s not visual enough from the point of dissecting retro items and splitting them. Using spreadsheets on the other hand seems to cope better with 2-dimentional-retro-approach (well, not an approach but the idea that you got buckets with items for good/bad/improvements). However drag-n-drop for the items to reorder and link with each other sucks there. I’ve also tried to have Google Slides at a certain point with one-slide-per-section (e.g. all great improvements accomplished since last sprint) – but it seemed too heavyweight and kind of sucked at limiting members of the dev team to collaborate properly. Labelling here is somewhat ok, but

Confluence

Coming to confluence, albeit it does have a blueprint for the retro – it’s good more for the documenting / stenographing, than for the real-time-discussion. Or just writing some kind of decision-log. Atlassian tries to position confluence as a lightweight in-stack solution for collaboration, however it’s far away from gDocs in terms of simplicity/stability/collaborating. And again, it’s not centered around discussion items. It’s also not stable enough, where some of the changes are not applied on publishing, or connection is lost to cloud instance. 

Trello

Coming to Trello, it simply supports the cards, it allows voting either via power-ups (which is simple), or via labelling with colors (which is fast, efficient and convenient). You can drag-n-drop item cards, and organize Retro stages into column. If the item may have a lengthy discussion or not that related -> you just drop it into the parking lot. Basically, trello is the most simple-to-use online implementation of flipchart + stick-it-notes.

Preparation & Setting the Stage

Remote retros usually are much less emotional and empathetic, given that it all happens online and some people may not want to share their faces (and expressions) behind the camera. Now to set the stage, we’d ideally need to:

  • Get everyone to turn on the cameras at their laptops
  • Select comfortable tool. I usually use either Skype or Slack video, but occasionally zoom seems to be a great option as well
  • Make sure the quality of connection is superb: we need as less lags possible
  • Prepare beforehand: either with the unified agenda, or the topics. We can preliminary pinpoint any inconsistensies and disfunctions on an online board 🙂 All members of the retro should know the structure of how the retro will be proceeding, in order to assign points they’ve prepared to particular retro stages.

Retro

example of how trello board is used during screen sharing on a retro
Things improved since the last sprint

I usually start retros by listing our improvement/accomplishments that we’ve planned to achieve last time. So we either mark something achieved with green (we got a long list of all improvements implemented), or mark with orange something critical that we didn’t achieve but planned (and with red if it was not improved for 2 sprints in a row). Later on this red labelled card simply is the top-priority to improve (if still relevant).

This shows the team where we at with desired improvements and is a good starting point for overall recap of things that happened during the sprint before the current one.

Tip: it’s also sometimes nice to order everyone a pizza for the retro to get the positive vibe and thank for accomplishments. It shouldn’t be only on org budget, the team can self-organize around retro being a cheerful and friendly event, instead of a mandatory meeting. Although, don’t force it into the “mandatory-pizza-meeting”, with the management looking from above and yelling: “Eat your food and report on bad things happened during this sprint”. I’ve seen some orgs giving the budget for pizza and overwatching that it’s spent properly (eaten) and making sure people are thankful that management is spending money on their food 🙂

This stage may get lengthy as if something planned to be improved is not achieved -> team may start getting in lengthy discussions on why this happened. As a facilitator, your job is to help team find the productive path to navigating to the root cause in a short enough time to accomodate retro timebox. That’s why only a few items (1-2) should be planned for improvement, otherwise we may be stuck on the very fist stage. Your job as a scrum master is to coach the team to be aware of the timebox and get to the root cause efficiently.

Sprint Metrics

Sprint metrics is an important internal-SLA for the team. Usually there are various factors that dev team may see as an obstacle or an impediment to be an even greater power-ranger-squad. Facilitation and proper reflection of dev team’s discussion provides sufficient items on how to improve the process and measure those improvements. The rest is just comparison. Common metrics to compare are: Lead Time (as soon as you explain the team the meaning of it, team will start to be motivated to improve this metric), time in Code Review, # of times tickets are reopened, and so on.

For bigger projects we’re also reviewing the metrics until the project-end, comparing projections on finishing via story points, and throughput.

Sprint Goals

This is not something that I use everywhere, but still when it comes to transparency, we need to reiterate what we tried to achieve goal-wise. Although this is not directly related to the process itself, since goals achieved need to be reviewed and discussed during Sprint Review -> it’s still effective to hightlight reasons on meeting sprint goals or not (which are related to the process, and retro is about inspecting the inner processes and tuning them).

I usually guide the teams to mark sprint goal cards with green for achieved, and red for not. And comments to demonstrate the reasons. Simple as that 🙂

Typical ‘What have been working nice’, ‘What could have been better’, ‘What will help us improve in the future’
btw, did you know that there’s a ACP-ATF (team facilitator badge by ICAgile)

Distributed and remote team members need to add points and vote for them as soon as the issues are found. No need to wait until the retro itself, to pin discussion item.

As a facilitator, your job is to turn team’s attention / highlight any conflicts / impediments during the sprint when the team faces them. Help the team to document / pin it to the retro board.

Do it via reflecting the situation when discussing it with the team, providing a view from a person that doesn’t have a context, or any other facilitation technique 🙂 Make sure team is engaged in inspection process during the cadence itself, and not during the retro event only. And help the team to document / pin it to the retro board. Even if it would lead to a lot of items in retro – you can always remove irrelevant.

References and helpful things

  • Ben Linders has a pretty great trello board that provides crowdsourced ways of retro-handling https://www.benlinders.com/news/trello-board-retrospective-techniques/ That possibly was the best help I got when trying to make team retros in trello better 🙂 He’s a nice guy in person, you can clarify a lot if you’re at the same conference / workshop as him!

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 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: how to allow editing fields for closed tickets

Jira is flexible, yet complex tool in some cases 🙂

  1. In order to make the fields (inline as well) editable, when the ticket is closed, go to Workflow -> Select ‘Closed’ status -> Click Properties
  2. There would be flags with bool values: we need jira.issue.editable
  3. edit_closed_issue
  4. In case you see jira.issue.editable is false – either change that to true or delete the property key with prev. value.
  5. Don’t forget to publish the updated workflow.