What is open source?
"Open source" means that the software code is publicly available so that anyone can contribute to the code base and create add-on extensions. This enables the growth of a market of providers that can offer hosting and add-on functionalities that can be utilized by all SEED Platform™ users. More information about open source principles can be found at the Open Source Initiative.
What are the benefits of open source software?
The open source approach to software development engages a community of interested users and developers in a collaborative effort in which everyone improves upon the code and shares the changes within the community. Some well-known open source projects include Linux, Mozilla, and Android. Whenever someone in the community makes an improvement, the whole community gets to benefit from the improvement. This enables the development and maintenance of a high-quality product at a low cost to the individual users. Even though the core software is free, third parties still charge for data services, “apps,” etc., that run off the open source platform.
The SEED Platform is being developed as open source software to encourage market development of products that are flexible and meet different users’ needs, providing a range of options. As more users adopt SEED and more developers engage in the community, the functionalities will improve and evolve faster than any single company could achieve on their own. If a lot of entities are all using the SEED code base, that creates a market where it is worthwhile for third parties to develop and offer hosting and add-ons, while preventing vendor lock-in. This also creates a gravitational effect where it is worthwhile for third parties to help keep the core code up to date so that they can continue to offer their add-on products. If there is a thriving community of developers and end users, everyone benefits from the upgraded codebase and is in the best interest for everyone to subscribe to the latest version of codebase versus a modified, proprietary branch.
The open source approach began in the technological community as a response to proprietary software owned by corporations. In the long run, proprietary products can be very difficult to support and the main branch code is lowest cost. Sticking with an open source core also avoids vendor-lock in issues that can be expensive. It provides most flexibility that is not available in branched off or closed products. The give and take of the gift economy benefits all the end users.
Will new products that are created by the SEED developer community continue to work with other tools?
Yes. All products that use the same code base, identified through use of the SEED Platform brand and logo, will remain interoperable.
What is the difference between modifying the SEED base code and creating add-ons? How do modifications or add-ons affect the use of the SEED trademark brand?
Because the SEED Platform is open source, anyone can take the software code, modify it, create derivative works etc. But DOE will retain control over the trademark “SEED Platform” and only allow products to use that name and logo if their products use the official version of the code base. If a company uses the official code base, and then provides hosting and add-on functionalities on top of it, they will be able to use the SEED Platform brand. This will help ensure the quality and interoperability of SEED-based products.
Modifying the code
Under the SEED Platform license agreement, anyone will be able to access the SEED software source code for free and modify it to suit their needs. This could include enhancements to the database structure, user interface, bug fixes, etc. Developers will have the choice whether or not to contribute their modifications back to the SEED project. Modifications that are contributed back the open source project will be available to everyone under the “SEED” brand. Contributing modifications to the open source project will ensure the consistency, quality, and interoperability of the SEED Platform. It will also allow users to access improvements to the platform for free and collaborate with federal, state, local and private entities on software development and enhancements. Modifications that are not contributed back to the project will result in a derivative product and can no longer use the SEED brand, as the DOE cannot vouch for the quality or interoperability of the work. There may be reasonable situations for doing this, such as a utility program customizing SEED in a way that is very different and unique and would really only work for them.
The SEED Platform open source model also allows for the growth of market providers that can offer hosting and add-on functionalities that can be utilized by all SEED users. This could include advanced data cleansing and analysis modules, audit data collection templates, graphic visualizations, etc. The key difference is that this code package would interact with the “core” code via the application programming interface. Software products that utilize the SEED code base as‐is and build functionalities onto the API may utilize SEED in their product name or branding. This will allow software developers to develop proprietary add-on products and build out functionalities that meet market demands, and charge for these additional functionalities. Because these add-ons will run off the core, the developer will be able to market the add-on product to all SEED users and charge a fee.