2i2c-org / team-compass

Organizational strategy, structure, policy, and practices across 2i2c.
https://compass.2i2c.org
4 stars 13 forks source link

Add a regular asynchronous team check-in #259

Open choldgraf opened 2 years ago

choldgraf commented 2 years ago

Description

Now that we've merged to two-week sprint cycles as part of https://github.com/2i2c-org/team-compass/issues/182, it might be helpful for us to have a lightweight way for us to check-in with one another throughout the week. In a team meeting, there was interest in trying out an asynchronous team check-in process. It would have the following goals:

In addition, it'd have these constraints:

Value / benefit

Having a practice like this will make it easier for us to signal to one another what we're up to throughout the week, since we have less time to speak with one another face-to-face in our planning. Having a lightweight check-in process will help us accomplish the goals in the description above.

Implementation details

In our meeting we had discussed something like a check-in every couple of days, but after thinking about it a bit, I think it might be the easiest if we just try to adopt something that is daily on weekdays. I think having it each day will make it more likely to just become a habit, and will also force us to keep the process lightweight enough that it does not feel like a chore to carry it out.

So I propose that we do the following:

That's it!

In 2 months, I think that we should re-discuss this and answer the following questions:

Tasks to complete

- [x] Iterate on the plan above if others have feedback
- [x] No objections to the plan above
- [x] Try out this practice for 2 months
- [x] Discuss in December 2021
- [x] Switch to using only Slack for the check-ins
- [ ] Create a quick way to aggregate our Slack updates and post them publicly
- [ ] Understand why we have a drop in responses and decide what to do about it https://github.com/2i2c-org/team-compass/issues/259#issuecomment-1531194231

Updates

2021-10-04 - Updated the proposal above with a new cadence

(see https://github.com/2i2c-org/team-compass/issues/259#issuecomment-933884622)

2022-01-10 - Switch to Slack-only updates

In general the team like the Slack bot updates, so we've decided to switch exclusively to those. The main concern about this was that our work would be less public in general, so we agreed to find a way to "summarize" and share our activity over some longer period of time. Updated the tasks above with these new changes.

damianavila commented 2 years ago

Overall +1 although...

Is a daily stand-up too frequent, or should we scale it back a bit (e.g., MWF)?

I will start with that frequency instead of the daily one. I have the "feeling" a daily standup would usually be just a "copy-paste yesterday (because I am still fighting this 😜 )".

sgibson91 commented 2 years ago

Ooof, yeah - daily sounds like a lot. I was expecting this check-in to be in the off-weeks from the sprint planning meeting as we don't want people to be waiting til that meeting to raise concerns.

damianavila commented 2 years ago

Yep, I concur with the off-week check-point. Even more when we have already have a weekly Monday sync.

Without that one (Mon sync), I would probably see something the following ones:

  1. Sprint meeting
  2. Next Monday
  3. Off week checkpoint
  4. Next next Monday

like a good cadence since we would have "syncs" every 2-3 days.

choldgraf commented 2 years ago

Thanks for the feedback - it sounds like daily is too much for folks. A couple quick thoughts:

My main concern w/ infrequent check-ins is that this should become a habit - it should be quick and low-effort and something that you just "expect" to happen. It shouldn't take longer to accomplish than brushing your teeth. I worry if it doesn't happen semi-regularly then it'll be more likely that people will forget to respond, or that they'll feel the need to report on a bunch of stuff and it'll take longer to do.

I also don't imagine (in its current form) that this would replace the Monday check-ins. In my experience, those require more effort because I have to track down issues etc. People often posts lists of multiple issues in those responses. For these check-ins, I imagine them being much shorter. Maybe like 1 sentence per question and at-most 2 links to issues per response, something like that.

I also don't think that our sprint planning is the same as these kinds of team reports. The Sprint Planning meeting should be a planning meeting, not a team sync meeting. I think if we spend more time sharing context in these regular check-ins, we can focus that meeting more on the "next steps and discussion" and less on "what have you been up to".

Proposal

How about we go with Tuesday and Thursday for these check-ins? In December if we decide to replace the Monday weekly syncs with this, then we could switch to M/W/F instead of Tu/Thu. Would that work?

damianavila commented 2 years ago

How about we go with Tuesday and Thursday for these check-ins?

I would be OK with that. Some caveats (because sometimes, well maybe usually 😜 , I am an annoying person):

choldgraf commented 2 years ago

Another proposal :-)

