Our "programs" typically are comprised of multiple components - say a web application and a services application. These apps have different versions and different release cycles. From the business viewpoint, when they create tickets, they don't necessarily know or care whether the issue relates to the UI or backend service - they just want to create an issue related to the program. However, when we are release planning and tracking development tasks, we are focused on those individual components, for example we may be ready to deploy our services app but not our web app if the web app has outstanding issues related to that version.
How can we best accomplish this? If we associate the Jira project with the program level, we lose the independence of our deployable units and the Jira features associated with that isolation such as independent versions and ticket tracking. However if we make individual projects for each of our deployable components, that will confuse business users to have to know more about the technical architecture than they normally would.
Is there a way to create an issue at a level higher than a project? Or some kind of support for subprojects? Or perhaps an ability to use the Components classification with greater independence? We're open to any ideas on how to solve this (probably common) situation.