How to manage a project with several variations?

5

How do you manage the development of an application that is replicated to multiple clients?

My scenario:

One web application and 2 apps (1 for iOS and 1 for Android). For each client the base (master) is reused and specific resources are added that meet their needs. When a resource is of common interest, it is added in the base so that others can enjoy it.

When a new customer arrives:

Create a new branch for all 3 applications, apply your identity and perform the deployment.

My question:

How do you consider the best way to manage this type of project?

  • Through branches (as it has been done)
  • A new project for each new client
  • Other Suggestions

Remembering:

The environment I use is seamlessly integrated (IC) with Jenkins. So how do you manage the build for each of the clients? For each client a build? A build for all variations (all clients)?

Thank you to anyone who can contribute to the clarification of this doubt.

    
asked by anonymous 30.03.2016 / 22:56

1 answer

2

I would do a central repository where I would clone the application's skeleton and each module would be created separately from the application to be installed through package managers, so it would make it easier to update each module and install everything when I clone the central repository the skeleton).

A repository for each project instead of branches will also make it easier, I use branches for new features instead of definitive ramifications of the main project, even though you need to create a build process on Jenkins for each new client you have that every case is a case, but I found it more practical to build with pure Git and automate tasks with shell script, but what's practical for me may not be for you and vice versa).

    
31.03.2016 / 01:12