Question to the members of the Core Team

Hi, I am part of a group of students for the Software Architecture course at the TU Delft university. We are tasked with analyzing some large, popular, successful open source projects on GitHub. Our team is doing the Vue.js project.

My question is simple, I hope. Most members have a “Core Focus” on the meet the team page. Are the areas of focus something that came about organically, i.e. the components you find yourself working on and knowing about the most? Are there any expectations coupled to having a core focus?

The reason why I ask is that our supervisor disagrees with our statement that the “core development team is decentralized and is not broken down into clear responsibilities”. To me this “core focus” is an after-the-fact label and does not bind any member to a specific task or responsibility or places expectations on the work done by the member. Therefore we chose to downplay the “core focus” as something that is not binding and we do not expect any Vue.js work being handed down through a hierarchy. In fact, other than Evan You being at the top, we think the Vue.js hierarchy is completely flat. Is this correct, or is there a little bit more to it?

Would you also be willing to give a short outline how the Vue.js core development team distributes the work, operates and works on the project in general?

Thank you in advance!

@LinusBorg

You are pretty much spot on with your assumptions - we are organized absolutely flat, and there are no strictly defined expectations about what amount of time and work has to be put into which area.

It’s probably best understood when looking at how the core team came to be:

When Vue 1.0 was released, Evan was still working on the project on his own - oif course there were PRs from some people, but ther was no core team at all.

But work quickly grew after the 1.0 release gained some traction and the userbase grew. So Evan went ahead and simply invited people he saw contributing regularly, weither it was PRs, issue triaging or (as in my case) community work in e.g. the forum, into a slack and asked if they were willing to help out with whatever time they were willing to spare.

After a while, we just had an informal discussion online where people volunteered to take a lead on one or two repositories - or none at all. There was and is no pressure to maintain at least one repo or something, no formal assignment process, nor do you have to “apply” to the core team - if you contribute, you get a slack invite after some time if you seem to be a good fit.

Right around the same time, Evan launched his patreon and quickly gained enough support to work on Vue full-time which leads to the current “setup”.

  • Evan works on the core and some support libs. He discusses new ideas for features with us internally, and asks who is up to work in X or Y - he works on the (big) “rest” with his fully-time capacity.
  • Some other core team members work as lead or normal contributors on the “core-extensions” - router, loader, vuex. Those are still released by Evan (as its necessary for someone to hold the big picture of all the core-related libs together), but PR discussion, issue triaging, work on new features etc. comes largely from others (Well, exceptions to the rule exist: Evan just re-wrote vue-loader from scratch for v15 in like a week :sweat_smile:)
  • Some supporting libs like vue-fire or rollup-plugin-vue were trandferred to the vue organisation by their original creators and those are worked on completely independently, Evan isn’t really involved.
  • Docs: While Evan wrote the initial version of the docs, which back then were already highly praised, they are now maintained by Chris and Sarah, with many community contributions. Sarah, for example, joined specifically because she wanted to work on the docs, so that’s what she does.

It’s working well so far. Of course, since everyone picks their work freely, some things get left behind a bit now and then, but t the same time, if you try and force people to invest their free time into thing X even though they don’t feel comfortable working on it, you will probably hurt their commitment.

Apart from Evan, we do all of this for free and out of passion for the stuff we work on, so a strongly hierarchical “chain of command” and “project management” would feel to much like a “job” and not like the hobby that it really is.

5 Likes

Thank you very much! Lots of valuable information given here. Dare I say, worthy of a “History of Vue.js” documentation chapter?