File - MonkeyTeamsExplained
- PCGen - who does what?
Last Edited: May 28,. 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 refering 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.
Here's a primer on what each team does:
This team works on the java code. Their trackers are located at pcgen.sf.net. Jason Buchanan is the Silverback of this team.
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. Doug MacMillan is the Silverback of this team.
This team works on the documentation. Their trackers are located at pcgendocs.sf.net. Shane Molnar is the Silverback 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. Chris Chandler is the Silverback of this team.
Quality Assurance Monkeys (QA Monkeys)
This team works on testing PCGen to make sure the releases are reliable and high quality. This is a new team and is currently without a Silverback as the former leader had to leave due to RL. They have a yahoo group called pcgenqa where they discuss what they're doing.
Special Projects Monkeys
This team focuses on a large project in PCGen and help see it through to completion. This requires coordination with data, tracker and code monkeys.
Publisher Liason 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 King 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. Papa_DRB is the Silverback 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).
Special Project Monkeys
This team is used intermittently based solely upon need and generally consists of a combination of code and data monkeys.
Publisher Liason 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.
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
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.
- PCGen - Who does what?
Last Edited: Aug 19th, 2009
Please see http://wiki.pcgen.org/index.php?title=Explanation_of_Teams for the latest version of this document
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 Documentation provided with PCGen and in the About box of the actual software we try to list everyone who has contributed to PCGen in chronological order.
In keeping with the Monkey theme 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. The Silverbacks have a 2nd for each sub team. Promoting Monkeys is generally the privilege of the teams Silverback. The ranks are (in decreasing order) 2nd, Chimp, Gibbon, Tamarin, Lemur. The rank of Lemur is conferred when a volunteer first contributes something useful (whether it be large or small to the project).
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 the pcgen message board 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 the BoD
Board of Directors
The Board of Directors (BoD) is the steering committee of PCGen, its members consist of the Team Leads from each team. It had overall governance of the project and is lead by the Chair Monkey.
This team works on the medium and long term gnarly architectural issues for PCGen, dealing with things such as Internationalization, replacing the data layer etc.
This team works on the Java code, fixing Bugs and developing FREQs.
Content encompasses Data, Documentation, Output Sheets and other non-Java code project files.
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.
This team works on the Documentation, this is a massive effort combing How To guides, Data and OS tags, FAQ and much, much more.
This team works on the output sheets which are used to export to character sheets in PCGen. These templates involve XML, XSL, PDF and HTML/XHTML.
This is the team that administers the project as a whole. They amongst other things monitor the http://groups.yahoo.com/group/pcgen yahoo site and consist of two sub teams.
They also prioritize all Issues and provide assistance to all teams in a co-ordination role.
This team gathers all the elements and compiles the code to create the packages that are released to the public.
This team is the newest formed team; it's first tasked with finding a permanent website space to call home and building a fully operational website to facilitate our many needs. Once phase I is completed they will monitor and maintain the website. They have a tough job currently of merging our many groups and websites into one unified and professional website with the full capabilities we already enjoy today, plus more enhancements.
The PR team covers dealing with the various stakeholders in PCGen's community, in particular the Publishers.
This team servers as the contact for all the Publishers. This way all contact with Publishers can be more easily managed and consistent.
This team is named after the Open Gaming License that made the popularity of 3e/3.5e possible. This team makes sure that all material included in PCGen meets any license requirements (not just the OGL).
This team deals with PCGen's advertising budget and where and when the advertising should occur.
That should just about cover it!
Chair Monkey - BoD, Moderator