4 ms·
Engineers are often ready to scrap things and start over, but sometimes it’s worth having a couple senior/principal/staff level folks do a quick evaluation and
by tracer4201 7y ago
Engineers are often ready to scrap things and start over, but sometimes it’s worth having a couple senior/principal/staff level folks do a quick evaluation and figure out if you’re needlessly duct taping an unmanageable piece of service/application/whatever abstraction and actually scrapping it might be the better option.
From my own experience, you don’t actually know how the existing system works, the expected business rules were never documented, etc, and so even starting over isn’t really a less ambiguous path.
- EliRivers 7y agoso even starting over isn’t really a less ambiguous path. Sure isn't. We don't know what the software does right now, but there are customers all over the world using it and paying tens of thousands per year for support contracts; since we don't know quite what it does, we don't know quite what they're doing with it. We can pretty much guarantee that if we started over, we would miss a great many requirements (and a great many bugs that happen to work for various specific customers) and a lot of customers would be very unhappy. We don't know what it does, they don't know what it does, but it's working for them at the moment. Oh Gods, even the unit tests. There are some. Sometimes one fails. We stare at it. It was expecting this value to be 3, now the value is 4. Why was it expected to be 3? Is it wrong that it's now 4, or have we changed the behaviour such that the correct answer is now 4 and we need to change the test? Undocumented unit tests are worthless. I'm not asking for a lot of documentation - just commentary in the code next to them would be fine - but if I can't see what's actually being tested and how that "correct" value was ascertained, when it fails, I don't know if the bug is in the code or the test. Useless unit test.
- ownagefool 7y agoSo you probably want to log the requests, figure out what people are doing.
- EliRivers 7y agoThere are no requests to log. It's not a web app. It's installed on at least one and up to many networked windows machines on a given customer site, where that network is isolated and contains numerous IP and serial cable connected pieces of specialist hardware (no two customers have the same sets of hardware); we make them dance together. There is no interaction outside that network.
- ownagefool 7y agoFair enough, that does make the problem harder.
- kd5bjo 7y agoI rewrote an internal tool from scratch to replace an old one that was being used by a few thousand people. It turned out that fully half of the users only ever used it to see the auto-filled partial results that populated into one of the form elements. That particular requirement never made it into the specification for the new tool, and the rollout of the replacement did not go well, to put it mildly. In fact, there was so much of a mismatch between what these users thought the tool was for and what it seemed to be for from an engineering perspective that it was extremely hard to get any more specific feedback other than “The new one is terrible; I can’t get it to do anything”.
- noonespecial 7y agoI once insisted on these comments as part of the deliverable to an outsource team. I got an app full of comments like: assert(x == 3); //x should be 3 here