@damianavila et al How about:

Wednesday and Friday, but not the wednesday of our sprint planning meeting. AKA, "every Friday, and every other Wednesday".

If we replace with the Monday team syncs with this in December, then we just switch to M / W / F and skip the update for Wednesdays where we have sprint planning.

Is that better?

sgibson91 commented 2 years ago

Some caveats (because sometimes, well maybe usually 😜 , I am an annoying person):

FYI, I appreciate you thinking about the failure modes and why this may become a chore as opposed to the habit Chris is aiming for.

Wednesday and Friday, but not the wednesday of our sprint planning meeting. AKA, "every Friday, and every other Wednesday".

This sounds like a good place to start to me.

If we replace with the Monday team syncs with this in December

One of the things I like about the team sync is its transparency. Those issues happen in a public repo that anyone could look at and see how we organise ourselves and support each other. And I think we'd lose some of that if we replaced that with a slack check-in.

damianavila commented 2 years ago

Is that better?

Yep!

FYI, I appreciate you thinking about the failure modes and why this may become a chore as opposed to the habit Chris is aiming for.

Thanks!

One of the things I like about the team sync is its transparency.

That's a very good point!

choldgraf commented 2 years ago

OK cool - let's go with the proposal I've described above unless another team member suggests a change. I'll try it out with a Slack action tomorrow and we can see how weird it feels to have a bot talk to you on Slack πŸ˜…

I think that approach won't do it on a timezone-specific way, so I'll have the bot send out a ping to everybody on the tech team at 5pm India time on Wed, and we'll see how that goes :-)

choldgraf commented 2 years ago

I'm gonna consider this one done for now, but we can leave the issue open so that we loop back to it in a couple of months and decide how we like it (we can also make tweaks to this process if we want in the meantime, but probably don't need a dedicated issue for it :-) )

choldgraf commented 2 years ago

I'd love to hear thoughts from the @2i2c-org/tech-team about how this is going. What do people think about each of the three options below:

  1. Close this issue and stick with our current pattern of "github issue on Mondays, slack check-in on wednesdays/fridays".
  2. Use Slack updates for all team updates and stop using GitHub issues for team syncs. I've heard from some folks that they prefer Slack in general, so maybe we should just go with it?
  3. Make some other change and please note what you'd like to see below!
sgibson91 commented 2 years ago

Use Slack updates for all team updates and stop using GitHub issues for team syncs. I've heard from some folks that they prefer Slack in general, so maybe we should just go with it?

My only -1 on solely using Slack is that it is not as transparent (public) as the GitHub issues. I think we should have a discussion about how transparently/publicly posting updates fits in with 2i2c's values before we make a final decision.

damianavila commented 2 years ago

Yep... I would be also inclined to just use ONE tool (most likely Slack) for the sake of simplifying the UX at the time to report. I think we need to communicate what we do, but I am not still convinced the weekly GH report is granular-compatible with a 3rd party reader. I think a monthly blog post with condensed but linked information would be something better.

choldgraf commented 2 years ago

I think I agree with both of you - I share @sgibson91's value for transparency, but also see the value in just having a single tool / workflow rather than one tool on some days, and another tool on other days.

That said, I wonder if there is a better (more discoverable, higher signal-to-noise, etc) way to share out our activity publicly (e.g., a monthly "2i2c changelog"?) and then we can cleanly separate our "internal team coordination" practices from our "external communications and transparency" practices.

sgibson91 commented 2 years ago

I think scraping the bot responses over, say, a month to help compile a blog post could be a path forward (I say help compile as there may be irrelevant stuff in the responses for a blog post!)

choldgraf commented 2 years ago

That shouldn't be too hard to do. Shall we switch to slack check-ins on MWF and then experiment with ways to surface out activity publicly each month? Anyone object to that plan?

choldgraf commented 2 years ago

Update - switched to MWF

