We are working on a project that (roughly) consists of following parts:
- back-end application,
- central communication server, and
- client applications for several platforms.
Our "team", on the other hand, consists of several one-man teams, each person working on a different part of the project.
We are using JIRA+Agile. We have created a single project in JIRA, and a component is created for each above mentioned part. Each issue is assigned to correct component(s). This goes mostly for Epics and Story issue types, where it actually makes sense.
We write user stories in such a fashion so that PO can see clearly what is gained by completing this story (i.e. allow user to see his inbox). We tend to create stories that are granular enough so that they can be reasonably completed within a sprint. Actual development tasks are created as sub-tasks of main Story issue. We estimate our stories by playing Planning Poker, even though different people might really have different amounts of work involved in each story, and it makes sense for us.
This approach allows us to also track progress of implementing complex, new functionality across all components (Epics) by breaking it down into discrete Stories, and then creating sub-tasks for each task that needs to be performed. As tasks are resolved, stories auto-complete themselves, which is all nice and sweet, and we are generally satisfied with how it all works.
However... We are going to build another client application for a different platform (part of the same project). The work we will need to perform is already well defined in existing Stories, as most of that work has been completed in other client applications for other platforms. The trouble is, all those stories are already completed! And, furthermore, amount of story points for each Story is estimated long ago...
One way is to duplicate all user stories, regarding existing client apps, redefine them a bit to make it clear which platform they are targeting, re-estimate them for that platform.. Another way is to basically create a user story for each piece of work that needs to be done on each platform, BUT, this approach will break entire process from the point of view of PO, thus breaking desired functionality into several (probably not equally readable) stories... Maybe it was a mistake to create a single project for all components? But, it was driven by the fact that client apps for each platform would basically replicate each other at least 90%, so there would be a lot of overlap and duplicated issues...
Question: What would be a good way to organise such a project using JIRA and Agile, that would allow us to work in similar way that we already do, but that would also allow us greater flexibility when adding new components that would basically have to replicate functionality already implemented in other client apps?
Thanks for reading ;)