listeningTo: Lucifer, Season 1 Episode 9
inRealLife: After dinner, my husband and I went out to the car, just in the driveway, to clean it out after our long weekend trip this past weekend (okay, we’re super lazy, I’m aware it is Thursday…). I let Scout out with us, my little baby 65lb pit bull, forgetting how batshit crazy she gets about the car. Open door > Scout inside > Scout won’t leave. She’s not too big we can’t pick her up, but she is too cute to not give in, so, in we go, and drive our little baby around the block. I felt both so pathetic and so motherly at the same time.
whatIReadThisWeek: This has been a week from hell (what a cliche, I’m watching Lucifer in case you missed it, I’m allowed). It took me until 5:15 this evening as I was waiting for a round of automated tests to run (they failed) to even remember ‘oh yeah, I told myself to keep up on industry news at least once a day.’ What I won’t admit is it took me until 5:15 pm on Thursday for the first time I remembered and attempted to read something educational or semi-related to work. This section will typically be way more useful than my ramblings right now.
whatILearnedThisWeek: I am not as good at time management as I previously convinced myself (and my supervisor) that I am. But, for real, I did learn how to create a symlink between two code repositories, and by learn, I mean I Slacked my developer so many questions he just called me walked me through it from start to end until I was pretty sure I could do it again. Yes, I wasted his time, but not as much as I will when I get my hands on that feature and send back all my changes…
whatIAmThinkingAbout: I know there are a bunch of ways to create test data that matches production data – it all seems very fantastic and useful and just a teeny bit complicated. However, I don’t have that luxury at work. Whatever grand plans I have require me working it out on my own with little to no support, and I don’t know where to start with this one; it is something I think about often, though… The underlying issue this week is how can I read my application’s mind and ensure nothing will explode when the release is pushed to production? Well, I can’t; I try, but, can’t.
Regression testing just started – well, should have just started – for a platform release scheduled for next Wednesday. Included in this release are a ton of query refactoring that – in an ideal world – will increase performance on our largest of pages AND it will do so in an unobtrusive way. It will be magic (I’m assuming)… I won’t mention how the work is taking longer than promised and I won’t complain about how that is effecting my test schedule. I will mention, though, that the QA Plan I received is “make sure nothing blows up” and this feels much easier said than done.
So when I get the build, where do I start? Our site is segmented into three natural sections: members, clients, and admin. First thing first – predict the “big” pages that could benefit from streamlined queries and list them per section. Alright, I can probably figure that out. But, oh yeah, I can see his code. I know SQL, at least enough to read complex queries. So, I can look through his code, see how the queries changed, and hope for the best. Right?
This all feels like a ton of guesswork. I’m okay with guesswork, a lot of software testing is guesswork, right? And even if I make a definitive list of every single route that was probably touched by the refactoring, how do I even know if the performance is better? Performance is always great on staging! At any given time there can be a maximum of 10 of us on at a time, if there is performance issues then, please pray for us if that code ever makes it into the wild.
recommendationsAndTakeAways: I have no good answers. I asked the developer for ideas, asked the CTO for ideas – the best they can come up with “just hit every page and watch the profiler for long load times or lots of queries.” Okay, I say, what constitutes too many queries? “It depends on the page, just, like, a lot.” Aye aye.
The plan, for now, is to do as they suggest. Well, not every page, it would take me 6 years. I have a list with my best educated guesses, I have a vague idea of how to use the symfony profiler, and I have recruited two of my product managers to lend a hand – or, eye? Hopefully I can report back that everything was a great success. Hopefully I can find a good solution for mimicking production like traffic and this will never ever be a problem again. I’ll be sure to report back!