# PCGen Monkey Teams Explained

Who does what?

In the "About" box of PCGen, you'll quickly notice the PCGen has a monkey theme. Bryan McRoberts chose "Chief Code Monkey" as his title when he first made PCGen available to the public, and later adopted the title of Benevolent Dictator. Other teams formed to focus on different aspects of PCGen, and all have taken to referring to themselves as monkeys. In the About box we try to list everyone who has contributed to PCGen in chronological order, and the monkeys are grouped into Code, Content, Test and Engineering.

Here's a primer on what each team does, see the Board of Directors page for a list of those in charge of each team:

Code Monkeys
This team works on the java code. Their issues are located at http://jira.pcgen.org.

Content
This team encompasses all content published with PCGen. This includes Data, Docs and Output Sheets.

Data Monkeys
The Data Monkeys work on the data for all the books you load in PCGen. They help answer data questions at the PCGenListFileHelp. They have pcgen_experimental group where they actually work on the different books we're trying to get into PCGen. Their issues are located at http://jira.pcgen.org.

Doc Monkeys
The Doc Monkeys work on the documentation. Their issues are located http://jira.pcgen.org.

Output Sheet Monkeys (OS Monkeys)
The Output Sheet Monkeys work on the output sheets which are used to export to character sheets in PCGen. These templates involve xml, xsl and html. Their issues are located at http://jira.pcgen.org.

Public Relations Monkeys
This team encompasses all public relations work with PCGen. This includes Publisher Liaison, Data License and Advertising.

Publisher Liaison Monkeys
This team servers as the contact for all the publishers. This way all contact with publishers can be more easily managed and consistent.

Data License Monkeys
This team makes sure that all material included in PCGen meets any license requirements (not just the OGL).

Advertising Monkeys
This team deals with Advertising PCGen in magazines etc.

Admin Monkeys
This is the team that monitors the pcgen yahoo site for bug reports and feature requests. They also prioritize all issues submitted at the JIRA site and generally organise the project.

More Detailed Listing of what each team does:

Code Monkeys
Requirements: Java (any amount)
Some code monkeys work on the interface (GUI), some work on the engine (business logic), some work on optimizations and others perform routine maintenance. All levels of java (even newbie) are accepted and if you've got the time, we've got plenty to do! There is a Developer's Forum where questions from really basic to very advanced can be asked. I'm generally happy to let people work on the section of code that most interests (or irritates!) them, though I ask that all developers help out with the high priority issues (bugs or feature requests at http://jira.pcgen.org) since that's what has been deemed to be necessary for the next production release of PCGen.

Data Monkeys
Requirements: Accurate typing, preferably some amount of experience with a computer language of any kind
Newbie data monkeys are generally asked to do an initial swipe on a book. Most data monkeys develop a mastery of one area of data (like classes or feats or races), and as they advance they are asked to check the work of other newbie data monkeys. All work currently is done in a proprietary data language called LST (after the adopted extensions of all the data files) and most of it is pretty easy to pick up. There are some bits of it that are more difficult to master, and data gurus are highly prized. :) As data is worked on, it's uploaded to pcgen_experimental so the Data License and Publisher teams can check them. Once a source is completed and checked, it's added to the PCGen releases.

Doc Monkeys
Requirements: Ability to describe clearly how to use software and to present it in an appealing manner.
The Documentation team is responsible for making sure that the screen pics are up-to-date and that the descriptions of how to use the interface makes PCGen understandable for first-time users. They also update the documentation on the LST language to help data monkeys do their work. The documentation is done in html.

Output Sheet Monkeys
Requirements: Familiarity with xml/xsl/htm, preferably some java
Some OS Monkeys work in xml/xsl, and others work in html. It's helpful if they also know java so they can look at the code of PCGen itself to better understand (and even modify) what it's doing when it outputs a character sheet.

Publisher Liaison Monkeys
Requirements: Desire to communicate to publishers and ability to communicate clearly
Since this group is our contact point with all publishers, it's a small group.

Data License Monkeys
Requirements: Ability to understand and explain licenses like the OGL, LGPL and other licenses with which PCGen must comply.
This team checks all data to make sure that it complies with the OpenGamingLicense, the Lesser GPL and any other licenses that apply to PCGen. Any issues found are immediately reported - to pcgen_experimental if it's a data issue, to pcgen.sf.net if it's a code issue.

Admin Monkeys
This is the team that monitors the pcgen yahoo group for bug and feature requests. Any bugs that are confirmed are entered as a issue in the appropriate areas. After the confirm/reject a report, they respond to the user's post to indicate the issue number or to indicate that they couldn't reproduce it. Some Admin staff help monitor the Files folders where users can upload character files that exhibit a bug they're reporting. Other Admin staff help monitor all items submitted to the various groups and make sure they're not duplicates, and adjust the priority on the item according to the list of rules supplied by the Board of Directors.

If you have time and talent, which team should you join? All the teams are always looking for new people to join. It's understood that there's a learning curve for anyone new, but we were all there once so we're all glad to help mentor any willing volunteers. PCGen is a lot of fun because it helps make our games more manageable and because the teams get along so well. If you get tired of one team, it's no problem to switch to another. If you're not sure which team to join and you think you fit the needs for a few of them - let us know and we'll be glad to put you wherever the most dire need currently resides.