Connascence of Manual Task
The power of the concept of connascence resides in the fact that it is not just limited to code! Let's see this real life story to understand better the worst type of connascence of all.
I was once in a team that was building a new service for consuming messages from a new queue. The "classic" way they used was to configure a list of messages in the configuration, and for each message, configure a handler. So, for every new message, they had to add not just the handler, but also an entry in the configuration; hence, the two were connascent.
While sometimes this is unavoidable, I always try to minimize connascence, and I tried to remove it. So I decided to make the new service slightly different, smart enough to self-configure at startup and removing the connascent step of the configuration line. The result was great when testing it locally, but when the code was promoted to the integration environment, I discovered that it didn't...