VS Code’s Community Architecture

VS Code’s Background

History

Microsoft released the first version of Visual Studio in 1997. Visual Studio had two editions: Studio Professional and Visual Studio Enterprise. During this era, Visual Studio was packaged on CDs. It supported Java, InterDev (a tool for developing websites), and the Microsoft Developer Network library in one integrated development environment (IDE). Visual Studio 97 was Microsoft’s first attempt at using the same IDE for multiple languages. Visual studio also had a bundle that included C++, Visual Basic, and Visual FoxPro, but each extra feature had a separate IDE.Visual Studio was, and still is, a very heavy program, and it takes a while to run. However, some developers—that were not affiliated with Microsoft—had hopes of simplifying the development process without the use of heavy IDEs like Visual Studio. 

According to an interview with Steven Van Eycken, one of the original developers of Visual Studio Code (VS Code), VS Code transpired when a group of developers began to wonder what would happen if software development was done in the browser. Their hope was that software development would be faster, simpler, and language agnostic. Microsoft ended up funding the project, and VS Code was born. VS Code’s initial release was on April 29, 2015.

As of March 7th, 2021, its latest stable release (version 1.54.1) was on March 5, 2021; the last commit to VS Code on GitHub was on March 6th at 1:05 AM by Jackson Kearl, and it updated a test file. 

Today, Visual Studio and VS Code exist as separate programs with different developers and licenses. However, it is a common misconception that they are the same program. Put simply, the difference between Visual Studio and VS Code is that VS Code is an editor while Visual Studio is an IDE.

Krisztián Balla on StackOverflow


Visual Studio (full version) is a “full-featured” and “convenient” development environment.

