Published using Google Docs
2016 OpenMRS Platform Goals
Updated automatically every 5 minutes

Develop and evolve the OpenMRS Platform, the foundational product of our community

The purpose of this document is to document the goals & tasks we believe OpenMRS needs to meet the objective in time for sharing & discussion at OMRS15.

We should strive to come up with metrics for each Goal. Each task should have one or more objective success criteria (i.e., how do we know that the task was achieved?).

We will draw out our achievable-if-resourced goals for 2016 (i.e., when defining goals & tasks for 2016, assume that we can get the resources to achieve them), use those to define the additional resources needed, and then review those and define which are at risk or will not get done without additional resources.

Team (responsible for getting goals documented)

Objective

Outputs before Singapore

Outputs after Singapore

Goals & Tasks

Philosophy and Process

Road Map 2016

Parking Lot Items:

Team (responsible for getting goals documented)

Burke Mamlin (lead), Andy Kanter, Kaweesi Joseph, Darius Jazayeri, Sri Maurya Kummamuru, Jan Flowers

Objective

Develop and evolve the OpenMRS Platform, the foundational product of our community

Outputs before Singapore

Outputs after Singapore

Goals & Tasks

Philosophy and Process

  1. Identify, engage, and describe users of the platform
  1. Metrics:
  1. Documented types of Platform Users on wiki(1)
  1. Note:
  1. look at implementers data available (that Judy presented)
  1. Metrics:
  1. At least one mechanism introduced to look at platform usage patterns
  1. Notes:
  1. Consider collecting information at the time of Platform download 
  1. Published Platform Road Map
  1. Metrics:
  1. There is a Platform Road Map page on the wiki, and it is up to date for next (1-2?) releases
  2. There is a link from somewhere on openmrs.org to the Road Map wiki page
  1. Metrics:
  1. Short links
  2. Links used in forums
  1. Describe how people or organizations can influence and contribute to the Platform Road Map
  1. Metrics:
  1. The majority of New Feature tickets in the 2016 Platform release (e.g. 2.1) went through the platform road map process
  1. Describe how the Platform Road Map is prioritized, and how people or organizations can influence the prioritization. (Parking lot items)
  1. Document and announce 2016 OpenMRS Platform release schedule
  1. Metrics:
  1. Documented page describing the release process and schedule
  2. At least one new release of the Platform in 2016, that happens in the scheduled month
  1. Define role & expectations of Release Management Lead (for Platform & Ref App)
  1. Identify and describe the release process and schedule
  2. Manage the release process by facilitating the release managers
  3. Keeping the release process current
  1. Communicate effectively with the community before releases to anticipate issues (e.g., info for module authors, distributions, etc.)
  1. Define the current limitations (concurrency, number of obs, number of patients, number of concepts, …)
  2. Upgrade and Installation Testing as part of release process
  1. Roadmap includes a spike on scaling OpenMRS bigger than anyone has done so far, and identifying bottlenecks to be addressed
  1. Create a clear process for regular reviews of that architecture
  1. Identify and publish Quarterly/Half-year dates to have this architecture review
  1. Define what the Platform is and what is should/could be
  1. Postgres Compatibility
  1. Sufficient “always on” resources to empower/leverage the volunteer community to build the OpenMRS Platform as effectively as possible
  1. Metrics:
  1. Metrics:
  1. Metrics:
  1. Metrics:
  1. Metrics:
  1. Metrics:
  1. Metrics:
  1. Metrics:
  1. "Sufficient dedicated development resources" to consistently implement Platform road map items and respond to critical bugs with a minimum velocity, as volunteer effort fluctuates
  1. ≥4 devs focused (in the zone) on a development activity/sprint
  2. ≥1 dev supporting the community
  3. ≥1 dev working directly with an implementation
  1. Understand and Grow the development team
  1. Road Map for SDK
  1. ≥4 within 3 months, ≥7 within 6 months, ≥10 within 12 months
  1. REST and FHIR web services
  2. API
  3. Security
  4. Databases
  5. Documentation

2016 Resourcing Goal (Dedicated resources)


Notes


Objective 1.1: The OpenMRS Platform Road Map is driven by consumers and managed by a coordinating group, in a well-known way

Initiative/Activity

2016 Milestone

Lead

Performance Measures

Identify, engage, and describe users of the platform

Document the types of users of the platform and how each can contribute and shape it over time (e.g., Implementers, Organizations, Developers, Architecture Strategic Goals)

TBD

Documented types of Platform Users on wiki.

Look for ways to monitor usage & infer use of the platform, identify new user groups, detect problems, etc.

TBD

At least one mechanism introduced to look at platform usage patterns

Define (and fill) a role to oversee Platform user engagement - (maybe a shared role)

TBD

Published Platform Road Map

Publish Platform Road Map on openmrs.org

TBD

  • There is a Platform Road Map page on the wiki, and it is up to date for next (1-2?) releases
  • There is a link from somewhere on openmrs.org to the Road Map wiki page

Promote the road map

TBD

  • Short links
  • Links used in forums

Describe how people or organizations can influence and contribute to the Platform Road Map

Define & document process for how ideas, resources, and/or ideas+resources can influence the road map

TBD

The majority of New Feature tickets in the 2016 Platform release (e.g. 2.1) went through the platform road map process

Describe how the Platform Road Map is prioritized, and how people or organizations can influence the prioritization.

Define & document how milestones are prioritized

TBD

TBD

Concretely describe how a platform consumer can raise the priority of an item of interest.

TBD

TBD

Have a process identified of how an implementer can contribute back to the platform

TBD

