2020 Core Dev Sprint - virtual sprinting sessions

Hi everyone -

I hope everyone is safe and healthy!

Per 2020 Core Dev Sprint Location & Date here’s a new thread to see how we can determine virtual sprinting sessions for this year.

Considering timezones and family responsibilities, we could gather days and times of the week folks are most available. After that we can select the top 3 or so to test out for the first ever virtual sprinting sessions.

I can create a Doodle for core devs to fill out. If ya’ll have other preferred software to use for this, let me know.

4 Likes

Your plan sounds good! :smile:

Also, we learned some good lessons from the online-only language session that should help here. And if we meet one more time before the fall (a la a quarterly event) then we could iron out a few more kinks before the core sprint in the fall.

3 Likes

We could also try running these through something like Teams, which is a bit more persistent than a simple Zoom meeting (that is, we can leave it active for a week and have spaces to chat, or meet in smaller video groups, and schedule sessions where we want people to join).

The downside is it’s not totally free. Comes to probably $6/person/month plus admin effort (which I can help with, but don’t want to permanently own).

It’s also not quite as good for large video calls where everyone is chatting (gallery view doesn’t work the same as zoom), but once someone is sharing their screen it’s no different.

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