Name
Joe Flack (@Joseph_E_Flack_IV)
Organization
PMA2020
What contributions (e.g., issue triage, tech support, documentation, bug fixes) have you made to the ODK community?
I have made contributions to ODK-compatible open source software that I am working making more and more beneficial to the entire ODK ecosystem. However, I have not made contributions to official ODK projects, documentation, or the community forum. I would be interested in contributing to documentation and support for some sub-forums, however.
How do you believe your contributions have benefited ODK?
We have started to have users from other organizations who are using PPP to create word document or PDFs from their ODK XlsForms. I believe other contributions would have benefited, but we as an organization have not successfully communicated the existence of our tools to the ODK community.
What do you believe the top priorities for ODK are?
There are several pain points, while I do not believe are among the projects or features currently on the roadmap, I would nonetheless consider top priorities. If ameliorated, I believe it could be a great boon to the ODK ecosystem.
I. Open source graphical user interface(s) for form creation
KoBo Toolbox currently exists as an excellent GUI for form creation. While it is not officially an ODK app, I would say that since it is free, open source, and fully compatible with ODK XlsForms, it should be officially recognized as the first option for a form creation GUI, before considering premium options
II. Graphical user interface(s) for survey lifecycle management
While it is important to have the tools necessary to conduct a survey, there lacks a specialized project management style tool for managing the lifecycle of a survey. Such a tool would provide a way to provide PM style functionality, from form ideation, to regulatory approvals, to form creation and deployment, to collection and analysis, and finally to dissemination. Such a tool should be primarily web based, multitenant, capable of managing multiple surveys, and have the ability to push notifications at key times
III. Automated testing of XlsForms
This is a major pain point for ODK forms, especially complex ones, and especially when multiple collaborators are involved. It can be a disaster if something goes to production with bugs. Once survey data is collected, it typically cannot be re-collected. Manual testing can be tedious and difficult, and testers often don't know what kinds of bugs to look for.
IV. Translation management tools
It is very important that every language implementation of a survey is as close to the true design of the survey and meaning of the questions as possible. It is important to know when something is yet untranslated. It is also important that translations get updated as soon as possible after the source language of a block of text(often English), changes. It is also important to manage the quality of translations, as translators can make mistakes, such as forgetting to update a question number change, or accidentally translating a variable (e.g. ${yes} --> ${oui}).
V. Programming language robustness
Javarosa's current implementation of Xform/Xpath is, I believe, 1.0. It seems to currently lack the language features necessary that to make it a true, turing complete programming language. Namely, recursion and iterative logic is missing.
VI. Version control
It can be difficult to tell what changed between versions of an XlsForm, and to handle such version control, especially if not using Google Sheets.
How will you help the ODK community accomplish those priorities?
I. Graphical user interface(s) for form creation
My organization, PMA2020, has currently doubled in engineering staff and will be starting a new grant. One of our priorities is to begin use of a form creation web GUI. We are likely to be using KoBo Toolbox, and our aim is to add features to it, and hopefully contribute to the trunk of the project. I would be PMA2020's primary contributor on this project given my proficiency in its language stack (Python, React JS) and interest.
II. Graphical user interface(s) for survey lifecycle management
This is additional functionality that we would either like to add to KoboToolbox, or independent of it. It is not certain that we will implement such software, but if so, I would likely be the primary contributor.
III. Automated testing of XlsForms
We have some ideas in mind and would consider this a high priority, especially if we could get backing from the ODK Community in terms of recognizing it, or possibly adding the test suite as a plugin to PyXform / XlsForm offline.
IV. Translation management tools
We have existing tools which do this, and are currently in development of improving them. Qtools2 (https://github.com/jkpr/QTools2), built on top of (and nearly a fork of) PyXform, provides significant quality assurance checks in the form of warnings and conversion errors, which can also be turned off. We would just have to find a way to get these features into PyXform, and I and others in my organization would be happy to make pull requests.
V. Programming language robustness
Upgrading Xpath to 1.2 or 2.0 would greatly increase the power of the language. I would not be opposed to committing directly to JavaRosa, but given my lack of proficiency in Java, it would probably be awhile before I could make any commits.
VI. Version control
We have some tools available to alleviate the problem of finding out "what changed" between forms. We have tools that will highlight cells that changed in between two forms, and can also create a tabular report of the changes. We have other ideas as well. Probably the best way to contribute these tools would be to somehow have them integrated officially into the ODK Ecosystem, or have them integrated into existing tools.
How many hours a week can you commit to participating on the TSC?
2 to 4 at current is the maximum that I can promise without further buy-in from my team.
What other mobile data collection projects, social good projects, or open source projects are you involved with?
I. Open source ODK-compatible projects, contributed to:
- PPP for XlsForm->doc/html/pdf conversion (https://github.com/PMA-2020/ppp, https://github.com/PMA-2020/ppp-web)
- XlsForm translation management and form diffing utilities (https://github.com/PMA-2020/pmix/tree/master/pmix)
- XlsForm conversion tool built on pyxform that adds extra quality assurance checks (https://github.com/jkpr/QTools2),
II. Open source, ODK-compatible projects, non-contributed to, but can speak for / represent:
- JHU Collect, a fork of ODK collect w/ some extra features added by Yaw himself and some others, which we are hoping to bring current with ODK collect soon (https://github.com/jkpr/collect-fixed)
- ODK Graph, which can visualize an ODK form as a graph visualization (https://github.com/jkpr/OdkGraph)
- ODK2Stata for auto-generating Stata .do files (https://github.com/jkpr/odk2stata)
- PMA analytics, which, in tandem w/ JHU collect, provides analysis of user behavior (https://github.com/jkpr/pma2020-analytics2)
- AnswerAgreement, for measuring concordance of questions answered (https://github.com/jkpr/AnswerAgreement)
III. Recent open source contributions, misc
- JSON-to-GraphQL-Query (https://github.com/dupski/json-to-graphql-query)
- GRAND Stack Starter (https://github.com/grand-stack/grand-stack-starter)
Please share any links to public resources (e.g., resume, blog, Github) that help support your application.
I. Résumé - http://joeflack.net/resume
This document is out of date, so some recently learned skills & experience are as follows: Xpath / XlsForms, AWS S3, Linode, continuous integration, React JS, Apollo Client, Cordova, R, Jupyter Notebooks, Sphinx, Node JS, DHIS2, Markdown, Makefile, Bash.
II. GitHub profile - https://github.com/joeflack4
III. Blog - http://www.joeflack.net
I haven't updated this in forever, but listing anyway.