This happens during the
SimultaneousDevelopment process, about a third of the way through, when somebody realizes
that the GUI is doing one thing in two different ways
(which is reasonable. For example "showing a particular
database table." Depending on context, you might want to
show the table [well, the elements in the table] in many
different ways).
But, usually, it's a person working on something else who realizes that
SomethingMustBeDone and she will do the
natural thing (a quick hack to the widgets and ''presto --
problem solved). After all, she's got her own deadline to
meet.
Which leads to multiple GUI widgets doing almost the
same thing (what they do isn't really documented, since
it was a quick fix). Lots of replicated code, lots of
replicated functionality, lots of brittleness.
Why did I name this page
ItsTheSameData ? Because the
number one justification for making these quick hacks
is a variant of "It's the same data. I'm just changing
the way the user interacts with it."