Developer Stages

What are the OpenELIS Dev Stages?

This is a mechanism by which people involved in OpenELIS 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 OpenELIS development, and help us recognize when people are becoming more skilled with OpenELIS Development. Developer stages are not meant to create a bureaucratic process around community privileges.

.

How do I recommend myself or someone else for a Dev stage upgrade?

Please use this form to submit dev stage recommendations! 

Then approximately monthly, the OpenELIS Global Support Team reviews the submissions and checks the suggestions against the Dev Stage Criteria (below). Don’t be shy - you can also ask for feedback on how you could get closer to the stage you’re hoping for. You can also nominate someone else - we strongly encourage peer nominations!

Criteria and Requirements for OpenELIS Dev Stages

Stage

Criteria

Expectations

Privileges

Example Role(s)

Stage

Criteria

Expectations

Privileges

Example Role(s)

/dev/null

"Noob"

  • Be or desire to be a developer

  • Must have OpenELIS Talk ID

  • Must have a Github ID

  • Introduced on this Talk Thread

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

 

  • Can become a /dev/1

  • Claim an intro ticket (or a non-intro ticket with assistance from a /dev/2+)

  • Submit a pull request

  • Community Member

/dev/1

"Beginner"

  • Development Environment

  • Claim ticket

  • Pull Request Submitted

A beginner is expected to have engaged with OpenELIS 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

 

A coder is expected to be able to make meaningful contributions to OpenELIS 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

  • Manage a release

  • Developer on Sprint

/dev/3

"Skilled"

  • Curates ticket(s)

  • Working with others

  • Hugged by an implementation

 

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

 

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

  • Push to core

 

  • Leading development events (e.g., forums, hackathons)

/dev/5

"Guru"

  • Responsible for a component

  • Mentoring other devs

  • Engages with implementation(s)

 

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

  • Leading development

  • Finds ways to make local implementation development benefit the community and community development benefit local implementations.

  • Accomplishing more through guiding/helping other devs than on their own.

  • Can establish coding conventions

  • Can deprecate services

  • Participate in OpenELIS leadership discussions

 

  • Overseeing one or more community objectives