В своих путешествиях я лично не видел определенной литературы по большинству хороших практик, хотя подозреваю, что там много чего есть.
Номера версий предоставляют действительно простой механизм для привязки определенных версий в дикой природе с определенными наборами изменений кода. Технически, это не имеет значения, сколько уровней в номере версии, если разработчики старательно гарантируют, что для каждой «уникальной» выпущенной версии существует «уникальный» номер версии.
Логика диктует, что для ограничения затрат на поддержку (которые огромны, зачастую хуже, чем затраты на разработку) разумная организация предпочла бы иметь наименьшее количество «уникальных» версий, работающих в полевых условиях. Это было бы здорово, однако в реальном мире их обычно немало. Это вопрос стоимости и удобства.
Обычно первое число указывает, что эта серия выпусков не имеет обратной совместимости. Следующий номер говорит, что это в основном так, но некоторые вещи изменились, а последний номер говорит, что некоторые вещи были исправлены, но все документы остаются в силе. При таком способе вам не нужен четвертый номер, даже если вы выполнили некоторые конкретные исправления по запросу подмножества ваших клиентов. Решение стать более ориентированным на клиента не должно влиять на вашу схему нумерации (и, следовательно, это плохая идея).
Ветвление на основе запросов клиентов - абсолютное безумие. Один основной ствол имеет важное значение, поэтому каждый раз, когда вы переходите, он создает огромный технический долг. Ветка достаточно, и вы больше не можете позволить себе проценты.