Question
What is feature hiding?
Answer
Feature hiding is the practice of toggling or disabling of a feature. The feature may be part of an application, but the users cannot access it or use it. Sometimes code is released in an imperfect way; sometimes there is insufficient confidence to make the feature visible and accessible, but to remove the feature from a release would require too much work. Feature hiding is an aspect of incremental development used to keep a codebase deployable. A future release may unhide (or toggle on) the feature. The term is used in the book Continuous Delivery (on pages 405 and 415).
Feature hiding is related to canary releases. A canary release is one that is released to a subset of users (e.g., via a single pod in a multi-pod application or a single server in a cluster of servers). This way it can be tested in production. If it introduces a problem (e.g., fails regressive testing), the problem(s) should be limited by the nature of its release. To dark release code, feature hiding may be a way to do it.