OpenMRS Developers' Guide

Get Support

Asking questions

There are many places to go when you get stuck. The most important thing is not to get discouraged. The OpenMRS community is here to help each other, and tomorrow you may be the one helping a new developer with the same problem.

You can help experienced developers help you by asking "smart questions", which are informed by the your attempts to solve the problem on your own, include adequate context of the problem, and a contain a precise description of your problem. Read http://go.openmrs.org/newdev-smart for more about asking "smart questions".

Be sure to check if your question has already been answered. This section will help you navigate the OpenMRS resources to find answers. After a good faith effort of searching, reach out to the community! If your question has anything to do with OpenMRS, ask it in a public forum.

IRC tips

  1. You can generally just ask a question for any one to answer. But if you wait for a while without getting a response, you may pick a person in the list and mention their "nickname" so that they are notified. IRC pro-tip: With most IRC clients, just start typing the nickname and use the Tab key to auto complete.
  2. The IRC channel is where daily 15 minute like "Scrum" meetings take place. Developers working on a sprint will provide quick updates on their progress and anything blocking their progress. When a scrum meeting is going on, you should hold your questions until it ends. If you have been working on anything, or even blocked, feel free to also participate in the scrums because they are open to everyone.
  3. Don't worry about saving a helpful IRC conversation. The channel is logged automatically, so just make a note of the day and time of your helpful conversation and revisit it even after leaving the chat room. You can find the logs at: http://go.openmrs.org/irc 

Weekly meetings

OpenMRS community members meet online during the weekly OpenMRS developers forum. This forum is a fine opportunity to learn more about the project, share experiences, give feedback about where they want the future of OpenMRS to be, and more. You can see more details on calls and topics on the upcoming topics wiki page. Periodically, the meeting will be open to Q&A with experienced developers. This is a great place to get questions answered! 

OpenMRS Answers

Our Q&A site at http://answers.openmrs.org/ is used for clearly answerable questions that have anything to do with OpenMRS. If your question is more likely to start a discussion than get a clear answer, post it to the Developers Mailing List instead. If your question is actually a bug or feature request, use JIRA. Also don't use OpenMRS Answers if your question is unrelated to OpenMRS, or directed to a single person.

Mailing lists

If you decide a mailing list is the best forum for your question, there are a few things to always include.

  1. Use a descriptive subject header. "PLEASE HELP ME!!" for example, is not descriptive enough.
  2. Introduce yourself and don't apologize for being a beginner. The community welcomes you.
  3. Describe the context of the issue you're having or the question you would like to have answered. What were you doing when you ran into this problem? What troubleshooting have you already tried unsuccessfully? What is your goal?
  4. Include your exact error message if there is one.
  5. Indicate which version of OpenMRS you are using.
  6. As a general rule, be as precise and informative.

If the answer you receive doesn't make sense, repeat this process for your follow up questions. Sometimes a web-search of the terms you don't understand is all the clarification you will need. Maybe the person who responded to your email is conveniently hanging out on IRC. Otherwise, proceed confidently in asking for more information.

Finding answers with reference material

Error messages

Most likely someone has gotten this error before you. Some error questions have been posted and answered on OpenMRS Answers and others on a mailing list. If you know your error has to do with a certain thing, such as memory, check the wiki too. Some errors have earned their own pages there. If you're not sure where to look first, http://search.openmrs.org/ provides a custom Google search engine for multiple OpenMRS sources. 

A comprehensive list of OpenMRS mailing lists to search or subscribe to can be found at: http://go.openmrs.org/lists

Questions about OpenMRS usage

When you need a better understanding of some aspect of OpenMRS to move forward with your task, search the OpenMRS wiki topics on http://wiki.openmrs.org/. If you find the wiki page you need and it is unclear or incomplete, leave a friendly comment asking for more information and then join on the IRC channel #OpenMRS to see if someone can help clarify or point you to additional information.  You can also check if there are any helpful videos on our YouTube channel. If you get an answer that clarifies the wiki, feel free to go back and add it to the wiki page to help the next person who has that question.

User stories and workflows

When you need guidance related to how an implementer will use your project, you should try to ask the implementer(s) directly. The users most interested in your project may likely be "Watchers" of the JIRA issue you're working on. Alternatively, if you need to reach a larger audience of OpenMRS implementers, you can find them on the implementers mailing list. Depending on your project, it may be helpful to subscribe to this list. You can do so at http://go.openmrs.org/lists.

Designing forums

Weekly design meetings are held for discussing design issues related to the core OpenMRS API, data model, modules or anything else that needs design. Module and patch developers may request a design review in order to start development or receive feedback after development has been started or completed. We also encourage that all reasoning behind any design decision is carefully documented for future assessment. 

It is important for developers understand how their project fits within the larger OpenMRS data model.

Summary

This section is a map of when and where to go for help, and how to get the most helpful feedback. Try to solve the problem on your own first. Regardless of your success, this little bit of research will help you ask more informed questions. When you can't find an answer in the OpenMRS documentation or on the web, you're ready to reach out for help. Start with IRC. From there, if you have a straightforward question in mind, you probably want to ask on OpenMRS Answers. If you can anticipate a variety of opinions or may have stumbled upon an unexplored OpenMRS issue, send an email to our developers mailing list. If your question has more to do with your users, find them on the ticket or on our implementers mailing list. 

Use your judgement. Choosing the right place for your question is helpful in getting you the information you need, not a strict rule.