This is the second project I've worked on where an incorrect assumption has been made in the design of the software. In both cases it has resulted in a solution that is:
- More likely to get bugs related to the flaw
- More messy to work with as workarounds are implemented to get around it
- Harder to understand as the assumption does not match reality
Every time I run into these flaws, a little piece of me quietly dies. However as both projects have been built upon this foundation, it would be time consuming to fix so that the software behaves the same yet doesn't cause this pain.
As far as the business is concerned, they wouldn't see a change in functionality. In fact, if this was fixed there would no doubt be new bugs introduced initially. The payoff of a less error-prone product that is quicker to develop for with happier people working on it wouldn't be until the longer term.
Does anyone have advice on how best to proceed?