Per our conversation above, I've made these changes:

choldgraf commented 1 year ago

Team members seem to be using this less and less

I want to give another data point here, which to me suggests that we should adjust this practice somehow. I've noticed that team members are using this less and less frequently over the past few months. For example, if you count the average number of responses for each team member, it looks like this:

image

A heatmap plot that breaks it down by person suggests that only 1-3 people are regularly responding, and most others are not responding much at all[^1].

[^1]: Not showing this publicly because it makes it pretty easy to identify people based on the patterns there and my goal here is not to out individuals but instead describe team patterns.

I'm not sure what to do with this information but I wanted to record it here to share context. I'm not sure if people aren't responding because they find it too cumbersome, or not useful, or the questions aren't right, etc. But either way, folks don't seem to be engaging in this practice and it thus is likely not having the intended effect of sharing context and asking for help in an async way across the team.

edit: accidental close!

sgibson91 commented 1 year ago

I stopped responding to this because I was seconded to JupyterHub CSL work, but intended to re-engage upon my return.

yuvipanda commented 1 year ago

I stopped responding for about 2 months consistently because I was overwhelmed and out of it for other reasons, but am doing better now and engaging! So maybe it's a correlation of how good I'm feeling? :D

I do think the timing matters. Friday and Monday seem not the most useful days for this together?

sgibson91 commented 1 year ago

Maybe instead of a MWF cadence, we try a Tu&Th cadence? I feel much more confident articulating what I'm up to next on a Tuesday because I've spent Monday going through updates and seeing the rest of the team come online and what their priorities are/how it fits in with my priorities.

yuvipanda commented 1 year ago

YESSSSS TO @sgibson91

choldgraf commented 1 year ago

Just another few datapoints from other orgs.

Basecamp does:

From https://37signals.com/how-we-communicate/

Also some interesting discussion from a gitlab team here. Looks like they are reading some similar material as the Basecamp folks.

https://gitlab.com/gitlab-org/manage/foundations/team-tasks/-/issues/3

One thing I'm noting either way is that our standup has a lot more questions than most groups tend to use (which it seems is usually limited to 1-2 questions).

damianavila commented 1 year ago

For me, it is also a frequency matter, MWF is too much and M/F are particularly less useful. I would probably feel better with a T/T and even less: only a Wednesday update, a clear midpoint, so you can answer about things you did and things you will do, plus all the personal/social-related answers. Additionally, if we only have one weekly update, it might be interesting to have a bot command for personal/social impromptu stuff that I feel will be more frequent than once a week.

damianavila commented 1 year ago

Well... rethinking this one, probably a T/T is the minimal change we can come up (just update frequency) that I think will have a significant and measurable impact. So, maybe we try that for a few weeks and re-analyze?

yuvipanda commented 1 year ago

Yep, let's move to T/T and see where it goes

consideRatio commented 1 year ago

:+1: for a transition from MWF to TT!

choldgraf commented 1 year ago

Proposal for async updates

Thinking about the above suggestions, I wanted to propose something to try next.

My rationale here is that we want to build a more reliable team practice around team members reporting out what they're working on, and having these in dedicated questions will lower the barrier to doing so. I also think we should create a team expectation that everybody answers this question and everybody looks at one another's responses to provide async guidance.

To be honest, my initial feeling was that we should actually just follow a standard agile practice of doing the "3 questions" every single day. But I worry that if we already have challenges in response rate, this will be too much too quickly. However I'd suggest we consider increasing frequency if we feel that doing it on T/R results in team members feeling blocked and without guidance.

What do people think about this re-work?

sgibson91 commented 1 year ago

Whenever I'm asked what I've accomplished, all of the things I think of are never contextually relevant to the person asking. Quite often I'll feel the true answer is "nothing in particular" but will put something flippant to appear like I'm participating. Maybe just "what have you done?" which feels more factual than framing it as an accomplishment because, hey, as human beings our purpose on this planet is not to be productive 24/7.

I also feel like the question "what will you work on next" is always a tricky one. Like, I could just answer that with "please see issues assigned to me on the current sprint board", or it might be "I don't know, I'm awaiting another sprint planning session". Or maybe I've completely nerdsniped myself into something totally unrelated.

