Sorry for how long this is...
Where I work, we use Jira, but I don't feel we're using it to good benefit. In fact, I think we're using it quite wrong. However, I can't really figure out a better way to do things, so I'm hoping I can get some help on how we should go about structuring our projects.
First, what I mean by structure our projects is how we define our overall set of projects, when we create projects, etc... I can't imagine our situation is all that unique but so far i've been unable to find any insight.
It seems most people create projects based around a product. You create versions and components, and you assign issues to them. You can then assign issues to sprints or one-off them or whatever. That's not really the way we use it.
First, a little background. We do not have a "product" per se. We have an enterprise system. It's a whole bunch of applications that work together. You could call these components, but the problem is that many of them are components of multiple other components. For instance, we might have a web service that is used by several different top level applications.
When we do "projects", they tend to be oriented around features... For instance, this is the Blah Foo Release of the website, or the Blargh Bar release of our support desktop clients. To make things more complex, due to our "release" system we often roll security and bug fixes that are unrelated to the features into a feature release, because they have to be deployed in the same deployment window.
So in reality, while the projects start out as feature releases, they end up as Release window releases (ie whatever is ready to go during that window gets deployed).
So what we do is create projects based on the feature name. We don't really take much advantage of the component or version fields, unless a project spans multiple phases. When an issue is bumped to another release, it gets moved to that project which causes it to be renamed/numbered. This can lead to the person working on that feature not having access to the issue anymore since it was moved to a project they don't have access to (he wasn't on that project, so he wasn't included in it), so now we have to go through a user access process to give that developer access to the issue he's already been working on.
This all just seems like we're fighting the tool. Can anyone suggest a better way to structure things? Bear in mind that we still need to track issues by project as well, and unfortunately we're not "agile" at this time so using sprints is not going to work. We also want to give developers access to the issues for their project, not just issues assigned to them or issues assigned to the application/component.