User and client support is an essential element of any actively used and developed software product. Any useful software product requires corrective and perfective maintenance, especially as its ecosystem (hardware environments, compilers, etc.) evolves. Support plans and planning activities are also essential, especially for clients.
The Trilinos Project is committed to providing support for its user community, prioritizing support activities according to its mission requirements. This policy sketch provides the framework for conducting support activities, roles and responsibilities. Detailed support strategies for funded projects should be consistent with the policy stated here and provide further detail.
Software support is a significant cost. Many studies estimate support and maintenance to be 70 - 80% of the total software project cost. Any improvement in support will have significant impact on quality, cost and time.
Support of actively developed software is most effective when those who are involved in the development effort take ownership of support planning, and are the first point of contact with issues arise. These people have the fullest awareness of development goals, target computing environments and project priorities. Furthermore, these people should invest adequate time and resources into testing and documentation infrastructure, preparing for the future when the code is no longer actively developed but still used, and support is transferred to others.
Support of software that is not actively developed starts with the Trilinos framework team. This team will work with clients and users to determine the best approach for acquiring technical and funding resources.
The Trilinos Project considers its interactions with the general user community to be an essential element of our success. This user community, numbering in the tens of thousands, provides essential value and vibrancy to the project. Contributions include fault detection and correction, ideas for improvement and new capabilities and interactions that spur creativity toward next-generation capabilities. We will support the general community as we have resources, and to the extent that requests are consistent with funded client and user needs.
Most Trilinos capabilities are developed within projects targeted at specific modeling and simulation capabilities. Direct funding is provided for both application developers and for Trilinos developers and support staff. For these projects (called funded projects below), the following statements apply:
- Trilinos support will be an explicitly planned and funded activity within the funded project: While the Trilinos project has dedicated support staff, staffing and funding for support must come from aggregate resources provided by funded projects. Specific project budget amounts should be set aside for support.
- Funded projects will have a support plan that is consistent with Trilinos support policies: The Trilinos support policy provides a framework for support planning and activities, but should be customized and fully developed as part of the funded project planning.
- First level Trilinos support will come from funded project team members who are part of the Trilinos team: Trilinos team members who are part of a funded project must be the first points of contact for Trilinos support. They can engage the Trilinos framework team and other Trilinos team members to provide full support. Significant support from the broader Trilinos team should be part of the funded project support plan.
- Trilinos developers will follow Trilinos policies to reduce future support costs: Trilinos developers are expected to follow Trilinos policies for Issue Management, Testing and Pre-push Testing. They are also expected to work with the Trilinos framework team to develop a project-specific support plan.
- Trilinos framework staff will oversee funded project support activities: Trilinos framework team members are responsible for support policy management, tools and testing environments. They will work with funded project teams to assure that funded project support is effective and consistent with Trilinos policies.
- Trilinos framework staff will provide support for framework activities associated with funded projects: Trilinos framework team members will provide funded projects with support in the use of build, integration and testing infrastructures, understanding Trilinos issue management, testing and other policies. If framework staffing demands are significant, the funded project should budget for this effort.
- Policy Scope: This policy formally applies to any Production Growth package development. It also applies to modifications of other Trilinos packages that are not being actively developed but are essential and may require modification. It is encouraged for packages in other phases (Research Stable or Production Maintenance).
- Exceptions: Yes, there will be exceptional circumstances where you need to bypass the support policy, but it should be the exception and addressed as soon as possible. Exceptions should be documented and reviewed by Trilinos framework staff.
Contact Mike Heroux [email protected]