2 ms·
My biggest gripe with legacy systems is that the interfaces lie and when you try to fix them and you run the test suite everything passes, but there was actuall
by 3pt14159 6y ago
My biggest gripe with legacy systems is that the interfaces lie and when you try to fix them and you run the test suite everything passes, but there was actually intention behind one of the lying interfaces that you didn't know about and it wasn't part of the test suite because the person that was responsible for that reliance didn't think to test a specific case of the application, which happens, but the combination of the two problems leads to something where a corrective change is done, then issues come up in production. The interface said something like "can edit" but really what it meant was "can edit for a very strange edge case" and somewhere else in the codebase relied upon the interface.
It's hard to talk about, since it's all in abstract terms, but I see it over and over agin. People have incomplete understandings of the problem because the codebase is so fragmented and poorly documented / tested so the changes they make don't really reflect what would have been the true intention if they'd really understood the current and future system.