In integrations mainly information is communicated to other System by passing id/code values instead of Labels. In Salesforce picklist has values and labels but before Spring 17 release there was not provision to have different value and label for picklist items.
Whenever different Label has to be shown to user and different code has to be passed to other system then some workarounds were required to be done like having code label mapping in code or keeping code values in custom object and passing those values in integrations. Such solutions were error prone and requires maintenance since in code it is required to do String comparison to get the proper code to be sent to other system.
Now we have a relief, in Sprint 17 salesforce has provided much required feature where we can have separate code and label for picklist items.
Now using this we could minimize the extra maintenance which was required initially. This is a great feature and should be considered in integrations.