Originally I wrote up a ticket outlining many of the things that were wrong with our loan calculator architecture and filed it under technical debt. The problems I described were all basically caused by a handful of primary issues:
- the calculator is called too many times on a given page
- the calculator is too tightly coupled with our system, making it difficult to extend
The solution should have been to package individual invocations into some sort of request manager and to turn the calculator into a standalone (micro)service. This required a pretty sizable refactor, but refactor was in the title of the ticket, so this shouldn’t have been news to anyone.
I believe it was determined that a refactor was out of scope. Instead, the technical debt ticket I created was hijacked, and the work became centered on:
- incorporating dated calculator work from the contractor that programmed LoanappGenius
- add more calculators or something, I was never entirely clear on this
My work came after this ticket was released. There were somewhere between 15 and 20 bugs reported. The actual number of bugs was unclear because many of them were overlapping or interrelated. The scope of the problem was large as unrelated areas were also misbehaving, again because the loan calculator invoked methods on objects across the system. It used snapshots as a proxy to do much of it.
So for three weeks, I fixed bugs whack-a-mole style, fixing one, then another, then going back and re-fixing the original after coming back and finding it broken anew… over and over and over again. It was tedious and demoralizing and resulted in a lot of frustration from all sides.
I do believe that some good came out of it. Soon after it was announced that we would be halting everything to rewrite snapshot functionality.