This page outlines recommendations for designing and building useful CommCare applications. These are compiled from collective experience in app construction and are This page outlines recommendations for designing and building useful CommCare applications. These are compiled from collective experience in app construction and are only recommendations. Individual projects could vary substantially and the overall best practice is to go through extensive user testing and piloting to identify and correct language, media, or work flows that are confusing.
...
- Involve representative from partner organization on site for recording session and/or a staff member who understands local dialect. Although scripts can be followed, presence of native speakers will ensure integrity of message content.
- Official health messages are often written in very formal language. When making recordings, try using colloquial language that will be widely understood by the intended audience.
- See more detailed recommendations in our Audio Recording Guide.
- Have all the audio scripts defined, reviewed and approved by the partner organization prior to completing the recording.
Images
- For low literate users, it is best to use "CommCare Sense" mode, which can be configured on the main Application page under "CommCare Settings"
- In multi-lingual apps be sure to translate any user-interface strings that are not already translated (i.e. "form is loading", "back", etc.)
If possible, consider using a local illustrator. Use the actual uniforms/dress of local health professionals.
- If there is more than one single-select question in a row, it is important to change the image for each picture. If the image is the same, it's easy for the user, especially illiterate users, to get confused or think the application is not working properly.
- User-test your images- sometimes what you may think is a clearly understandable symbol may not be understood by users or their clients. For example, in one case an artist drew a digital thermometer and only upon asking users did the designer discover that they all thought it was a pen, not a thermometer.
Video
We haven't used video very much yet, so give it a try and post your recommendations here!
Data
- Sometimes data is treated as an afterthought to design of the application. However it is important to keep in mind what data you will want to see at the end and make sure you are asking questions that can provide the information you need.
- Do a data export as part of your testing process to see what data is automatically captured and don't ask anything you don't need to. For example, the user ID is automatically captured, so it might not be necessary to ask the user to enter their ID.
CommCare Settings
.
- If there is more than one single-select question in a row, it is important to change the image for each picture. If the image is the same, it's easy for the user, especially illiterate users, to get confused or think the application is not working properly.
- User-test your images- sometimes what you may think is a clearly understandable symbol may not be understood by users or their clients. For example, in one case an artist drew a digital thermometer and only upon asking users did the designer discover that they all thought it was a pen, not a thermometer.
Video
We haven't used video very much yet, so give it a try and post your recommendations here!
Data
- Sometimes data is treated as an afterthought to design of the application. However it is important to keep in mind what data you will want to see at the end and make sure you are asking questions that can provide the information you need.
- Do a data export as part of your testing process to see what data is automatically captured and don't ask anything you don't need to. For example, the user ID is automatically captured, so it might not be necessary to ask the user to enter their ID.
CommCare Settings
- For low literate users, it is best to use "CommCare Sense" mode, which can be configured on the main Application page under "CommCare Settings"
- In multi-lingual apps be sure to translate any user-interface strings that are not already translated (i.e. "form is loading", "back", etc.)
Language Support
- Translate all the display text in the application such as question titles, option values and possibly menus translated way before the implementation/launch. This often is a very time consuming step, one that requires ownership by the partner organization, project team and users. The translations also require the organization to use unicode friendly software, which might in itself be a learning curve. Prepare for translations in advance as much as possible. Not a trivial task.
FORM DESIGN
Overall Form Structure
...
Take advantage of calculations in forms to minimize errors. For example, if you are asking for a birth date, add a label afterwards that shows the calculated age. This may highlight an error in date entry if the age appears different than what the user expected.
Use labels to force the user to stop and verify their information. You can add a label that shows the user data they entered and encourages them to verify if it is correct (see Common Logic and Calculations ).
- Use groups to prevent writing the same display logic (and having to update it) for related questions. Groups also make it easier to manage large forms in the designer (see the Beginner's Guide)
- Consider including a success/you're done with the form label as your last question. This can be particularly useful on J2ME phones by giving the user an opportunity to correct any errors and make it clear to the user that the form is ending..
Don't try to do too much in one form. If you make a simple form that is easy to use it has a higher probabilty of success than a complex one that tries to tackle too much.
...