A few weeks ago, I wrote a review of the new Conga Composer 8 Beta. While writing that review, I did some speed testing for the current and new versions, and found some numbers I thought were a bit odd. I made a note of it in the post and moved on with things, figuring that the problem was just standard development weirdness. Little did I know the wild adventure that my words would inspire somewhere in the wild and untamed mountains of Colorado.
The Epic Quest to Slay a Bug
A few hours after the post went up, I got a call from Rodger McIntosh, Conga’s Manager for Product Development. He was curious about the numbers I’d gotten, and was wondering if I’d be able to help him get a better look at what was going on. I got approval from our client, and Rodger started researching. I wish I could say that I was a productive contributor to this process, but really all I did was spot the issue and provide some debug URLs. He’s the one that did all the hard work.
And let me tell you, this one sounds like it was a doozie. Looking back over the e-mail updates I was getting, I can see that they chased this bug through just about every part of their system. There’s something of an old gag among hackers and programmers about a type of bug called a heisenbug. (No, there’s no relation to Breaking Bad.) Heisenbugs get their name from how difficult they are to pin down; every time you go looking for them, they seem to magically vanish. This was probably the closest thing I’ve seen in my experience to a real heisenbug.
So how did it all shake out? After two weeks of exhaustive work, which I can only assume involved reams of paper, long caffeine-fueled nights, a consultation from the nearest oracle, and at least one 80’s-style montage, the reclusive dragon-bug was tracked to its lair deep in the bowels of Conga’s proxy systems, where it was finally and thoroughly extinguished. The crowds gathered to witness Rodger’s triumphant return, and he was hailed as a conquering hero-programmer by all the land.
…okay, so it almost certainly wasn’t that dramatic. But let’s give credit where credit is due. This bug got jumped on quickly, taken seriously, investigated thoroughly, and resolved promptly. It’s no small amount of work to track and resolve an issue like this, and I’m grateful for all of the effort that got put into it. Maybe I embellished the details a bit, but Rodger’s definitely a hero in my book.
The End Result
So after all of this tracking and slaying, we return to our original question: is the Conga 8 beta faster than the current production version? I went back to my original test and got a whole new set of numbers. As a reminder, the operation I used for testing is based around a Word template, combines object, report, and query data, and even calls out to a Google Charts API for images at runtime. On my last round of testing, the current version of Conga averaged just over 24 seconds, and the Conga 8 beta clocked in at just over 27 seconds.
The first order of business was to set a new baseline. Using the current Conga, I ran the operation a handfull of times to see what my numbers looked like. After seven runs, I had an average of about 18.4 seconds, with a fastest time of 18 seconds, and a slowest of 24.8 seconds. When I checked with Rodger about the faster baseline, he told me that this was probably due to running the tests earlier in the day, before Conga’s servers were too busy with other operations.
Then we moved onto the Conga 8 beta. Once again, I timed seven runs. The average this time around was 14 seconds, with a fastest time of 12.7 seconds, and a slowest of 16 seconds.
I’m really excited about these results. Not only is the new system averaging about 70% of the time taken by the current one, but even my slowest time in the Conga 8 beta was still faster than the current live version. This is more than an incremental improvement; it’s a noticeable increase in speed. And I think people who are using Conga Conductor are going to have even more reasons to be excited, because the speed increase for them is going to feel even bigger.
Conga’s delivering on their promise to create a faster version of their already outstanding product. More than that, they’re taking feedback from their partners and clients, and using that to help improve their system for everyone. I’d like to offer my thanks again to Rodger for reaching out and giving me the chance to help track and resolve this issue.
Have you tried the Conga 8 beta? Do you have comments/questions about it, or the current version of Conga? Feel free to ask in the comments below, or to get in touch with Red Argyle through e-mail or @RedArgyleDotCom.