Wiki Spaces

Documentation
Projects
Resources

Get Help from Others

Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack

Resources

Page tree
Skip to end of metadata
Go to start of metadata

This is a mechanism by which people involved in OpenMRS Development can progress from a new community member (/dev/null) to a development guru (/dev/5) as their development skills progress. The purpose of developer stages is to help clarify where people are in their journey, motivate people to become increasingly skilled in OpenMRS development, and help us recognize when people are becoming more skilled with OpenMRS Development. Developer stages are not meant to create a bureaucratic process around community privileges.

The table below gives you a high level view of the criteria, expectations, and priveleges for each stage. This worksheet, which is a work in progress, provides more details about the specific skills each stage needs to meet these criteria and expectations.


StageCriteriaExpectationsPrivilegesExample Role(s)

/dev/null

"Noob"

  • Be or desire to be a developer
  • OpenMRS ID
  • Introduced

How to Earn: See /dev/null badge on Talk

Community members are expected to be nice. We're all in this together!

  • 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
  • Community Member

/dev/1

"Beginner"

How to Earn: See /dev/1 badge on Talk

A beginner is expected to have engaged with OpenMRS development.

  • Has tackled at least one intro ticket
  • Can write a unit test
  • GSoC
  • Post to dev list
  • Propose topic(s) on Dev Forum(s)
  • Wiki Editor
  • Intern

/dev/2

"Coder"

  • Helps others
  • Participate in Dev Forum(s)
  • Active ≥3 months
  • Resolved ≥10 tickets

How to Earn: See How Developer Stages Work

A coder is expected to be able to make meaningful contributions to OpenMRS development.

  • 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
  • Manage a release
  • Developer on Sprint

/dev/3

"Skilled"

  • Curates ticket(s)
  • Working with others
  • Hugged by an implementation

How to Earn: See How Developer Stages Work 

A skilled coder is expected to be able to think beyond their own needs or their organization's needs, including how their code affects others in the community and able to coordinate community contributions.

  • 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
  • Initiate a maintenance release
  • Technical Lead for Sprint
  • Spike Developer
  • Release manager

/dev/4

"Expert"

  • 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

How to Earn: See How Developer Stages Work 

An expert is expected to be capable of thinking outside the box, understand complex technical concepts, and coordinate efforts across projects.

  • Can handle complex tickets
  • Finds effective ways for developers across organizations to work together
  • Occasionally leading the Community Development Swim Lane.
  • Push to core

/dev/5

"Guru"

  • Responsible for a component
  • Mentoring other devs
  • Engages with implementation(s)

How to Earn: See How Developer Stages Work 

Gurus are expected not only to be able to make significant contributions to complex projects, but also lead the development of them.

  • 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
  • Participating in repo management
  • Overseeing one or more community objectives
  • No labels

4 Comments

  1. I think the most practical/useful way to track and monitor these stages (whatever they work out to be) would be to create in Discourse (OpenMRS Talk) both "task badges" and "dev stage badges".

    In other words, create a badge for the various criteria (introduced themselves, claimed a JIRA issue, PR merged) and then create a badge, i.e. "/dev/1" that watched for people who had the necessary combination of those requisite task badges. This would allow us to do things like (A or B or C) and (D and E) and also add in the time minimums to prevent people grinding through all the stages instantly without any community bonding period.

    In order to monitor external services, some of these specific criteria (e.g., JIRA issues, GitHub activity) will require either a new custom Ruby-based Discourse plugin or (in the case of GitHub) improving upon the existing one.

    1. Perhaps a standalone micro-application could calculate and update these statuses via REST APIs to discourse and GitHub.

  2. Darius Jazayeri, Michael Downey We've had several developers in the last 3 months (including me, hope that's not too shameless (smile)) who have crossed the dev/1 bar and have reached the threshold value of dev/2. Maybe we can start actively assigning these badges again so that when we have a relatively new developer and he/she gets promoted, there is a feeling of accomplishment and a drive to contribute more. Just my thoughts (smile)

    Also, I'm sure quite a few have take the dev 1 quiz but I think have not been assigned badges/intimated of how they have fared. I took the test 2 weeks ago and I'm pretty sure I didn't flunk (tongue)

    1. I agree; I'd love to see more /dev/2's out there! Personally I'm not clear about the technical process for promotion to /dev/2. Perhaps someone else can respond about that?

      Regarding /dev/null to /dev/1, I know we had quite a backlog of quizzes at the turn of the year, and they are currently graded manually by Saptarshi Purkayastha(smile) But I have confirmed he is working his way through the backlog and will be granting the Smart Developer badge as soon as he's done with the first wave.