I stopped reading at the point where the article gave an example of the clients of the shared code being given extra responsibilities and claimed that the fact that both clients called the same library function meant that they could not be separately changed to cope with the new responsibilities.
you can't change one without the other.
That's just nonsense. All the coder has to do is either make the shared code parametric or take a copy of it and hack it until it works (choose the approach that makes the most sense at the time). Alright, now it isn't shared, but so what? You can't always predict with certainty that the clients won't share the code at some distant point in the future any more than you can predict before writing it which bits of code will definitely be candidates for sharing.
Comments
I stopped reading at the point where the article gave an example of the clients of the shared code being given extra responsibilities and claimed that the fact that both clients called the same library function meant that they could not be separately changed to cope with the new responsibilities.
That's just nonsense. All the coder has to do is either make the shared code parametric or take a copy of it and hack it until it works (choose the approach that makes the most sense at the time). Alright, now it isn't shared, but so what? You can't always predict with certainty that the clients won't share the code at some distant point in the future any more than you can predict before writing it which bits of code will definitely be candidates for sharing.