2020 Core Dev Sprint - virtual sprinting sessions

During the language summit, @sumanah mentoined that she has organized remote sprint before. It would be great to hear from her experience what worked and what didn’t work.

2 Likes

I’d be willing to try that. During the Summit I really missed the opportunity to have a side video chat with one or several people (text chat was limited to Everybody or one person). Does it run (well) on a Mac? What about Linux? Cost should not be an issue in this case.

I think it runs fine. @barry might disagree. :wink:

There’s support but I don’t know the exact status of it (it might still be in public preview).

Teams actually runs fine on Mac. I use it all the time. It has a few bugs that aren’t related to stability or video call quality. The two that bug me most are that the main window on multiheaded desktops will spontaneously disappear with no way to get it back short of restarting (never happens during a call though), and that it doesn’t conform to Mac UX design standards (so the keybindings are nonstandard and can’t be configured in the macOS standard way - only affects chat).

Zoom supports breakout rooms, but then the host has to pick and choose of who goes into which breakout room.

Another interesting tool for this is Remo You can setup multiple “rooms”, each room has a certain capacity (4-6, depends on the pricing), People can see who else are in each room. You can join one room at a time, and have video chats with people in that room.

We evaluated Teams before choosing Zoom for the language summit. And our experience with Teams was a bit underwhelming (but maybe because we were using @steve.dower’s personal Teams instance?)

Since this is in the committers category, Sumana is not able to share her experience with running remote sprints here. Is it ok if we open a new thread in #core-dev about remote sprints? So we can hear experience and feedback from the wider Python community?

3 Likes

It was a little lonely in there, and we only really tried a single video call.

The strong point is the breadth of features, rather than the depth of any particular one. Being able to freely set up group chats and have multiple calls/chats going on seems like a pretty good advantage for something like sprints.

3 Likes

I updated the thread to be in the #core-dev category. @sumanah should be able to post now!

5 Likes

I just had my first Zoom meeting that used breakout rooms, and while it was perfect for that one (the random assignment saved a lot of time), it wouldn’t really be great for sprints.

Remo’s approach sounds interesting though, almost like an MMORPG :slight_smile: . Though not impossible to emulate in other tools (Teams for sure, I assume others can too).

2 Likes

I can host video via Google Meet and invited people can join, even without a Google Account. All in browser. No fees or account wrangling as this is provided by work (Google).

If we want to consider that, I’ll want to setup some test runs for people in representative configurations to make sure it’ll work well for people. My experience is that any existing participant can click the “allow user X to join” button within a session when someone invited but not using an account connects and that I as the creator don’t even need to remain in the session.

I don’t know if the same is true for shared whiteboard like Google Jamboard, I’ll find out. (excellent for use from touch screens)

I believe Zoom behaves similarly for non-event-hosts (I created an account when I used it but it was a free one not tied to anything - I’m not sure if the account was actually required).

For break out rooms, I suggest rather than expecting that as a platform feature we just setup several parallel video sessions that we’re all invited to. A primary one and a few others that people can self organize into for topic specific things as desired. We’re all welcome to move between them as desired (a feature of actual sprints with people in corners or side-rooms with whiteboards). But would presumably create a schedule for common sync ups in the main room and possibly some lightening talks.

We shouldn’t need to create a subscription requiring us all to have new user accounts with a per-user fee in some paid managed domain product (as MSTeams or a custom GSuite domain would presumably be) for this kind of thing. Zoom has been a poster child of enabling this so far (thus the lang. summit use). The others, if setup that way, seem geared towards less ad-hoc Managed Scenarios :trademark:. I’m not a fan of getting into that level of random company’s product admin duty myself. But we do have the PSF here…

Requirement: We can’t use anything that requires installing local third party software on a computer. It must work in Chromium and Firefox based web browsers. It must work on ChromeOS. I don’t expect this to be a problem because just about everything seems capable of this today. I expect everything has a mobile app and some may have desktop software - but use of that needs to be optional.

Meta: If you’ve got a local Zoom software installed I suggest reconsidering that install. Look into the https://github.com/arkadiyt/zoom-redirector browser extensions to protect your computer from their repeatedly demonstrated lack of software infosec quality. You can use their service without sacrificing your computer & data! :slight_smile: While Zoom has contracted an all-star team of software infosec folks in the last few weeks, it’ll take time to see if they’re actually able to shape up and regain lost trust. I don’t expect to ever be allowed to install Zoom’s client software on my employers computer, nor would I expect several others of you to be able to either.

