Based on what’s coming out of this conversation, I hear that there’s a clear need for a group/team of people - including a technical architect - to provide the community (including implementations) with technical leadership and guidance.
The Product Change Committee and Technical Action Committee have been talking about doing some of these things as a part of their scope: watching over the platform/ref app/modules, providing technical guidance that will drive the evolution of the platform/endorsing or recommending technologies (like microfrontends, FHIR), identifying what modules can be harvested from implementations, etc. It sounds like they are headed in the right direction.
So then it comes down to having the right people involved - the technical lead/architect as well as technical leads from implementations. The more implementations get involved, the more likely the result will respond to challenges implementations are actually grappling with.
@darius, I would say that the MF Squad and now the FHIR Squad are moving towards working in this way. You also make a good point about the strong PM function. Within the context of the PCC+TAC and squads, the OpenMRS TPM ends up playing a critical role.
Regarding the TAC, it’s been great to have those meetings and try come up with a vision, but unfortunately and honesty, the time I’ve been able to devote to that is limited. I don’t want to speak to for @angshuonline but I don’t know if any of us currently on the TAC has the time to serve a technical architect role as I see it. What I’d love is if there was someone on that call who could be tasked with digging into the code and developing a more detailed technical design based on the vision and the input of the people on the call.
Re: one person or many, I’m not suggesting one person as a “gatekeeper”, and I like @darius’s explanation of a “problem solver”. I don’t think it necessarily needs to be one person, but it needs to be people who have the time to do the kind of things I mention above… to have the dedicated time to move forward the platform (or whatever portion of the platform they are responsible for) without being pulled into implementation challenges. I think we’ve actually got this working rather well for the MF project, but I think other aspects, such as base core development, needs some more focus.
I realize that saying “OpenMRS needs to find that person (or persons) and makes this happen” is deflecting the responsible, since we are OpenMRS. But looking to brainstorm ways to make this happen.