I would like to ship some new features just for a specific group of users to better test it in production and then release it progressively to everyone, should i put IFs in my code and assign specific policies to users in the database? Is there a better way to do it?
How can i ship new features only for a group of users?
34 Views Asked by Mazza At
1
There are 1 best solutions below
Related Questions in SOFTWARE-DESIGN
- Adding users file storage feature to my application
- How to use GoF design pattern for software robustness?
- Handling media in chat apps
- In DDD where to handle interaction with external services that is part of business logic? In Domain Model or in Command Handler?
- which programming language is suitable for this task?
- Is it good practice to derive a builder from the class it builds?
- Liskov Substitution Principle: Confusion about additional Functionalities of sub types
- Handle changes in calculation logic for order system
- Having all features in single application
- The best representation for duration between dates in rest api
- Broadcast events to all Application Instances
- Security and users in a microservice architecture
- Is "abc" + 5 considered an expression in python?
- Architecture, EF Core 8 and large SQL queries best practice question
- How to create database software with custom extension to save and reload later with C# WinForm App
Related Questions in SOFTWARE-DISTRIBUTION
- Ending Support for Older Android Versions in My App's Free and Paid Versions on Google Play
- Having all features in single application
- Is it legal to copy APIs and concepts of proprietary operating systems?
- Unable to write to Redis
- VS2022 compiled exe closes upon startup on fresh system
- Laravel and Redis implementation
- Redis cluster between 2 servers, Waiting for the cluster to join takes forever
- issues npx create-next-app --example with-tailwindcss with-tailwindcss-app Creating a new Next.js
- Web Automation and API synchronization problem?
- Is there an API or method for querying the first and last data in this project?
- How to enable signing (for redistribution) for all dependent dlls built via vcpkg?
- Deploy/Redistribute binaries compiled with ObjectBox Go
- Microsoft App Store: Silent installation requires elevated permission, but this is not disclosed in the Description
- What is the "Distributions" section of .xcarchives Info.plist used for?
- How to upload a face image to IVMS without overwriting the other saved images
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The normal way to handle this is have two versions of your software. The "main" version is the one most people are on, but you also release an "experimental" version which has the new features.
There are various ways to manage the software, but you should look to use strong version management practices in your source code repository, perhaps using some good branching techniques. You should avoid the two versions from diverging too much.
You can choose to invite certain users to the "experimental" version, or have them opt in but give the necessary caveats that things might not work as well, and if you have any SLAs then you might want to caveat them. If you are hoping users will provide you with feedback then make sure there is a good mechanism for that and that the users are aware of it.
If you have client software then uses will need to get hold of the new version themselves. If your software is purely server side (eg a web application or SAAS platform) then you might look at a routing layer eg in the load balancer which automatically sends users to the normal or experimental version depending on whether they are part of the relevant group.
This is a common scenario in software and you should be able to do some good research. I suggest you start by looking into A/B testing.