PCGen - who does what?
Last Edited: October 26, 2004
In the "About" box of PCGen, you'll quickly notice the PCGen has a monkey meme. I chose "Chief Code Monkey" as my title when I first made PCGen available to the public, and I 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 chronologic order, and the monkeys are grouped into Code, List, Test and Engineering.
In keeping with the monkey meme a ranking system has evolved as a way to express appreciation and confer status to those who have contributed their time and energy to the project. The highest rank is that of Silverback, the Silverbacks are the leaders of the teams that make up the PCGen project and hold seats on the Board of Directors. Promoting monkeys is generally the privilege of the teams Silverback. The ranks are (in decreasing order) Chimp, Gibbon, Tamarin, Lemur and Oozers will usually start as a Lemur. The rank of Ooze is a demotion reserved only for those who have made monumental errors.
Joining the project
PCGen is an Open Source Software Initiative and as such relies entirely on the efforts of many volunteers. The project is always in need of more volunteers, if you would like to join we would love to have you. The easiest way to join is to post a message to this list with the subject of "I want to help" and you will be contacted by a tracker monkey and asked what area you would like to contribute to. You may also contact the Silverback of a team you are interested in joining directly. A list of the silverbacks can be found in our docs online at this link:<http://www.legolas.org/pcgen/docs/acknowledgments/bod.html
Here's a primer on what each team does:
This team works on the java code. Their trackers are located at pcgen.sf.net. Devon Jones is the Silverback of this team.
Content Monkeys (Data Monkeys/Doc Monkeys/OS Monkeys)
Content encompasses Data, Documentation Outputsheets and other non-code project files. Eddy Anthony is the Content Silverback.
Data Monkeys (LST Monkeys)
This team works 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 trackers are located at pcgendm.sf.net. �ric Beaudoin is Data Content Second and Chief Data Monkey of this team.
This team works on the documentation. Their trackers are located at pcgendocs.sf.net. Shane Molnar is Documentation Content Second of this team.
Output Sheet Monkeys (OS Monkeys)
This team works on the output sheets which are used to export to character sheets in PCGen. These templates involve xml, xsl and html. Their trackers are located at pcgendocs.sf.net. Chuck Pint is Output Sheet Content Second
Quality Assurance Monkeys (QA Monkeys)
This team works on testing PCGen to make sure the releases are reliable and high quality. Reed Thornton and Roy Stringer are the Co-Silverbacks of this team. They have a yahoo group called pcgenqa where they discuss what they're doing.
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. Michael Beaver is the Silverback of this team.
This team is named after the OpenGamingLicense that made the popularity of 3e possible. This team makes sure that all material included in PCGen meets any license requirements (not just the OGL). Paul Grosse is the Silverback of this team.
This is the team that monitors the pcgen yahoo site for bug reports and feature requests. They also prioritize all trackers submitted at the three sourceforge sites. Paul King is the Silverback of this team.
This team gathers all the elements and compiles the code to create the packages that are released to the public. �ric Beaudoin is Chief Release Monkey of this team.
More Detailed Listing of what each team does:
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 priority 9 trackers (bugs or feature requests at pcgen.sf.net) since that's what has been deemed to be necessary for the next production release of PCGen.
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 OGL and Publisher teams can check them. Once a source is completed and checked, it's added to the PCGen releases.
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.
Quality Assurance Monkeys
Requirements: Ability to describe steps to reliably reproduce a bug, preferably some professional QA experience but not required
This team develops regression tests to make sure that code changes in PCGen don't break anything that was working. They also help test the interface to make sure that it works as expected. They also help try to determine where and when PCGen slows down or runs into trouble so the Code Monkey team can resolve the problem and improve PCGen's performance. As the QA team discovers issues, it enters the bug in the appropriate place (pcgen.sf.net for code bugs, pcgendm.sf.net for data bugs, pcgendocs.sf.net for doc or OS bugs).
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.
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.
This is the team that monitors the pcgen yahoo group for bug and feature requests. Any bugs that are confirmed are entered as a tracker in the appropriate group's list (code items at pcgen.sf.net, data items at pcgendm.sf.net, output sheet and documentation items at pcgendocs.sf.net). After the confirm/reject a report, they respond to the user's post to indicate the tracker number or to indicate that they couldn't reproduce it. Some trackers help monitor the Files folders where users can upload character files that exhibit a bug they're reporting. Other trackers 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.
Tracker can mean two things. It can refer to a member of the Tracker Monkey team, it can also refer to an item that has been submitted either as a bug report or feature request at a sourceforge site. Sourceforge, also referred to as SF, calls these list of reports as Trackers. This way bug reports and feature requests don't get lost and is a primary way we act on the feedback we receive from our users.
How this all works:
Scenario 1 - A user submits a bug report
Suppose someone submits something like this to the pcgen yahoo group
"[BUG] 5.7.2 - My Fighter's BAB is 0!"
A Tracker Monkey monitoring the group attempts to confirm the bug with the version specified. If no version is specified, simply try the most recent version. If the bug can be confirmed, try it in the most recent production release to see if it was a problem there. If it's a code-related issue, submit a bug report at pcgen.sf.net and indicate whether or not it's a bug in the most recent production release as well as the version specified. If it's a data-related bug, follow the same process at pcgendm.sf.net. If it's a bug in a production release, it gets assigned priority 9. Then respond to the user's post at the yahoo group with the tracker number. If you cannot confirm the bug, respond to the user's post and let them know what you tried. Request more information if it isn't clear what steps the user took. If the tracker was submitted to pcgen.sf.net, a code monkey would work on the item and mark it as closed once the code for it has been checked in. A data monkey would do the same thing for anything submitted to pcgendm.sf.net.
Scenario 2 - QA finds something
A QA monkey testing PCGen comes across an issue. This is reported to the pcgenqa yahoo group so others can confirm it. Once it's confirmed, one of the QA monkeys or one of the tracker monkeys can submit the bug in either pcgen.sf.net or pcgendm.net. It then follows the same process as scenario 1.
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.
I think this about covers it. If not, let me know and I'll try to make it clearer. :)
Chief Code Monkey and Benevolent Dictator of PCGen