Visual Studio (free “Express” versions – only until 2017) are feature-centered and simplified versions of the full version. Feature-centered meaning that there are different versions (Visual Studio Web Developer, Visual Studio C#, etc.) depending on your goal.

Visual Studio (free Community edition – since 2015) is a simplified version of the full version and replaces the separated express editions used before 2015.Visual Studio Code (VSCode) is a cross-platform (Linux, Mac OS, Windows) editor that can be extended with plugins to your needs.


Read more here: Visual Studio Code vs. Visual Studio: How to choose by Martin Heller

The latest edition of Visual Studio—Visual Studio 2019 (Dev16)—was released April 2, 2019. The latest update is 16.9.0, and it was released on March 2, 2021. The end-of-support date for Visual Studio 2019 has not been determined. However, most Visual Studio editions are supported ten to eleven years after the initial release.

Leadership and Team Structure

Core team turnover

Jay Schmelzer is the Director of Program Management for Microsoft’s Visual Studio Team.

VS Code’s top contributors have remained consistent over time. This is likely due to the fact that the top contributors are core members of Microsoft’s VS Code team and therefore keeping their positions for long periods. 

Who has the highest amount of unique knowledge as per the git-by-a-bus report?

Benjamin Pasero and Johannes Rieken likely have the most unique knowledge. They are some of VS Code’s oldest contributors and contribute the most frequently. 

Commit access and patch approval

Commit access for VS Code is exclusive to employees at Microsoft.

Quality control and bug repair

Anyone can submit bug reports to VS Code’s GitHub issue tracker. Members of Microsoft review the code and assign a team member to address the issue.

Front-end and back-end support

Currently, VS Code is back-end heavy. VS Code uses a minimum viable project user interface design pattern with the Monaco Editor. Using this information, one can assume that the front-end and back-end developers are the same people, as many of the contributors have remained the same and this design requires minimum work.

Stability

Calloway Coefficient of Fail

VS Code gained fifteen points of failure due to not having a mailing list. According to the Calloway Coefficient of Fail, this would point to “you are probably doing okay, but you could be doing better.” However, it is important to note that VS Code may not need a mailing list because there are many avenues of communication, such as their website, an RSS feed, social media, etc.

Major issues

VS Code has no publicly documented cases of major issues on GitHub. VS Code does have a running list of publicly accessible issues (~4,500 open, ~102,000 closed as of writing).

Participation trends

Over the past three years, commits to VS Code have been up by four percent, issues created by seventeen percent, and issues closed by fifteen percent (via the git-by-a-bus report from Cauldron). This upwards trend in participation could be due to the fact that VS Code is becoming increasingly popular, which would attract more participation.

What if the most active contributor was hit by a bus?

Why hit by a bus? Learn more here.

VS Code would survive if the most active contributor was hit by a bus. In fact, the most active contributor, Benjamin Pasero, is closely followed in contributions by a few other people, so his role would be easily filled. Additionally, Microsoft funds and maintains VS Code. In other words, VS Code will stick-around unless Microsoft cuts their funding.

What if the core team was hit by a bus?

If VS Code’s core team was hit by a bus, it would be a detriment to the project, but it would still survive. After the first twenty percent of the most active contributors, contributions are significantly less. However, Microsoft, a large corporation, funds and maintains VS Code. Additionally, VS Code has a massive user base. Therefore, it is unlikely that Microsoft would let the project die. There is also a large pool of untapped developers. According to the the Git-by-a-bus report, there are ~1100 active contributors; around ~70 are active at any given time.

Onboarding and Support

VS Code’s lack of support for newbies

In many regards, VS Code is not a traditional or friendly open source community. Although they provide lots of documentation and support, new contributors do not get the opportunity to find mentors, or socialize with other contributors. For example, VS Code does not have an official onboarding process. VS Code does, however, have text and video-based tutorials on how to contribute to VS Code; the tutorials include how to write bug reports and submit feature requests. 

This could be because Microsoft is a large, for-profit company that hires full-time employees to work on the development of VS Code. Since Microsoft has lots of ‘secret’ and or proprietary projects, intermingling with enthusiastic users or new contributors does not make much sense. Any leakage of information could reduce profits for Microsoft, and damage their reputation as a company. 

In contrast, fully open-source projects like Debian, use volunteers and do not have massive amounts of funding. As a result, onboarding and contributor enthusiasm is crucial for the Debian project to succeed. 

Documentation

VS Code has extensive documentation in text and video format. The documentation includes how to set up VS Code and popular features. It also includes code examples, how-tos, and a few extension installs. Since VS Code allows non-affiliated developers to create add-ons and themes, the support for add-ons varies substantially. 

Although VS Code supports multiple languages, finding documentation in languages other than English is difficult. Most of VS Code’s documentation is available in English. 

Where can new contributors get help?

Unlike other major open source projects, like Debian, VS Code cannot support contributors who do not speak English. In fact, the Discussion Etiquette portion of VS Code’s contributor guide states that “in order to keep the conversation clear and transparent, please limit discussion to English and keep things on topic with the issue.” 

The VS Code project website links “Ask Questions” to StackOverflow, and links to GitHub if there is a bug or a more serious issue. VS Code developers do not have a substantial outside community when it comes to the development of VS Code itself. The creators of add-ons, however, sometimes link to their twitter account, email or Medium blog. It appears that VS Code developers at Microsoft have intentionally closed off the official VS Code community at Microsoft. This could be because interaction with the general public slows down development, or Microsoft’s value.
To get in contact with the VS Code community in general, Gitter is their main form of communication. They also have a Slack, but this is a secondary form of communication.

Code of conduct and contributor license agreements

Microsoft has a plethora of contributor license agreements (CLA), and codes of conduct documents. Since Microsoft is a large company that makes both proprietary software and open source software, Microsoft uses a complex set up of licenses, so they can maximize profit while providing effective products and services. 

VS Code, on the other hand, only has one CLA, and does not have a code of conduct. In addition, VS Code’s parent program, Visual Studio, is built on open source, but is proprietary.

Summing Up

VS Code’s decision-making process

VS Code’s decision-making process is hierarchical. A group of overseers make decisions, and the developers implement those decisions. Developers and users can also make feature requests, which the overseers may request the developers to add in.

Is VS Code a toy, group, federation or stadium?

VS Code is a stadium project because it has high user growth, but low contributor growth.

Who should, if anyone, contribute to VS Code?

Microsoft runs VS Code. As a result, we recommend this project for industry professionals since Microsoft expects high quality code.

VS Code Links:


Like Community Analyses?

Read more: An Analysis of Debian’s Community Architecture and An Analysis of FarmBot’s Community Architecture.


Written by Olivia Gallucci, Justin Nauta, Mark Shaw, and Bryan Xue.

The original post is located on the HFOSS blog.