Current/Best practices for storing and applying customer-specific configuration and branding to your software product

Say we're building a search engine for a business to search for information across all their digitized files and assets. (this is a contrived, exaggerated example.) This is our core product that we want to sell to multiple companies.

Now say each company wants to customize the experience for their employees by applying their own branding and settings such as number of results per page or whether to enable link tracking. Fortunately, we have architected our product in such a way that this can all exist as a folder of configuration files.

Now say for purposes of this example that we do all the configuration for the customer. My question is what is the current thinking and practices for storing configuration of your product?

  • Do you store configuration under version control and does it exist in the same repo as the core source code or in a separate repo?
  • Do you store configuration in a database of some kind including images such as logos?
  • How do you apply a specific configuration during your build or deployment process?
  • Do you treat how developers customize the software differently than how a customer would and how can developers share configuration?

As a side question, what is this even called? When I google "configuration management" or "configuration control" I get something different than what I am trying to communicate in this example. I don't know what to research here.

submitted by /u/ryanjarvis
[link] [comments]

from Software Development – methodologies, techniques, and tools. Covering Agile, RUP, Waterfall + more! https://ift.tt/2Uks4PF

Leave a comment

Design a site like this with WordPress.com
Get started
search previous next tag category expand menu location phone mail time cart zoom edit close