Skip to content

Collaborative Development#

Researchers who participate in the development of the Open Energy Family are known as "core developers". Their work involves capturing scientific processes that can be implemented in software, gathering requirements, and developing processes or artifacts such as software code and test results. Additionally, they contribute to the development of specific Family Members, like the ontology, drawing on their expertise in fields such as energy systems. Core developers collaborate with the open community to improve and maintain the software and troubleshoot any issues that arise.

To ensure the transparency and accessibility of the development process, all developments are publicly planned, executed, and documented on GitHub and in development meetings. Core developers also have direct or indirect access to internal systems such as servers that cannot be publicly accessible for security reasons.

While the core developers are responsible for the bulk of the development work, the Open Energy Family is open to participation from anyone interested in contributing. This includes stakeholders such as other researchers in the energy system domain who may not be directly involved in the research projects but have an interest in the tools and services offered by the framework.

As the work of core developers requires significant effort, funding is crucial to ensure their continued participation. It is therefore essential that individuals are deployed as part of a research project that provides adequate funding for their work. By embracing the collaborative spirit of Open Science, the Open Energy Family is able to leverage the expertise and contributions of a diverse range of stakeholders to create a more sustainable and equitable energy system.

Image title

Image caption

Collab. SDP#

GitHub Teams#

We have specific Softwaredeveloper Roles which are implemented as GitHub Teams to coordinate the development.
They can only be seen by members of the community.

Below, we present a comprehensive overview of all teams dedicated to the developement of software and provide clarification on the identified responsibilities for each role.

In addition to clarifying the responsibilities, we leverage teams to enhance communication. This is particularly effective on GitHub, where users can mention teams in issues, discussions, or pull requests to reach a group of individuals and increase the likelihood of receiving prompt responses. To contact a specific team, use "@" followed by the team name.

To apply for contribution, please get in touch. Take a look at our contact information.

Team Responsibilities GitHub Rights
oep-domain-expert-energy-modelling - Answers domain-specific questions
- Ensures that functionalities solve or support domain-specific problems
oep-community-manager - Moderates issues and discussions
- Enforces the "Code of Conduct" and "Contributing" guidelines
- Maintains the guidelines
oep-product-releaser - Enforces release guidelines
- Publishes GitHub release
- Ensures a release is delivered
- Maintains the documentation of changes and the release procedure
oep-product-owner - Knows the vision and mission of the overall project
- Knows the product
- Accepts or rejects changes
oep-ui-ux-developer - Ensures usability and user experience aspects are implemented
- Assists in creating mockups or general design tasks such as graphics, logos, icons, etc.
oep-software-engineer - Can independently carry out development according to guidelines
- Participates in the planning of ongoing development
- Mentors junior developers and provides general technical support
- Knows the architecture of at least one software product in the Open Energy Family
- Conducts code reviews
oep-junior-developer - Has little or no experience in software development and the Open Energy Family
- Wishes to contribute to development in the short or long term
- Has basic programming knowledge
oep-expert - Knows the entire system: all products, especially the software products of the Open Energy Family, including the current architecture and usage, as well as planned developments
- Understands dependencies and can assess the impact of changes
- Has the final say in development decisions, such as which technology to use, which standards to follow, which pattern to implement
oep-infrastructure-manager - Implements and operates the CI/CD pipeline and assists in troubleshooting and log analysis
- Installs new software versions on a server (after a GitHub release)
- Installs new test software version on a server (before a GitHub release)
- Manages the installation and operation of all other software tools such as documentation tools
oep-tester - Tests the software, for example, once a test release is published
- Continuously checks the functionality of the software products
- Continuously checks the content, such as texts in training courses or texts on websites, etc.