Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pennlabs/constitution

The Penn Labs Constitution
https://github.com/pennlabs/constitution

Last synced: about 6 hours ago
JSON representation

The Penn Labs Constitution

Awesome Lists containing this project

README

        

# Penn Labs Constitution

**Created**: _August 14, 2011_

**Last modified**: _October 5th, 2020 ([see changelog](changelog.md))_

## Overview

**Mission Statement**: Improve the Penn community through high-quality, student-made technology, and educational
resources to enable student innovation.

**Scope**: To create, maintain, and distribute student-led projects that serve the needs of a vast
population within the undergraduate community. Foster and grow a community of passionate developers
and designers to achieve the stated objective.

## Commitments

### Diversity and Inclusion

We recognize that the best organizations reflect a diverse collection of backgrounds and experiences. In order to
best represent and serve the needs of the Penn community, Penn Labs should strive to cultivate a membership which reflects
the diversity on Penn's campus.

Additionally, as a well-respected organization within the student body, Penn Labs has a responsibility
to set an example when it comes to being inclusive within our organization and promoting diversity within
the larger Penn community. Penn Labs pledges to combat bias, support members from diverse backgrounds,
and work to make the recruitment process as fair and inclusive as possible.

### Open Source

Our products are built on Open Source Software (OSS). In order to give back to
the OSS community, Penn Labs should release all of their software under Open
Source licenses that allow those outside of Penn Labs to fork, modify and
improve our software.

Additionally, we commit to giving back to the OSS community by contributing to
projects that we use and being responsible stewards of Open Source projects.

## Organizational Structure

### Directors

Penn Labs will be led by two Directors, who set high-level direction, manage human resources, and
are generally the last word in internal decision-making, including recruitment and budget use.

The Directors will divide up work and responsibility at their discretion.

#### Responsibilities

- Run and manage General Body Meetings (GBMs)
- Oversee high-level project and technical direction.
- Attend UA, Advisory Board, and stakeholder meetings and generally be the point of contact for outside
organizations not directly involved in a Penn Labs product.
- Manage developer resources.
- Oversee the recruitment process.
- Manage the budget.
- Ensure smooth operations for members in terms of logistics, technical tools, and anything else that might
otherwise fall through the cracks (e.g., source control, listservs, funding, accounting, domains, hosting,
billing, etc.).

#### Continuity

When possible, Directors should serve staggered, one-year terms to ensure continuity in administration
and effective knowledge transfer. New Directors will be recommended by the outgoing Director
and continuing Director.

### Team Leads

Each cross-functional product team shall be led by one or two Team Leads who manage the day-to-day
development and maintenance of their product(s).

#### Responsibilities

- Run team meetings to supplement GBMs as necessary.
- With the Directors, set recruitment goals for their team.
- With the Directors and general team members, plan upcoming feature roadmap.
- Attend stakeholder meetings with or without the Directors and be the primary point of contact
for stakeholders on their product(s).
- Delegate work among individual members.
- Be the interface between Directors and individual members.
- Ensure proper project documentation, code review, and best practices.

#### Continuity

In consultation with current Directors, Team Leads will choose their successors and help with the
transition process.

### Other Leadership Roles

The Directors may, at their discretion, appoint other non-technical roles within Penn Labs, some of
which are outlined below.

### General Members

Penn Labs general members make up the bulk of the organization. They have various roles within
the organization, including but not limited to:

- _Developer_ writing code to build + maintain Penn Labs products.
- _Designer_ responsible for product mockups, marketing assets, UX, and user research.
- _Business Developer_ handling external relations, product management, and marketing for
a given project.

#### Responsibilities

Penn Labs is responsible for maintaining mission-critical applications for the Penn community.
Being a part of the Penn Labs community is a large responsibility as well as a
privilege with benefits, and general members are responsible for the following:

- Attend GBMs as well as any team-specific meetings, notifying their Team Lead of any expected
absences.
- Contribute to the success of the product team to which they are a part of.

## Compensation

Penn Labs is committed to fostering a community among its members and making sure they know that
their work is valued in the Penn community. In order to do this while maintaining the flexibility
to grow the organization, Penn Labs commits to spending the majority of its budget on items and
activities that directly engage and benefit its membership, including but not limited to:

- Educational resources (e.g. technical manuals, online courses)
- Team building retreat
- Meals at GBMs
- Subsidized apparel

## Stakeholders

### Penn Labs Advisory Board

The Penn Labs Advisory Board is intended to oversee the organization. Comprised of key stakeholders and
funding partners within the University administration, it will meet at least once every semester to
receive a progress report and approve ongoing and future Penn Labs activities. Though the board
will be compelled to meet synchronously as described, voting can be done online over e-mail.

#### Penn Labs Advisory Board Membership

- One Undergraduate Assembly representative, which will be designated as the UA President by default
with the option to delegate their voting rights to any Executive Board member of the UA.
- One representative from the Provost’s Office.
- One representative from OSA.
- One representative from ISC.
- One representative from the Office of the University Registrar.
- Penn Labs Directors will share a vote.
- Non-voting members:
- The Undergraduate Assembly Secretary or an Online Services Coordinator from the Undergraduate
Assembly if found necessary, charged with helping to set agendas, liaise with administrators, be
invested in Penn Labs’ success, etc.

