Discussion Series: The importance of Open Standards. What we learned collaborating on the XLSForm spec

Dear ODK Community,

I wanted to contribute on the ODK series about how ODK and working with
Gaetano in particular taught our team at Columbia about importance of open
standards. First, I apologize this post is a few days late.

As many of you may (or might not know), at the foundation of ODK are
XForms. XForms are a W3C open standard for representing forms in XML.
XForms aren't necessarily simple and they have many limitations, however,
they do get a lot right and provided a foundation to build tools like ODK.

I wasn't around for the beginning of ODK but one of the things that
happened at that time is a group of early ICT4D practitioners including
Dimagi, AED, Cell-Life, UW (ODK), U of Oslo (I apologize for any groups I
left out!) realized wisely that while mobile data collection was still
pretty nascent there was a real risk of fragmentation due to the number of
tools that were starting to be developed in parallel. This could lead to a
lot of duplicate efforts and wasted resources with different groups trying
to solve the same difficult problems in different ways. This could lead to
discussions Beta vs. VHS debates, something our space really couldn't
afford. For more on this see [1].

There are two approaches you can take to avoid this. First, you can try
and agree to get everyone to build around a common tool or platform. The
second option, it to agree to develop and build around a common standard.
The groups listed above, formed the OpenRosa Consortium and wisely decided
on taking the standards approach. Together they defined subset of XForm
features they would support and worked together to combine resources to
tackle hard problems like form rendering together - which led ot the
creation of Javarosa (form rendering engine) that still serves at the logic
engine for both ODK, PyXForm and older J2M3 apps developed by groups like
Dimagi and Cell-Life. This also allowed space for groups to innovate
around the standard and focusing on building different pieces from mobile
clients (ODK, OpenXData), to form authoring tools (ODK Build, Vellum,
XLSforms, etc) to backend servers (ODK Aggregate, Formhub, Ona, CommCareHQ,
SurveyCTO, etc).

We got involved in the ODK community when our lab (The Sustainable
Engineering Lab) starting to build Formhub. During the early phases of
doing so, two of my colleagues Andrew Marder and Alex Dorey started to play
around the idea of authoring ODK forms in Excel. We knew there was
something inherently useful to this approach. We had a lot of internal
debate, however, of whether it was simple enough for broader adoption and
we weren't sure how the broader ODK Community would respond to it.

We needn't have worried. One of the first things we did after getting an
early prototype working was to reach out to Gaetano and the ODK Team.
Gaetano responded almost immediately to our team with the following:

"Thank you for contributing this very useful tool. I have reason to want
to extend it in several directions and was wondering what plans you had so
as not to duplicate any work.

I like the spreadsheet model of xls2xforms and would like to extend it

Soon after, we had the chance to meet Gaetano and the ODK team in person at
UW. In a shared google doc, we quickly agreed to a common XLSForm standard
and an approach forward. He also committed on the spot, to have Nathan
Breit from his team work with us to develop out the PyXForm library further
because he wanted to make sure it was "done right".

For me, this captures why Gaetano was the heart and soul of ODK and how I
don't think we would be having this discussion without him.

First, he brought enormous validation. There is nothing like having one of
the most experienced and respected computer scientists in the world tell
you are doing something right. Even though for us, it was simply just
validating a potential approach to form authoring - it still meant a lot.
For the core ODK team, having Gaetano in your corner telling you it wasn't
crazy or impossible must have meant even more.

Second, he was open to collaboration and good ideas. Gaetano had alread
invested a lot in tools like ODK Build. It could have been relatively easy
to dismiss this new idea. Instead, Gaetano was willing to help nurture the
idea until it could be released and adopted by the ODK community without
comprimising the high standards his team had set. The respect shown for
new ideas within the ODK community is something I've come to really

Lastly, it showed Gaetano's sense of pragmatism and his understanding of
the importance of just being involved. He wanted to start work right away
and he was hands on throughout the entire process of finalizing the XLSForm
spec. He understood the importance of his direct involvement and the
example it shown. The fact he frequently replied to support emails on the
ODK mailing list is a testament to this.

I've learned since that open standards like 10% technical and 90% about
building consensus, which means accepting other ideas and being willing to
commit to work with others even if it might slow you down on the short
run. These values I believe are core to the ODK's communities success and
help explain the ecosystem of tools that have emerged around it.

It's been fulfilling to see XLSForm's become widely adopted within the
community. Heck, even ESRI has adopted it! For our team, though it was
our first real chance to collaborate with Gaetano and a chance to learn.

Do you have other examples open standards bringing people together to help
us go farther?


CEO, Ona


1 Like