TBD

Objective 1.2: The OpenMRS Platform will be released on a predictable schedule

Initiative/Activity

2016 Milestone

Lead

Performance Measures

Document and announce 2016 OpenMRS Platform release schedule

OpenMRS Platform release schedule documented

TBD

OpenMRS Platform release schedule documented on the wiki.

OpenMRS Platform release schedule announced

TBD

Announcement to community describing the Platform release schedule.

Define role & expectations of Release Management Lead (for Platform & Ref App)

TBD

Objective 1.3: The OpenMRS Platform will be scalable & reliable

Initiative/Activity

2016 Milestone

Lead

Performance Measures

Define the current limitations to scale

Define concurrency limitations

TBD

Document number of concurrent users supported on a specific (standard-sized) implementation.

Define content limits (obs, patients, concepts, …)

TBD

Document number of rows before performance is significantly affected or bottlenecks uncovered for primary resources (patients, encounters, obs, concepts).

Upgrade and installation testing

Installation testing through CI.

Upgrade testing through CI.

Describe effort needed for upgrade path for common scenario(s).

Objective 1.4: The OpenMRS Platform will stay current, relevant, and accessible

Initiative/Activity

2016 Milestone

Lead

Performance Measures

Create a clear process for regular reviews of the Platform architecture

Identify and publish Quarterly/Half-year dates to have this architecture review.

TBD

Define what the Platform is and what is should/could be

Define which modules can be incorporated into the platform and how those can be supported and sustained

TBD

Describe strategy and road map for the boundaries of the platform

TBD

Define the governance for what is in the platform

TBD

Increased database compatibility

Confirm MySQL and MariaDB support

TBD

Add PostgreSQL support

TBD

Objective 1.5: The OpenMRS community will ensure consistent, productive development resources exists to build and refine the OpenMRS Platform

Initiative/Activity

2016 Milestone

Lead

Performance Measures

Sufficient “always on” resources to empower/leverage the volunteer community to build the OpenMRS Platform as effectively as possible

Be able to identify and effectively use product owners and subject matter expertise

TBD

Different product owners and subject matter experts identified and listed (within 6 months)

Build a reliable technical project management team

TBD

At least one full time technical project manager (within 3 months)

Improve our ability to convert design ideas to actionable tickets

TBD

  • At least one BA (within 6 months)
  • Some level of UX support (need to determine based on 2016 experience if this is always-on or can be ad-hoc)

Reliably and quickly review & respond to issues (bugs, enhancements, etc.) for the Platform

TBD

  • Handled by the developer team.
  • Number of unvetted Platform tickets is shrinking (not growing)
  • Platform tickets get a response within 3? working days

Reliably and quickly review and merge volunteer contributions

TBD

  • Continues to be handled by the developer team?
  • All OpenMRS Platform pull requests reviewed and/or merged within 3? working days
  • All OpenMRS Platform merged contributions go through QA within 5? working days

Constantly iterate on improving workflow and experience for Platform development, so developing for OpenMRS is a great (and always improving) experience

TBD

  • Development environment can be set up in less than 15 minutes
  • Hello World can be achieved in less than 1 hour
  • Updated Developer’s Guide in 2016

Produce and maintain technical documentation, and make it easy to find

TBD

  • Published living REST/FHIR documentation
  • Published living Java API documentation
  • Published and updated Architecture Overview
  • Lead an external review of platform documentation
  • A process for maintaining and improving documentation
  • Documentation is commonly referenced in community discussions

Cultivate experts to advise on a regular basis (e.g. FHIR & REST expertise, API expertise, and other technical expertise relevant to the platform)

TBD

At least one expert identified (within 12 months)

"Sufficient dedicated development resources" to consistently implement Platform road map items and respond to critical bugs with a minimum velocity, as volunteer effort fluctuates

Resources to support a minimum team within the community.

TBD

  • Technical Project Manager
  • BA
  • ≥ 6 Dedicated developers
  • QA
  • Technical documentation

Understand and Grow the development team

Metrics to assess contributions to github

TBD

Automated or semi-automated regular metrics contributing to a dashboard of community contributions in GitHub.

Create tools and processes that help developers be Devs productive in 1 hour

TBD

A new, naive developer can create a running Hello World module within one hour.

Grow code review capacity

TBD

≥4 within 3 months, ≥7 within 6 months, ≥10 within 12 months

Grow active /dev/5s

TBD

≥10 active /dev/5s (within 12 months)

Begin defining “lieutenants” to delegate authority (e.g. volunteer tech lead for a specific portion of OpenMRS, who thinks about this ≥ weekly and has some authority & accountability in the area)

TBD

One or more “lieutenants” named.


Road Map 2016

  1. Document the OpenMRS Platform functional architecture
  2. Living REST API documentation (i.e., Interactive REST documentation provided by a module with static documentation drawn from source code)
  1. Perform formal load testing of the OpenMRS Platform
  2. Design and resource plan for clustering support
  1. Initial implementation of decision support API
  1. Include core terminology services in platform (support under Objective 6)
  1. Assess/create terminology needs road map for upcoming use cases
  2. Include indicators in the CIEL dictionary
  3. Move toward vision of vertical packaging
  1. Make localization of concepts easier


Parking Lot Items:

Strategic Goal 1:

Point 4:

How can the tickets be prioritized:

  1. Following the normal process - will be completed in the order they are picked up - (The ones high in the priority of the list will be encouraged)
  2. Consumers coming with contributors can complete the tasks after they have been added to the release roadmap
  3. Volunteers can be hired by consumers with funding to complete the tasks they want to get released.