Junior Developer Program Rules
Overview
The purpose of the Junior Developer Program is to assist interested people with learning how to create and maintain high quality achievement sets for RetroAchievements. Junior Developers are required to understand and abide by the Developer Code of Conduct except where specifically addressed by this document.
Entry Requirements
To join the Junior Developer Program, the following requirements must be met:
- RetroAchievements account must not be banned or suspended from achievement development or involuntarily untracked from competitive leaderboards
- Have a Discord account verified on the RetroAchievements Discord server
- Request the Junior Developer role in #role-request channel in the General section of the RA Discord server
- Include your RA profile link
- State the game for which you intend to create a set and link its RA set page or request that it be made if it does not exist
- Read through all RetroAchievements Developer Docs and fill out and post a Set Design Plan
- Ping the @Code-Reviewer role in your request to join thread
- Unless specifically authorized by Developer Compliance, all requirements in this section must be met to gain entry to the Junior Developer Program regardless of previous RA experience
Rules and Restrictions
The following rules apply to all Junior Developers:
- May only create achievements, leaderboards and Rich Presence for a set on which they have an active claim
- This means no working on any sets that are not claimed. Failure to adhere to this rule may result in dismissal from the Junior Developer Program
- Junior Developers may practice RAM digging games for which they do not have a claim, but shall not publish any code notes
- May not make a new claim while they have any unaddressed tickets
- Will prioritize resolving open tickets over development of a new set. For additional information on ticket handling, see Ticket Handling, below.
- Not eligible to participate in collaborations
- May only revise sets where the Junior Developer is the sole author of the existing set.
- Must make a revision request in #jr-dev-forum detailing the revision plan. The Code Reviewer team will consider the request for approval
- May not make a claim without Code Reviewer approval on a Dreamcast set using the Windows CE firmware, PlayStation 2, or future 6th+ generation consoles at the discretion of the Code Review team
- Must make a development request in #jr-dev-forum after at least 1 set has been published
- May only create a subset for games where the Junior Developer is the sole author
- Must make a subset request in #jr-dev-forum which includes a set plan. If approved, the subset is subject to Subset Rules
- May request to create a subset in addition to a primary claim if both are for the same game
- Must make a subset request in #jr-dev-forum which includes a set plan. If approved, the subset is subject to Subset Rules
- May make a maximum of 1 set for a hack during the program
Ticket Handling
Junior Developers are expected to prioritize resolving open tickets over development of a new set.
- If a ticket is in Request status while waiting for information from the reporter, they may continue work on a new set, but must immediately reprioritize the ticket(s) once the reporter responds
- To put a ticket into Request status, ask the Code Reviewers, using the #jr-dev-forum, to transfer the ticket to the reporter after you have requested further information by asking the reporter using a comment on the ticket.
- Once you have fully addressed the ticket, leave a comment on the ticket describing what the cause of the issue was and what you did to resolve the issue.
- Contact the Code Reviewers, using the #jr-dev-forum, to resolve ot close the ticket as appropriate after your comment has been made.
Code Review Requests
Junior Developers are required to ensure sets they submit for Code Review are of the highest quality they can make. If a set has known issues, Junior Developers must resolve them prior to requesting a Code Review. Code Reviewers are available to answer questions and offer guidance to assist Junior Developers with resolving issues. The following rules apply to all Junior Developers intending to submit a Code Review request:
- Must follow the "Am I Ready for Review" guide prior to requesting a Code Review
- May not submit sets that fail to conform to the Writing Policy or Code Note Standards
- May not submit sets that do not have original achievement badges
- May not submit sets that do not have Rich Presence
- May not request a code review until at least 7 days after claiming a set
- Will describe self testing method used in order to validate set stability in the Code Review request
Sets that fail to meet Code Review request requirements will be refused entry into the Code Review backlog until remediated
Removal From Junior Developer Program
Participation in the Junior Developer Program is not an entitlement or right. Junior Developers are expected to take the program seriously, put forth significant effort, seek assistance when unable to figure something out, strive to make the highest quality set possible and maturely accept and apply Code Reviewer feedback. Junior developers may be temporarily or permanently removed from the program for the following reasons:
- Violations of the RA Developer Code of Conduct or the rules set forth within this document
- 1 month of inactivity in either active development or RA in general
- First time inactivity removals may request immediate restoration of Junior Developer role
- Subsequent inactivity removals will be subject to a 30-day cool down, beginning upon demotion action. After cool down, must submit a full rejoin request per Entry Requirements
Graduation Consideration
Code Reviewers consider a variety of things when deciding whether a Junior Developer is ready to graduate and become a full developer. The driving question behind this decision is "Can the Junior Developer successfully integrate into the developer team and be trusted to produce and maintain high quality sets in accordance with the Developer Code of Conduct?" This question is evaluated by considering a variety of aspects such as:
- Has the Junior Developer demonstrated a consistent level of maturity and professionalism such that they can be trusted with increased site permissions?
- Has the Junior Developer demonstrated technical proficiency with a significant portion of the developer toolkit?
- The Junior Developer Graduate set achievements provide a good overview of the toolkit
- Has the Junior Developer produced a set that meets or exceeds Developer Code of Conduct and Content Guidelines requirements with little to no assistance?
- Does the Junior Developer show a strong desire to learn and actively seek self improvement through asking questions, discussions and self study?