I am one year into my first job out of university and am currently up for a promotion to the second level of our technical track.
I was reviewing the original specifications of a piece of software which we will be delivering to the internal "client" in w few days. My team technically did the final signoff on requirements on Friday, but they used the specs listed in Jira rather than the original specs. I was reviewing the original client document as I scrolling to reading dozens of separated requirements.
Problem is, the specs differ in a few key ways due to transcription errors and we misconfigured things accordingly. It doesn't help that our company has fairly isolated business units and thus nobody in the dev team really understands how the software is used day to day.
When our software interacts with certain actual interfaces, the outputs data which can seem correct but actually is incorrect. And as this is being used to collect certain information from frontline employees in a substantial way, it will be extremely problematic.
In addition, one of the other guys who wrote the problematic code is my opponent for the promotion. It isn't really his fault as the specs are bad, but IntelliJ and Gitlab have his name attached to it.
Now, if you look at the original specs, the reason for the error is abundantly clear. It took me just a few hours to write an acceptable hotfix for my local environment (a properly tested solution would take far longer). If you try to go back from the problem, it will likely take much longer to debug. I know I can be the first to provide a fix when required and get the requisite credit.
As for why this wasn't caught before? "Testing is expensive."
My question is, what are the pros and cons of warning my boss beforehand vs being the guy who saves the day after it all falls apart? I big con I see about revealing this beforehand is that damage prevented is not as valued as damage fixed.
The friend I discussed this with was the one who came up with the towel analogy.