------
## 最终结论
```python
def sort_words_by_length(words):
    return sorted(words, key=len)

def initialize_chain_dict(words):
    return {word: 1 for word in words}

def check_predecessors(word, chain_dict):
    for i in range(len(word)):
        predecessor = word[:i] + word[i+1:]
        if predecessor in chain_dict:
            chain_dict[word] = max(chain_dict[word], chain_dict[predecessor] + 1)

def return_maximum_chain_length(chain_dict):
    return max(chain_dict.values())

def find_longest_chain(words):
    words = sort_words_by_length(words)
    chain_dict = initialize_chain_dict(words)

    for word in words:
        check_predecessors(word, chain_dict)

    return return_maximum_chain_length(chain_dict)

# Example usage
words = ["a", "b", "ba", "bca", "bda", "bdca"]
longest_chain_length = find_longest_chain(words)
print(longest_chain_length)  # Output: 4
```