What principles should we hold and share, when considering any change to the IATI standard? #2
Replies: 17 comments 13 replies
-
Re: having clear consideration of existing users |
Beta Was this translation helpful? Give feedback.
-
Stewardship of the standard has historically been dominated by supply-side actors. How do we change this balance? Demand** should be reflected in both the content and the process. (** I recognise that the lack of demand has been a huge problem over the years and that IATI has a broader mission to stimulate demand.) |
Beta Was this translation helpful? Give feedback.
-
Major, Minor, Patch.Major updates can be considered to be Incompatible changes, such as the removal of any element, or the addition of new core elements. A minor update could still be incompatible (diverging from the semver definition), by, for example, making a change to rules around existing fields, or adding child elements to existing elements. Patches could be seen as both syntactic (#6) and semantic (#5) changes to the definitions of the standard. Major updates could be proposed by the IATI community in an updated standard update process, where a centralised discussion, such as these nice github discussions could be had. Then, once all input has been heard, the technical seat (or other technical representative to the secretariat, like ODS currently), can collect the thoughts and present these at a Members Assembly, where members vote on the ideas (alternatively to all members, only those interested or part of the technical community, in a breakout session). Minor updates could be proposed online, possibly also in a “discussions”-like setup, by the technical team, or the technical community. At the next MA, there could be an initial creation of-, then in future MAs, a refresh of a “technical community representative group (TCRG)” , which will be able to vote online on proposed changes. The technical seat (or other technical representative to the secretariat, like ODS currently), can periodically collect these minor updates, and put those to a vote for this TCRG. Patches should be proposed by the Secretariat with a short term voting period to determine whether this is a patch, or a minor update (possibly shorter than the proposed 45 days in #6, but that is my opinion). During this voting period the community can decide whether or not something should be a patch or a minor update. If it is deemed a patch, the Secretariat should be able to update the standard directly, while if it is deemed a minor update, the minor update flow should be followed. This process can also be applied to all updates: An update is proposed, with a proposed update type (Major, Minor, Patch), which is a short term vote, after which the actual update is then voted on. |
Beta Was this translation helpful? Give feedback.
-
FrictionFriction has historically usually been present for any change to the IATI Standard. This is why the standard update process should define a “friction limit”. For example, if the voting pool is large, the “voting balance” could be 90/10 or 80/20, and if there is more than 20% against the change, the change is reconsidered. Either by altering the change, or dropping it altogether. If the voting pool is smaller, this friction limit should be higher, to prevent a small part of the IATI community preventing beneficial changes to the standard. For example, if only ten community members participate, with a vocal minority of three members refusing. However this is highly speculative, and perhaps a metric could be developed (either by exploring previous votes, previous technical working groups etc.) to determine what a good friction limit would be. Like Bill said, a “pragmatic formulation”. Note: I was not involved with IATI around the time of the last update, so all my information about friction is based on anecdotal reports throughout different technical meetups |
Beta Was this translation helpful? Give feedback.
-
Update transparency and active outreachFor every change to an existing element, specifically for changed or deprecated elements, set up automated outreach: Identify through a datastore which datasets contain reference to these elements, and use the contact information to update the publisher on this specific change. Additionally, consider automatic updates to the datasets. In the above mentioned outreach, provide a complete updated copy of the affected dataset, and send it to the publisher along with the change definition (bonus: include snippets of the update). Define an openly joinable “IATI Data Tools Community”, where developers or product owners of IATI related tools can freely join, and be informed about changes in IATI Secretariat-maintained tools related to any updates to the standard. This way, not only IATI Secretariat-maintained tools can be updated to reflect changes in codes, but all data tools can synchronise in these updates, if desired. (Reference to Rob’s comment on #4) |
Beta Was this translation helpful? Give feedback.
-
At risk of sounding too hip: We could feed all the documentation of the IATI Standard (specifically on the website), to a LLM, and ask it to provide all potential semantic uncertainty and syntactic errors. This could be easily achieved, whilst the alternative, a person or a volunteer group going through might miss small details, especially after reading and processing the first 50 pages, while there are still 300 pages left to go. Of course, having a team of IATI Veterans go through the rulesets would be beneficial, as they might spot semantic issues based on their knowledge of the original introduction or last change to those elements. |
Beta Was this translation helpful? Give feedback.
-
Comparability |
Beta Was this translation helpful? Give feedback.
-
Simplicity |
Beta Was this translation helpful? Give feedback.
-
Modularity Ensuring a development environment where clear guidelines for use of (IATI) open modules (framework, etc) is provided by IATI, allowing third parties to create their custom modules that are able to connect the standard itself. This is preferred as opposed to fixing everything for anyone in the standard itself. Modularity allows for implementation of a broad set of usecases that do not need any prior approval, and they will work as long as modules follow the rules of engagement as set in the guidelines / framework. |
Beta Was this translation helpful? Give feedback.
-
A small addition: when we consider the impact on users, we have to be mindful that backwards-compatibility for data producers isn't the same as backwards-compatibility for data consumers. For example, if we add a new feature/practice Y and deprecate (but keep) X, that avoids backwards-incompatibility for publishers, but introduces it for people using IATI data. I won't say there's no free lunch, but it's hard to find sometimes. |
Beta Was this translation helpful? Give feedback.
-
Thanks, everyone - this is a really useful conversation. It would be useful for the outcome of this to be some concise principles that we can adopt, so I've tried to summarise below. My first observation is that we have discussed both principles for the process of changing the standard, and principles that we should respect about the standard itself during that process. I've separated those out below. I'd welcome feedback as to whether you all feel this is an accurate representation of what we've discussed above and if there's anything we want to add/change/remove. Principles For Change
Principles For The Standard During Changes
|
Beta Was this translation helpful? Give feedback.
-
To follow up on @bill-anderson 's point, in the past we've always favoured making life easier for data providers by ensuring that changes are backwards-compatible for them, but in almost every case, that means that the change is backwards-incompatible for data consumers (and creates more work). As I wrote in another thread, whatever choices we make, we need at least to acknowledge that there's no silver bullet -- every change will cost someone time, effort, and disruption. |
Beta Was this translation helpful? Give feedback.
-
From notes from meeting 22nd Oct:
|
Beta Was this translation helpful? Give feedback.
-
IATI Standard: Principles for change control #draftIntroduction The data standard has been adopted, shaped and guided by a large number of organisations involved in international development and humanitarian assistance. To date, over 1,700 organisation publish data using the IATI standard, whilst a range of actors and stakeholders consume it for a wide variety of use cases. Changing and updating the IATI Standard In the intervening six years no further updates have been rendered. In this light, the IATI Governing Board and Members commissioned a short-term Standard Stewardship Working Group (SSWG) to assess the change control process for the IATI Standard. Alongside this, the SSWG were asked to consider what principles could be put in place to further govern and guide future collaborations to update the Standard. The purpose of principles In discussing such principles the SSWG moved towards to sets of principles that can help guide the initiative:
Principles For IATI Standard Change ProcessesAny process to change the IATI Standard should respect these principles:
Principles For The IATI Standard During ChangesWhen evaluating potential changes to the IATI Standard, these principles should be considered:
|
Beta Was this translation helpful? Give feedback.
-
It looks good, and I appreciate the mention of data consumers. I have one very-small proposed tweak. I think it would be good to acknowledge the ultimate intended beneficiaries of this work somewhere in the document, and to make it clear that schema changes need to serve their needs (directly or indirectly) in the end, and that they have a right to be consulted (the "nothing about us without us" principle). |
Beta Was this translation helpful? Give feedback.
-
I would like to add another principle: no redundancy. With redundancy in this context I mean that a change may not cause any duplication of functionality in the standard. Duplication of functionality makes the standard more complex and the data become less comparable over publishers because the same information is expressed in different ways by different publishers. An example of a redundant change would be adding a new country codelist based on the 3-letter ISO country codes. This change should be rejected because it is functionally the same as the current 2-letter ISO country list. The no redundancy principle would also exclude changes for data elements which can be derived from existing IATI data elements. E.g. a change for adding an activity status 'inactive' which covers both the 'suspended' and 'closed' status would be rejected. |
Beta Was this translation helpful? Give feedback.
-
For me 'Clarity' means that every change leads to a better understandable standard. So the meaning of every real-world concept modelled in the standard should be easy recognizable, understandable and open to only one interpretation. Only when this condition is met, clear communication about is change is possible. An example i.m.o. is the definition of the Organisation Role which now leads easily to discussions on how to interpret the meaning of the different codelist values. |
Beta Was this translation helpful? Give feedback.
-
Stated in our Terms of Reference for the SSWG is
And - as stated outcome for us is:
Leading to
To get us started, it would be great to hear from members what principles you see as important, regardless of what type of change we might be considering.
We already touched upon some in our 17th September meeting, including:
So - whether you publish IATI data or use it (or both), if you were to read about a potential change to the IATI standard, what kind of things would you expect to be considered when assessing it?
Thank you for you time!
Beta Was this translation helpful? Give feedback.
All reactions