## Funding Sources

Penn Labs receives a budget from the Undergraduate Assembly to be matched by the Provost’s
office for the school year.

Additionally, Penn Labs may enter into funding agreements with other groups and offices
associated with Penn, to be listed in [funding](funding.md).

## Operations and Organizational Responsibilities

The following section details the operation of Penn Labs as an organization, fleshing out
the mission statement. After a preamble on costs, it is split into two subsections:
the first on technical projects and the second on educational initiatives.

### Operational Costs

In addition to member benefits outlined above, Penn Labs will also provision a portion of its budget for
operational costs, including but not limited to:

- Server hosting costs
- Domain costs
- Tools and software to increase member productivity.

Any under-utilization of operational funds will be distributed into additional developer compensation
outlined above.

### Technical Projects

Since its founding, Penn Labs' primary goal has been to build, maintain, and provide services
to the Penn community through technology. This subsection outlines the process by which
projects are started and maintained.

#### Ongoing Maintenance

The ongoing maintenance of projects consists of the upkeep of existing projects to assure
continued success, and constantly striving to improve product fit with an ever-evolving
student body.

#### Project Generation Process

In addition to project maintenance, Penn Labs will work with stakeholders to generate and
execute project ideas. The project generation process consists of three steps: idea generation,
due diligence resulting in a proposal, and board ratification.

##### Idea Generation

Ideas will be generated by Penn Labs membership, working in concert with the Undergraduate
Assembly, Student Activities Council (SAC), and other student groups around campus to ensure
ideas are proposed which benefit a wide array of the student body.

##### Due Diligence

Ideas are examined and explored by the Penn Labs members and prepared
for presentation to the Penn Labs Advisory Board.

**Product**. If the project idea originates with a third party, then the directors will meet with
the idea proposers to lay out the list of product features and their priority. If the idea did not
originate with a group, then Penn Labs is responsible for providing such a feature list, taking into
account any relevant stakeholders.

**Technical**. The Penn Labs team will examine the feature list provided and determine the
technical feasibility of the features. In addition, they will make a rough assessment of the
potential implementation timeline and determine at a high level how they might be implemented.

**Logistical**. The Director(s) will identify any administrative, non-technical hurdles to
undertaking the project and meet with any relevant parties to determine their feasibility. This
includes, but is not limited to, the Provost’s Office, relevant UA members, ISC, and other
administrators.

##### Product Acquisition

Projects may be created by independent students who approach Penn Labs to ensure the continuity
of their contributions to the Penn community. Penn Labs has the prerogative to take on these
projects similar to how new projects are initiated.

These existing projects should have already proven their utility to the Penn community, but Penn Labs shall
perform due diligence in a similar manner to when generating new ideas.

##### Project Approval

The board meets after the due diligence process and before general availability
to consider project proposals, which should include the name, scope of the project,
logistical requirements as outlined above, and the proposed student benefit of the project.
Penn Labs presents the proposed project and feature schedule. The board reviews the proposal and
requires a simple majority for approval, making changes or comments as needed.

### Educational Initiatives

In addition to maintaining technology for Penn students, Penn Labs is in a unique position
to help those in the wider Penn community improve their programming and software engineering
skills. Educational outreach changes forms semester-to-semester, but can include:

- Teaching and TAing student-led courses, especially CIS19x courses and WAB Seminars.
- Collaboration with PennApps to give talks and mentor participants.

## Sustainability and Oversight

### Project Maintenance and Sustainability

In order to guarantee the longevity of Penn Labs and to preserve the applications developed by
students, several strategies will be employed by the team.

- **Documentation**: Code will be written with extensive, quality comments for the ease of future
developers. Additionally, an internal wiki will be created and used.
- **Recruitment of Underclassmen**
- **Project Progression**: Projects will be explicitly passed on from senior to junior members.

Additionally, _all code written will be open-sourced under the MIT License_ under the copyright of
Penn Labs the specific bodies or persons thereof. Code written for Penn Labs cannot be sold or
used for profit.

### Project Oversight

All new projects must be approved by the Penn Labs Advisory Board before a public general availability launch.
Regardless of the schedule of meetings, progress reports on ongoing projects are given as well and general updates
must be given (either in e-mail or in person) at the middle and end of each semester.

- All Penn Labs projects are documented at their inception and documentation will be shared on
request with the Penn Labs Advisory Board to address any overlap between student-run technologies and University
IT projects.
- All Penn Labs Advisory Board members will be given access on request to Penn Labs’s central
project management repository.

#### Partnerships

Penn Labs may partner with student groups around campus on different
initiatives. These partnerships, while ad-hoc, are important to the development
cycle of certain products, and stakeholders within Penn Labs should strive to
keep partner groups up-to-date on the status of relevant projects.

## Ratification and Amendment Process

This document was ratified by a ⅘ majority of the Board at their upcoming meeting in Fall 2011. Any
amendments to be made to this document will likewise be ratified by the Board at their next meeting
point and will also require a ⅘ majority to pass.

An up-to-date version of this document must be publicly available to the student body and be
provided to the Speaker of the Undergraduate Assembly.