We believe in applying a high level of design and product thinking to any enhancements to Bahmni, to ensure that the product remains easy to use, and its features are built for general use cases and not overly-specific ones.
Before any feature is built, it must go through a public design process, giving the Bahmni community space to comment on its relevance to their range of use cases.
This includes both enhancements planned as part of the shared roadmap, and also enhancements done for a specific implementation with a plan to incorporate them into the core Bahmni product.
As a distributed open-source project whose actual code is written by multiple independent stakeholders, it is frequently the case that someone wants to contribute a product change that is not on the official roadmap.
Ideally, this individual or organization will propose this change ahead of time on the discussion forums, and incorporate feedback from the Product Architecture Team and Technical Advisory Boards on how to design the change.
In case this pre-coordination doesn’t happen, and someone wants to contribute an already-built feature, it must pass a similar level of product and technical design review, and give suitable time for public comment on whether the feature is correct for the product.
For non-trivial already-built changes, (1) the Product Architecture Team reviews whether the feature is suitable, from the perspective of product direction; (2) the Technical Advisory Board reviews the contribution for general technical suitability; and (3) if necessary end-user research is carried out. The contributor is then expected to incorporate any feedback before their contribution is accepted.