Open Source Involvements

Experience in working on the OpenMRS CPM open source project

Timothy Lim / @thewheat

Why Get Involved?

  • Learning something new
  • No / Less deadlines and business factors to abide by
  • Mentoring
  • Networking
  • Fostering the community
  • Being invovled in something greater than yourself
  • Find what you want to learn / explore



  • CPM: Concept Proposal Module
    • Allows 2 OpenMRS instances to interact and communicate
    • Proposer formulates a new concept that could be useful for everybody and sends to the Dictionary Manger for review
    • Dictionay Manager: Approves, Rejects / Creates concept
  • Weekly hacknights hosted by Thoughtworks
  • On-going for 2 years, stake holders overseas

Starting is always the hardest (1/2)

  • People management
    • Managing expectations
    • Food helps!
  • Setup / Introduction
    • High barriers of entry => great killer of enthusiasm
    • Vagrant
      • Reproducable developer environments
      • Based on versionable files: e.g. Vagrantfile
      • One environment to rule them all
      • (Let's see some code!)

Starting is always the hardest (2/2)

How we work (1/2)

  • Schedule:
    • 1800: Arrivals & Food
    • 1830: Stand Up
    • 2100: Go home!
  • Agile

How we work (2/2)


  • GitHub all the things
  • Typical Git workflow
    1. Fork (on GitHub)
    2. Clone
    3. Branch
    4. (Code / Fix / Review) + Test
    5. Pull Request (on GitHub)
    6. Review (Back to 4. if necessary)
    7. Merge
  • Pull request
    • Not a finished code, but a start of the conversation


  • People leaving after 1 meetup
    • Monthly Newbie Night vs introduction every week
  • Spending too much time on setup
    • Vagrant
  • Lack of documentation
    • Where do I start if I want to learn about x?
    • Where in the code do I find x to implement y?
    • Not knowing the prerequistes before implementing a fix/feature
  • Disruptive behaviour

How to get the most out of it

  • Stick with it for 1 or 2 months (4-8 meetups)
    • Get to know the environment/culture
    • See where you can contribute
  • No task too small
    • As long as it's beneficial to others, it's a good step forward
  • Single Task: no matter the progress (or lack there of)
    • Document issues with Setup for Newbies
    • Deployment with Go
    • Functional Tests
  • Documentation
    • helps me research something more before writing actual documentation
    • helps identify what exactly needs to be done
  • After hours

In conclusion

  • For me: I've learned alot and makes me want to help on-boarding of people to projects
  • For you: Go Explore, Learn and Contribute back to the community at large!
  • OpenHatch is a non-profit dedicated to matching prospective free software contributors with communities, tools, and education.
  • CodeTriage: receive a different open issue in your inbox every day.


Timothy Lim / @thewheat

Presentation done by reveal.js by Hakim El Hattab