I'm working in a company that mainly perform mobile apps with their backend systems. My question is, what's the best practice to handle the same projects over multiple platforms (iOS and Android) and keep them synced together using Agile approach? Should I use a separate project to each one, or handle them in the same project with having duplicate User Stories for each platform? Or do we have another solution for that approach?
You do not necessarily have the same "project" across multiple platforms. You must identify whether you are producing different (but similar) products that form multiple projects, or a single product with multiple front-ends that can be treated as a cohesive project within a single team.
Scrum projects are generally based around a "one team, one product" approach. While there may be edge cases with other frameworks, it is a good rule of thumb to follow with any agile practice unless you have a really solid reason to deviate from it.
Define Your Projects Based on Product Context
From a Scrum perspective, each team should be dedicated to developing a single product from a unified product backlog. This leads to two primary use cases:
- A single back-end product with multiple front-ends (e.g. Android and iOS), in which case a fully cross-functional team might be able to work from a single product backlog.
- Two separate products (e.g. an Android product and an iOS product) which each have a dedicated project team and separate product backlogs.
Similar Features Aren't Inherently Unified Products
Keep in mind that just because you have similar features in two separate product lines, that doesn't mean you have (or should have) a unified project. For example, you might have a common feature such as "user logins" in both products, but the products themselves are still different, and the implementation details of each feature are unlikely to be identical across products.
As a result, you must carefully decide whether you truly have one project or two, as defined in the section above. Similarity of features, or the existence of common user stories, is never sufficient by itself to merge separate products into a single project.
A lot depends on how the Product Owner sees the development for the two platforms.
Do they view the development of a feature for iOS and the same feature for Android as two seperate pieces of work that can be prioritised alongside other backlog items? For example, the search feature is a high priority on iOS, but a low priority on Android.
Or do they believe that a feature is only complete once it is available on both the iOS and Android platforms?
I would suggest that if every feature must be complete on both platforms it would make more sense to have a single backlog item per feature.