Rethinking React Knowledgeable
Tags: community, learning
Published: 2020-10-06 14:44:23

Last week marks the second full year for me and [Ken Lee](twitter.com/kenleesm) to have run [React Knowledgeable](https://twitter.com/reknowledgeable), for Shopee and the local developer community combined. Altogether [we have 85 weeks at the back of our memory](https://github.com/Shopee/shopee-react-knowledgeable/issues?q=is%3Aissue+label%3Atalk). And, unexpectedly or not, at this two year mark, we've decided to change it to something completely different, project code `rk-next`.

There are a few causes that could seem quite obvious:

- the conference / meetup scene is significantly disturbed by the COVID-19 situation this year
- as most of us are working from home semi-regularly, we interact with each other much less that used to inspire many thoughts and ideas for sharing
- this could be personal but I feel it is overall more stressful to work from home and alone, and therefore less willing to prepare a sharing

Although, if only for the reasons above, there are ways other than a radical reform to adapt to the situation. For example, we could fallback to the luckydraw system. Or, we could drop the frequency. We could even pause for longer until things start to recuperate.

But, there are also a few more reasons that pushed me to rethink RK at this time:

Now that we have a much larger team, how much participation does each of us get, if we continue to run it as a weekly sharing where 1 person gets the podium? And more practically, do myself and Ken have enough capacity to run it, if we keep scaling it up?

What do we really want to get out of a weekly sharing? What do we want on a deeper level? Can RK help the true cause in any other format that fits the current situation better?

# Rethinking RK

At this two-year mark, I'll share those questions I've been thinking of for the past two months, and invite those of you who are in the loop of RK, to join me for a bit of discussion on what we just started recently -- _RK in Rosters_, where we break into small and private groups, and commit to the roster for a fixed period of time. The rosters are proposed and run by some of us who will take the lead and say, "let's do this." Despite how semi-well-thought-of it seems right now, please still question it, experiment with it, and most importantly, feel if and how you'd like it to be a part of your weekly routine, at least for the time being. Exactly like two years ago we're creating something completely original of our own, and so everyone of us may take a part of it and have the power of shaping it to something you want.

## Do we want to keep scaling up like a conference, or do we want a smaller learning group?

This is a pseudo question. The RK in Roster proposal is our answer to this question already, but let me still share why.

The moment I realize our audience size as it is intended for, it was a near instant signal that we need something different. Before we even called it RK, the best team weekly I had been part of was the "this week I learned" section that used to occupy the current RK hour, for:

- it was the most relaxing hour of the week
- we were comfortable with one another in the team
- it was a very good recap of the week, a raincheck that we're learning, an opportunity to revisit the problem and sharpen the understanding

Now that our audience size is reaching a mini conference, it deviates so far away from the original, cozy, relaxed and content-focused sharing podium, that I had to re-start the same initiative within a 4-person team that I had the brief fortune to lead, for the past few months. Then, as one of the organizers for RK I'd ask, can I bring the similar experience back?

## Should it be topic-based or people-based?

I've been with Shopee for close to 4 years now. There are many people who I have worked with and enjoyed the accompany with. The 6 people in my original team are working in different teams / groups now. But I still want to be in close proximity with them and would like to occasionally catch up to see what each other is working on.

I find RK fits a right scope for the right time for this. Developers from our few front end teams don't work with each other on a daily basis. Within RK's scope, but cross each of our feature line teams and groups, why don't we give our ourselves a cause to regularly and semi-casually catch up with one another, especially with those who we don't directly work with, and together work on or share front end things.

That's why, at the back of my mind, I really want people to group up based on who you enjoy the talking with. It's a mindset shift. I observe that now people are hosting and joining groups mainly based on topics. They're very attractive, especially before we know each other so well to have some blind faith, topics are the only tangible cause for people to decide to join. On the flip side, I really want to propose that we run some more relaxed, people-based groups that don't set a specific topic. We come in and see what other people are working on lately and let ideas flow.

Some of the rosters now are assignment-based. They're very interesting. We send out a goal / assignment at the beginning of each week, and we find our own time to explore a bit about it, and we come back at the end of the week for a discussion. In essence it's still based on a topic but we call for more participation by inviting you to work on something.

What's your preference?

## What's the learning process that RK should highlight?

Learning and exploring is a popular initiative in our industry. But to me and my perspectives on RK, I think the learning process should not narrowly focus on the mere intake of new technology from other people.

The Shopee app that we are collectively building has many enough questions to push us to see how other people are solving similar problems, decide whether they will solve our problems, and come up with our own solutions when necessary. This sometimes is happening on a very significant level, like some of us are building some very complex systems to make pieces of our code function together. But note that it certainly happens on a micro level and the major renovation is an iterative process of explorations, trials and errors, asking questions, asking better questions, attempting to answer them, and revisiting and recapitulating.

```js
function iterate() {
  explore();
  trialAndError();
  askQuestion();
  try {
    answerQuestion();
  } catch {
    console.log('oops, wrong liao');
  }
  recapitulate();
  iterate();
}
```

Previously, RK participates at the very end of this process. _After_ you learned something, we encourage you to share your thoughts. Today, RK takes a step forward and invites you to take part of this messy, uncertain, and only sometimes rewarding process, one where we urge you to bake into your weekly routine to look back and see if you've put your minds on something worth mentioning, even just to yourself, over the past week.

# How it works

We host _RK in Rosters_ in terms of 8 weeks. Each term, you may either host or join a roster. We will intermittently run one or two community events when we invite everyone back for a to share our progresses thoughts, and we go back to the regular term sessions.

## What RK asks of you

There are only two things that we (sort of) require that you do:

One, **participate non trivially**. In the old RK, speakers prepare sharing topics and audiences sit back and listen. This is not interesting (enough), if you haven't realized, by giving a sharing yourself.

Two, **commit to your same group of people for the whole duration of each term**.

And in return, RK allows you to switch around with no strings attached, by running all rosters _in terms of 8 weeks_. If there's anything you don't enjoy, you realize you hate someone, etc., note that it'll end in 8 weeks. And if you really enjoy what your roster is doing, great, you can make it happen again in the next term.

# What this really is

...is that we are developers who love to explore, and among us a few would like to take the responsibilities to lead a direction. RK sets the game rule, but it's pointless if not for the hosts who will lead the experience, and for the participants who find it meaningful.

# FAQs

**If I host a roster, does that mean I forever cannot join other rosters?**

You can choose to host your rosters at alternating terms. Or, you can help someone in your roster to become a future host :)

**I'm really interested in this topic, but I am unsure about the commitment it takes to join**

Please don't let this stop you from joining. We understand that each of us has work commitments that should take priorities and the roster hosts won't judge you for not making progresses on occasional weeks.

**Will there be a roster on X?**

Please start one :) We'll help you get started with hosting

**Will there be no regular RKs anymore T_T?**

We'll host joint events at a longer interval, monthly or every two months.

**Will joint events take only roster sharing topic?**

No, please still submit sharing if you have anything outside of your roster (or if you're not in any roster) that you want to share.

**Is it internal T_T?**

For the time being, the Rosters are internal. If you like the idea, there are other initiatives that share some similar thoughts, such as the [KCD Learning Clubs](https://kentcdodds.com/clubs/) (thanks [@lihautan](https://twitter.com/lihautan) for referring). If ours work well, we might see how we can help build similar things in the local community.

The community events _will be_ open to the public.