I generally think these kind of agile practices are really difficult to participate in if you're not feeling proud/excited to share or are unclear on what you're supposed to be doing, as alluded to by Yuvi above. And yes those scenarios need to be surfaced and addressed - but declaring that to a bot which puts them out into the ether for someone to maybe notice doesn't always feel great?

jmunroe commented 1 year ago

Regular (biweekly) check-in make sense to me only if there is a sprint ongoing and significant progress day to day is anticipated. When a team member has been working on issue but it not completed (state the accomplishment!) or blocked (ask for helped) but just in that middling state of "working on it" it feels odd to write that out.

Is the stand up really more on where we are are on particular open issues assigned to us? I'm torn on requiring writing regular status updates -- if I need to be creative and come up with a nice way to summarizing what have done/currently doing, there is a self-doubt on exactly what to put down. If we make it too formulaic and focused solely on issues progress update that is already encoded in issues isn't that just busy work?

choldgraf commented 1 year ago

I really appreciate this feedback - thanks for being honest about how these kinds of practices may be counter-productive or even discouraging. We should be thoughtful about the practices that we commit to and make sure they will have the effects that we want.

My feeling is that figuring out the right mechanisms for check-ins and accountability is important, but it a complex topic to get right and it's not the right moment to make a significant switch in those practices right now. We're already changing other aspects of our process around goals and strategic planning, so let's focus on that for now, and revisit conversations about asynchronous team practices over the coming weeks, perhaps as part of retrospectives.

damianavila commented 1 year ago

FYI, I am updated the Geekbot to accommodate the stand-down process described in the new sprint workflow (as a new Tue/Wed/Thu Geekbot workflow) and edited the current team sync to only contain the "more general questions" to be asked only on Monday mornings. Let's see how that work for a few weeks!

haroldcampbell commented 7 months ago

I’d like to resume conversations regarding the current use of the Geekbot for stand-downs and compare that with the purpose of Basecamp's process listed above.

Why

We need to improve our asynchronous mechanism for coordinating work.

How

Shift from bot prompted update in the team-updates to team-specific channels

Context

We are a remote first organisation with a small group of people who are:

Coordination is important to get work done and there is a fair amount of conversations that happen in various places: email, slack, github issues, various documents, huddles, real-time conversations, etc. We also use github project boards to track the work that we do (via issues).

We use Geekbot to ask:

Opportunity & Proposal

Currently, we have a high WIP and many of these are reactive tasks. When we talk about each day of work (framed by "what did you work on today") those posts aren't conversations and don't seem to invite conversations (async or otherwise) about delivery, our teams' progress (i.e. Engineering, Partnership, etc.).

There is an opportunity for us to review how we use Geekbot. Specifically, I'd like to suggest that:

Thanks to @consideRatio for his feedback on this.

aprilmj commented 7 months ago

Interesting! Based on your description, I imagine that each day's Slack looks something like:

Engineering -

Other teams are smaller - so would Partnerships or Product look the same? I'm assuming that, as we do today, each team's channel is open for members of other teams to join & either follow or help out.

yuvipanda commented 7 months ago

I'm happy to give any changes a wholehearted try.

A question is whether participation in this is required, given it helps not just you but others in the team. I think it's important to have specific guidelines around this. What are your thoughts on that, @aprilmj and @haroldcampbell?

aprilmj commented 7 months ago

"Required" sounds like something someone else makes you do, and I think of team interaction changes as something everyone needs to agree to wholeheartedly try for a certain time. If the new approach works and fills a need, its existence becomes a social pressure.

(not to make this a semantic argument - agreed vs. required feel like very different vibes to me, but they may feel the same to others)

choldgraf commented 7 months ago

A few quick thoughts from me:

haroldcampbell commented 7 months ago

Following up with a few additional thoughts:

@choldgraf In the context of the Engineering team, are you implying two different subteams (Americas vs Europe) for example? Or did you mean something else?

haroldcampbell commented 6 months ago

[won't fix] @choldgraf and @aprilmj I'm going to put this on hold for the moment. There isn't an appetite from the teams to change their ways of working to have these types of check-ins.