Engineering Lead
Contact Information
Email: burke@openmrs.org
Phone: +1-317-274-9191
Twitter: @ekrub
IRC: burke
Blog: http://blog.burkeware.com/
Office Hours: Mondays 10-11am US/Eastern
Description
The Engineering Lead is an individual who oversees and operationalizes the OpenMRS community software development process. This person has the requisite leadership skills to turn community feature requests (represented in the software development roadmap) into specific community design and development activities. He or she does this in a way that is architecturally robust and reusable.
Responsibilities
- Establishes community culture around software engineering process: “each OpenMRS developer should feel like they are the center of the universe”.
- Oversees process to convert developer volunteer interest into routinely active contribution
- Arbitrates the OpenMRS open source development process
- Ensures that the development roadmap is realized in a timely, responsive fashion in the form of new, implementable releases of the platform
- Ensures that the OpenMRS platform is adapting to community needs over time in close collaboration with community leadership
- Identifying key modules/features of OpenMRS requiring support/integration
- Ensures a sustainable architecture for the OpenMRS platform and core applications
- Participates in most development, design, and project management calls
- Fulfilling the development road map laid out by the community.
- Ensures that the developer community is participating in the road map planning process, representing developer needs & contributing technical expertise and scoping to road map planning decisions.
- Ensuring appropriate management/oversight of full-time OpenMRS (e.g., seconded) developers
2014 Engineering Goals
Process & Roles
- Engineering roles refined
- Rotating manager in place
- Make sure people are working within their roles
- Process defined for prioritizing available community development
- Process defined for queuing work for community development
- Continuous deployment advances
- Lights stay green – e.g., process for handling red lights defined & understood by community
- At least two sizes of deployments in test harness (small & big)
Developer Experience
- SDK used by most developers (new & experienced)
- SDK working with OpenMRS 2.0
- Attribution in nightly builds – i.e., automated attribution
- Exploring metrics of developer experience (recognizing when someone is making significant contributions, devs are being lost, etc.)
Software Development
- OpenMRS Platform 1.11 release (with all the changes that were previously done for 1.10)
- OpenMRS 2.1 defined and released
- Shift to MariaDB as default engine
- We finally get a new module repository
2013 Engineering Goals
Process & Roles
Roles Defined (documentation of expectations, requirements, ...)
- Community (volunteer) Developer
- Development Manager
- Community Development Leader
- Technical Leader for Sprint
- Sprint Product Owner
- Dedicated Sprinter
- Business Analyst
- Documentation Leader
Implementations noticeably more involved in development
Tangible maturation of our continuous deployment practices.
Developer Experience
- The birth of a developer SDK by Q4 2013
- Improved developer documentation by Q3 2013
- A developer guide (soup-to-nuts technical introduction)
- An API reference guide (e.g., singe-page HTML "OpenMRS Developer Reference Guide")
Software Development
- Fulfill the 2013 technical road map. :-)
- First release of the OpenMRS Reference Application – OpenMRS 2.0 – at Implementers Meeting 2013
- At least one minor release
Requirements
- Infrastructure support (wiki, ticket tracker, continuous integration, mailing lists, …)
- At least 5 FTE of dedicated OpenMRS Developers that can be held accountable to oversee development (code review, provide development leadership for sprints, training activities, etc.)
- At least 1 FTE of dedicated OpenMRS Documentation support that can be held accountable to ensure that technical documentation is progressing & sustained.
- At least 30% protected time
- Project management support (BAs coordinating/leading scrums, managing agenda, keeping minutes, ...)
Not Responsible for...
- Maintaining roadmap and coordinating discussions with stakeholders around it (this should be in the purview of community leaders)