Meta meta: Vic and Vat and Wb solved these problems via the mbone for free over IP-multicast in the 90s. Caveat: Nobody had IPv4 multicast routing working and NAT killed the concept.

Disclaimer: I own shares in Zoom, Google, and indirectly Microsoft.

1 Like

Also, for text chat I expect we’d just use our Zulip instance rather than adopt something new.

On a pure tools note: I used BigBlueButton today and it had seamless timed breakouts that work like:

  • the leader assigns people to breakout rooms and sets a duration
  • those participants then don’t have to do anything – each person’s videocall session changes to a call among their breakout group, and the leader can move among them
  • when the duration elapses, everyone automatically rejoins the main room

which might be a useful model. I’d also want there to be a way for individual participants to move to different breakouts, or start their own without having to wait for a leader.

1 Like

I have run or helped run several distributed sprints/hack days/hack weeks - here are some things that help.

  • Try to use the tools folks already use – don’t make people get used to several new things simultaneously, if you can help it.
  • Prep for discoverability – participants need to know who’s working on what so they can work together. But this is harder to serendipitously find out remotely. And some participants are reluctant to commit to a project ahead of time, or forget to update any central board/wiki page/doc as they work. So:
    • if you can, come to a rough consensus at least a few days before the event, agreeing on a few goals you want to achieve, and getting a few people to step up as topic leads; those topic leads should set up some spaces (Zulip threads, videocall rooms, etc., whatever seems good to them) for work on those topics
    • privately, give participants a list of other participants at least a few days ahead of time
    • set up some kind of easy-to-edit central collaborative notes/links/tasks document with a schedule and notes broken up by days, where it’s easy to jump to the section about a particular day (Google Docs or something like it)
    • if a voice or IRC/Zulip conversation gets to where people are making decisions or sharing key info, have a notetaker put notes in that central doc
    • each day, not in a big meeting but as a series of quick small conversations, have a person check in on what everyone’s working on, and take some brief notes and put them in that central document
  • Two big (short) all-hands meetings: kickoff and sendoff – If people trickle in at the start and out at the end without a clear start and end to the sprint, then participants miss opportunities to catch each other, feel less connected, and miss logistical reminders. So: schedule a simultaneous all-hands chat for the kickoff (probably 10 minutes on logistics and 10 minutes summarizing what teams are working on what), and a call for the end of the last day (20 minutes on accomplishments and next steps).
  • Give people a way to announce topic discussion breakouts – as people work, they figure out stuff they want to iron out and talk about. This is usually emergent and spontaneous, and its momentum is not amenable to “wait wait let’s do this when [person] can be here”. So give folks a way to announce “we’re having a conversation about [topic] right now in [place]” so that everyone hears about it and has a chance to join in. The @channel mention in Zulip, for instance, notifies all participants in that channel.
  • Schedule some optional unstructured chat/social time – Ahead of time, schedule a few 60-90-minute open discussion times with no particular topics, and a few open discussion times with fun social topics for a bit of social bonding. Spread these out among the timezones if you can.
5 Likes

For myself, the original dates Oct 19-23 still works. I’ve already blocked off the week and requested that week off from work.

1 Like

Thanks very much @sumanah for the list of suggestions you have here (which I didn’t quote). They all sounds like really good ones.

3 Likes

Hey folks - just reviving this thread since October will be here before we know it.

To recap:

  • It sounds like Oct 19-23 works for the majority.
  • Sumana provided some great tips in this thread.
  • Recently, several virtual sprints used Discord as a base platform and from the looks of it, may be a platform for y’all to consider!

Is there a core dev (or two) interested in organizing the virtual sprints? I am happy to help with all organizational aspects!

1 Like

I can help organizing but don’t want to be the only one doing it :slight_smile:

1 Like

+1 for usage of Discord as a platform for the sprints. It’s incredibly easy to set up minimalist servers for hosting events, and Discord works very well across a wide variety of operating systems (unlike some other chat platforms). I’ve personally used it extensively for various hobbies and different programming groups, including Python Discord. I’m sure that some of the folks over there would be more than happy to help with setup or moderation tools!

Since this would be my first core dev sprint, I’m not sure what exactly it would involve from an organizational perspective, but I’d be glad to help in any way I can (as much as my available time permits).

2 Likes

Since it is sort of a new thing for all of us, I think we are all in the same boat regarding the unknowns! But I think between the three of us we can figure it out :smiley: I will ping you and Mariatta via an email thread to continue the discussion.

2 Likes