Some pieces of information are not free, like text, nor numeric; they are one of a defined set of options. Selection fields hold those. This piece is about selection fields in Odoo.
Information that is one of a set
Some information a record holds is genuinely a choice from a defined set. The information is not free text, which could be anything, and not a number; it is, genuinely, one of a particular, defined set of possible values. A state, a category, a kind, where there is a defined set of what it can be, the information is genuinely "which one of these". A selection field is the field type for exactly that.
What a selection field is
A selection field, in Odoo, is a field whose value is one of a defined set of options. When the field is defined, the set of possible options is defined with it, and the field's value is, then, one of those options. A selection field genuinely constrains the value to the defined set: it is not free, it is a choice from the options. The selection field holds information that is genuinely "which of these defined options".
Why selection fields suit this information
A selection field suits information that is genuinely one of a defined set, and using it for that information is better than the alternatives. Holding such information as free text would not genuinely constrain it to the defined set, and would allow values that are not among the genuine options, inconsistency, mistakes. The selection field genuinely holds the information as what it is: a constrained choice from a defined set. So the value is always genuinely one of the genuine options, which keeps the information consistent and correct. For information that is genuinely a choice from a defined set, the selection field is the field type that genuinely matches it.
Defining the options well
The practical point for a developer using a selection field is to define the set of options well, so the options are the genuine set of possible values that piece of information can be. The selection field is only right if its defined options genuinely match the real set of possibilities. A developer defining a selection field should make sure the options are the genuine, complete set, so the field genuinely constrains the value to what it should be. Defining the options to genuinely match the real set is what makes the selection field correct.
The takeaway
Selection fields in Odoo are fields whose value is one of a defined set of options, the field type for information that is genuinely a choice from a defined set, such as a state, a category, or a kind with defined possibilities. A selection field genuinely constrains the value to the defined set, which is better than holding such information as free text, since it keeps the value always genuinely one of the genuine options, consistent and correct. A developer should define the set of options to genuinely match the real set of possibilities. For how we approach Odoo, see our ERP practice.