I broke the build once by fixing someone else's fix. My stuff was right, but I had set my UltraEdit default to creating all my files as Unicode. I thought it was odd that TortoiseCVS detected my file as binary, but I changed it to Text/ASCII and checked it in. D'oh.
I didn't actually break the build the second time, but CruiseControl blamed me anyway(!!) XD For some bizarre reason, my changes got documented in the "changes since the last build" section, but the Developers' stuff that really broke the build wasn't there, so my name was attached to the broken build. Except there was really no way that an external utility script could break anything. Yes, CruiseControl has it's quirks. We had a good laugh at that one. =D
* * *
I'm eyeball deep in Bid, Ask, Spread, Points, Pips, Forwards, Value Dates, Markups, Margins, etc., etc. The Math is not hard. It's the Deciding What To Math Together that knocks me out most of the time. I got away with not actually learning it, but being able to accurately verify last time because the changes did not involve new results in the numbers. I could just compare with the previous release as a reference and any difference in the numbers was a bug. Dude, I was hired for my ability to hit the ground running, uh-kay? =)
But I can't do the legal cheating thing this time. I have to learn it FER RLS!! now because there's new stuff and a difference in calculations which will result in new numbers. But I'm starting to get it, I really am. It's amazing that I'm beginning to be ABLE to explain it to other people. I told the guys that they could ask me any stupid question, any number of times. If I can explain it then that means I understand it. And that's a really great great feeling.
From "get the numbers off the market feed" to "this is the price we give the Customer", the calculations can take 3-4 pages of writing... and I don't write very big. It's painful, but it's a good pain, like a good workout. As dorky as it sounds, I actually like doing it all by hand. But that's probably because I'm just learning it and the practice is making me feel more confident right now.
* * *
The latest release went out to Production last night. There was a bit of... an issue... It's not a huge deal. The release did happen successfully. The issue didn't escalate to anyone more senior than me. But it was kind of a big headdesk.
One of the system sub-components apparently contained changes that were supposed to have been backed out in the last release. We didn't see anything suspicious in the testing cycle of the last two releases. The new code just sat there doing nothing during the testing cycle, went out to Demo, then Production. It caused a problem because the release installation procedure was based on the assumption that nothing had changed. And obviously, it didn't work because things had changed.
I squarely take the blame for this one.
When we were rejiggering the QA environment, I should have installed the same version of this sub-component that Production had. Instead, I must have taken the latest version at the time, assuming Development had backed out their changes. Hmm... the date and time stamp on the binaries shows it was done before I started doing any of the installs regularly, which explains why I have no recollection of doing that...
But I still take the blame for not seeing it. I just didn't. I'm usually more observant than that. *sigh*
At least, the risk of it doing something horrible was pretty low, afterall, the whole QA team had actually been testing with those changes for this long. But I couldn't be sure because sometimes, you don't see something if you're not specifically looking for it. I was worried sick about it, enough that I went in to Work this afternoon to run as many scenarios as I could think of, in the Feature List to make sure the code really didn't do anything weird.
Monday is a holiday in Canada and the United States. But it's NOT a holiday for most other countries... WHERE A LOT OF OUR OTHER BRANCHES ARE. So, if there were a problem on Monday, they'd be calling the 24 Hour Support folks. I was planning on calling the on-call person and leaving them an FYI about this so that they could at least have an answer ready.
I called the Boss to let her know and not to worry, I was on it. It turns out that she had a nagging feeling about it because of something she picked up from the e-mail about the successful Production release, so she was glad I called her. She ended up coming in to Work to help me. So, between the two of us, we pretty much did a full scrub of that sub-component and then some.
So, it was okay. She was satisfied that we didn't have to bother anyone else about it until Tuesday.
This sub-component is getting deprecated soon. And EVERYONE will be rejoicing at that. It's been the bane of our existence =P