How some projects failed

(@sunbiz and I were talking by email, and this seems like a better conversation to have publicly, so…)

XACML, spring-security/2FA/Oauth, flattened obs table, separation of server-client, simultaneous read-write performance, drag-drop form design, drag-drop workflow design

Looking into the first example of XACML… I went back and skimmed an email thread about this and another about ReBAC. Both were situations where out of the blue someone popped up and said “as part of a university project, I have completed X.” This is a classic example of the kind of “unveiling” that fails to gain traction in an open-source project (not because of any specific OpenMRS pathologies).

XForms vs HTML Form Entry

About XForms vs HTML Form Entry…OpenMRS never deprioritized XForms or chose to give it less space than HFE. PIH has a lot of developers using HFE, they invested in making HFE forms shareable via the Metadata Sharing module early on, they built their Mirebalais application on top of HFE, and worked to share this with the broader community. OpenMRS did not centrally control or suggest this. It’s an inherent issue in open-source software that a large group of coordinated developers can steer the way the community goes. (And that issue is neither inherently good or bad.) What should OpenMRS have done differently in this scenario?

Indeed, both of these were examples of “innovation on the fringes”. A very common phenomenon and in fact encouraged by organizations that realize that innovation will not happen in the center because the center is often blind spotted by “running the show”. I was among the few who responded to that post and tried to understand ways in which it can be integrated. The core developers, (which we’ve denied exist - everyone is equal), but it is still a set of developers who determine what goes into core did not encourage or attempt to understand the innovation. If we encourage these “unveilings” and then learn how it was done, there are better chances that people who unveil will try to integrate it…

Indeed, because PIH developers have put a lot of effort into HFE. But that means that teams which dont have developers will want to use XForms because its not active. And then in the reference application, HFE is integrated, while XForms is not. You alienated the users who want to use a tool that doesn’t need developers to create forms for data collection. A very basic task that clinicians want in their EHR.

How about the feedback that has been received from implementers meeting. The top requested feature at two implementers meeting (out of the three when we did ask for community feedback) was LDAP or Single-sign on systems. Core developers were never put to work on these, but only features that very limited few felt were important. That, like everything else I write is my personal opinion :slight_smile:

Hello, I realize that this is a fairly old thread, but I recently found myself thinking about this topic. I was the lead developer behind the ReBAC for OpenMRS project. I must disagree with that the statement that this project ‘popped out of the blue’ as a completed project. I made the following attempts to be recognized in the OpenMRS community.

  1. I authored the “Access Control in OpenMRS” and Privilege Checking for Access Control in OpenMRS pages for the developers Wiki.
  2. I spent time in the IRC channel, requesting help and discussing the project with people who were often there.

There was even a mention of this project at a developers meeting while I was still working on OpenMRS-ReBAC. Discussion found at the Wiki page; Security and Access Control.

When the project was completed I started a thread on this discussion board and even presented the project at a developers’ meeting.

Clearly the effort I put in was not enough to excite the OpenMRS developers community. In hindsight, would have you have any suggestions for me or other developers for promoting projects regarding OpenMRS?

Thank you, Zain

@szrrizvi i have seen very many people who have the exact same problem like you were trying to solve. In fact, i have pointed a good number of them, to your project. If this was done as a module, instead of a fork of the platform, am almost sure it would have been of great use to many implementations! :slight_smile: So the lesson i learned here is that any work, however useful it may be, should be in such a form that is easy to consume, while still taking advantage of the latest platform changes, without having to maintain a fork.