vFOSS exists to create believers in open source. Unfortunately, open source contribution can be discouraging for unguided newcomers. Even clean, well-organized code is complex, and gaining the requisite knowledge to fix a seemingly trivial issue can take hours. New contributors have to struggle through those hours while also staving off a continual stream of doubts about their ability: “What if I can’t ever understand this? What if I propose a stupid change? Shouldn’t I be working on something easier?” In those critical moments, newcomers might decide to give up, believing that open source contribution is too hard. vFOSS can prevent that kind of discouragement by allowing people to experience the rewards of contributing without having to face the difficulties.
At first glance, it might seem most welcoming to introduce open source through easy experiences such as creating an open source personal project or using Linux. While both of those objectives are good goals, they miss the true point of open source. A personal project does not involve any interaction with the broader open source community until it becomes widely used, which might never even happen. For that reason, strictly personal projects are the purview of a general coding club. Similarly, although increasing use of Linux is within the goals of the club, vFOSS is not merely a Linux User Group. The lifeblood of open source is contribution, so for a programmer, truly participating in open source must involve contributing. In order for vFOSS to portray the core tenets of open source, it must help people contribute.
Contribution is not just central to open source; it is open source’s most attractive feature. Contribution teaches software engineering skills essential for working on large scale projects, such as navigating a large codebase, using version control, collaborating with others, and writing production quality code. Perhaps more exciting is getting code merged, which comes with the satisfaction of knowing a project maintainer wants to use your code and include it in the next release to hundreds or even thousands of users. That feeling of accomplishment is one of the best parts about coding.
How can vFOSS help people experience the satisfaction of contribution without subjecting them to potential discouragement? First, leaders must be well acquainted with open source projects themselves. This may seem obvious, but it can be hard to achieve. A leader must overcome the hurdle of investing a large amount of time in a project in order to develop a working understanding of a codebase. Familiarity makes fixing issues much easier, and especially in a dynamic project, it uncovers areas of code in need of improvement. A knowledgeable leader will be qualified to help a new member contribute successfully, having already overcome the most discouraging parts of contributing.
Second, vFOSS must provide individual mentorship. A room full of über-nerds hacking away at their laptops can be intimidating, especially to a newcomer feeling uncertainty about their abilities. But if one of the aforementioned über-nerds can help a newcomer one-on-one, that newcomer no longer has to meet open source on their own. A mentor can quiet doubts about ability and demonstrate contribution is achievable: “I understand this codebase, and I can point you to exactly what you need to know. I’m confident this project matches your skillset, because I can help you contribute in an hour.” A one-on-one introduction eliminates intimidation, and it can allow someone to feel the excitement of getting code merged after attending just one meeting. If vFOSS allows every newcomer to experience that satisfaction, it will be fulfilling its purpose of encouraging lifelong supporters of FOSS.
- To contribute to open source software:
- By filing issues, writing bug fixes, and implementing new features.
- By maintaining existing open-source packages.
- By developing and releasing new software under open source licenses.
- To educate about open source software:
- By teaching users how to install Linux.
- By teaching users Linux usage such as command line.
- By organizing events that explain the open source development model.
- To support the use of open source software at Vanderbilt:
- By providing help for Linux users.
- By promoting support for Linux by Vanderbilt faculty and administration.
Attendance at events is open to anyone who wants to contribute to the goals of the club. Active members must attend at least half of regular meetings and be Vanderbilt students, faculty, or staff.
Club meetings will be held once a week. Special events will be organized to increase the visibility of open source and further the purposes of the club.
The club will be headed by a president, vice president, treasurer, and secretary. Their duties will be as follows:
- Benevolent Dictator For the Year (President) - plan officer meetings, club meetings, and events.
- Vice President - hold officers and mentors accountable to fulfilling their roles. The vice president may approve a request to miss an otherwise mandatory event if a serious conflict arises.
- Treasurer - manage club funds.
- Secretary - track attendance and manage club communication, social media, and website.
Officer meetings will be held once a week, although the president may choose to hold meetings less often at his/her discretion. All officers will be expected to attend.
Officers must attend all general club meetings. They must come prepared with a specific project they can help a new member start contributing to, and they must spend time during meetings either helping someone else or working on that project themself.
Elections will be held at the end of each academic year. Any active member may run for any position, but a member may hold at most one position at a time. Any active member may vote, and whoever receives the most votes may choose to accept the position. If the same person wins multiple positions, a re-vote will be taken for the position they do not accept. Outgoing officers may choose to reject one candidate by unanimous agreement and offer a position to the candidate with the next greatest amount of votes.
Mentors will assist officers in running weekly meetings. In order to become a mentor, a candidate must have performed a Linux install, know basic command line, and have a pull request or patch approved to an open source project they do not own. Mentors should be prepared to help attendees learn how to perform these three tasks.
Mentors must attend all general club meetings. They must come prepared with a specific project they can help a new member start contributing to, and they must spend time during meetings either helping someone else or working on that project themself.
Officers must approve all mentors, but they may relax the requirements and approve a mentor by unanimous approval.
Any changes to the constitution can be made by unanimous approval of the officers or by approval of three out of four officers and half of active members.