Stage | Criteria | Expectations | Privileges | Example Role(s) |
---|
/dev/null "Community" | - Be or desire to be a developer
- OpenMRS ID
- Introduced
| - Can communicate well and show respect for others
- Willing to be opened
| - Chat with devs on IRC
- Can become a /dev/1
- Claim an intro ticket (or a non-intro ticket with assistance from a /dev/2+)
- Submit a pull request
- Take Introductory Quiz
| |
/dev/1 "Learning" | - Development Environment
- RTFM
- Claim ticket
- Pull Request Submitted
- Pass 5-10 question Introductory Quiz
| - Has tackled at least one intro ticket
- Can write a unit test
| - GSoC
- Post to dev list
- Propose topic(s) on Dev Forum(s)
| |
/dev/2 "Contributing" | - Helps others
- Participate in Dev Forum(s)
- Active ≥3 months
- Resolved ≥10 tickets
| - Can handle low complexity tickets
- Has tackled at least 10 tickets
- Can create a module
- Has pair programmed
| - Claim low-to-moderate complexity tickets
- Curate tickets
- Publish a module and resources to Maven repo
- Migrate a repo following our code of conduct
| |
/dev/3 "Cooperating" | - Curates ticket(s)
- Working with others
- Hugged by an implementation
| - Can handle moderate complexity tickets
- Can function independently, yet looks for opportunities to pair program
| - Code review
- Configure CI
- Lead Sprint
- Push to module(s)
- Spike for community
- Manage a release
| - Technical Lead for Sprint
- Spike Developer
- Release manager
|
/dev/4 "Collaborating" | - Perform at least one Spike for the community
- Leading Dev Forum(s)
- Leading Sprints
- Overseeing code reviews
- Hugged by ≥2 implementations
- Has publicly thanked at least 10 other devs
| - Can handle complex tickets
- Finds effective ways for developers across organizations to work together
- Occasionally leading the Community Development Swim Lane.
| | |
/dev/5 "Leading" | - Responsible for a component
- Mentoring other devs
- Engages with implementation(s)
| - An OpenMRS jedi
- Leading development
- Finds ways to make local implementation development benefit the community and community development benefit local implementations.
- Occasionally leading the Community Development Swim Lane.
- Accomplishing more through guiding/helping other devs than on their own.
| - Can establish coding conventions
- Can deprecate services
- Participate in OpenMRS leadership discussions
| |