Legacy: a tale of memories, living in the possible & letting go
- a thing handed down by a predecessor.
adjective – COMPUTING
- denoting software or hardware that has been superseded but is difficult to replace because of its wide use.
When I first sat down to write this, it was intended to be a simple blurb about some new software features my team had recently deployed to production. A few paragraphs of dry technical terms written in a manner so that it will resonate with as wide of an audience as possible. A blurb of this nature is most commonly referred to as Release Notes and contains some helpful tidbits about who the features are for, why they are of value, how to gain access, and other similar things of that nature. I’m sure most of you have read such artifacts previously. You are no doubt familiar with the format and substance as well. But, as I thought more and more about my subject, it became very clear that my end output was NOT going to be a set of Release Notes in the traditional sense. What was supposed to be relatively simple subject matter triggered many additional, deeper thoughts that ultimately led to this final, slightly verbose, piece.
While I pondered all of the ideas that flooded into my skull (insert empty head jokes here), a theme began to emerge very clearly that allowed me to organize the chaos that had erupted. That theme then got me to thinking a lot about the word legacy. That word, in turn, brought me quickly to thoughts about Core, our legacy application; what Core once did, what it does now, and how it will one day be gone. Yeah, you read that correctly. One day, the goal – and most likely the inevitable course of action – will be for 360 to operate without this software. Why Core is important to this story is not that it is just our legacy system, but that it is also representative of the legacy it leaves behind for Jason, 360’s founder, and all of us at 360 – past and present. Our legacy application processes over a billion dollars in payments every year. When it first came to market it was a game-changer in the incentives industry and continues to be an innovative and truly disruptive technology. The fact of the matter though, is that in order to succeed, we will inevitably leave some things behind and our beloved Core is not exempt from this fate. There comes a time when the industry needs yet another round of disruption. As a company, we are never satisfied, nor should we be, with the status quo. This little story serves as a summary of my thoughts on the subject.
So, let’s get back to the original purpose of my sitting down to write this composition. For all intents and purposes, the words contained in the next few paragraphs are the release notes to the company of some new software improvements. Without surrounding these release notes with the rest of my message, you may not have been able to experience the profound meaning of what this new functionality signifies and most certainly not in the way that I had experienced it. I wanted to attempt to share that feeling that I had with you.
Previously, using our legacy system (aka Core), a user could search for any part of the dealer record in our database. As an example, to find Harry’s Flower Pot Emporium, you could simply type ‘flower’ and the record would appear in the results alongside anything else that contained the word ‘flower’; like 23 Flower Lane, or even Suzy’s Appliance in Flower, Indiana, etc. A good way to search for these things, right? I should mention here that this search functionality was actually perfected in early 2015 by a then co-op student. Yes, that’s right; at 360 even our college co-op students are empowered to tackle important technological problems to see if they might have an exciting or innovative method of solutioning for real world business. And while this student’s efforts were not necessarily Herculean, the improvements that the contribution itself brought to the company and the immediate inclusion of his ideas into our everyday development served to form a bond that led to this student returning to us after he finished his school term to now work full time with our team. In fact, 360 has had three former co-op students return to work with us full time, and I have the pleasure of working alongside two of them on my team. We haven’t done partnerships with post-Secondary schools for very long and already we have three talented developers currently on staff from these programs. How cool is that?
What made this original (and awesome) type of search possible was in how the system required a user to determine a specific promotion up front. This filtered out any superfluous dealer records that were not tied to the promotion, creating a small subset of available options. Cliff/Coles notes: When the dealer list is small, it is easy to search through it in its entirety. Got it? Okay, let’s move on.
In the next-gen platform, qualification into a program is now done automatically using the information entered by the consumer. They are no longer required to specify a program up front. In essence, the list of available dealers for the user to search from is no longer pre-filtered to contain only those in a specific program. Instead, the user now tells the system what they purchased, when it was purchased and where it was purchased from. The enhanced rules engine then determines the eligibility of those details against known programs and responds with the associated outcomes. An example of a successful qualification may result in a reward to the user in the form of a prepaid VISA card. This eliminated countless errors caused by incorrect program selections caused by the occasionally confusing legacy setup that lead to hours of cleanup work to ensure claims where appropriated into the right bucket prior to payment.
All of this sounds wonderful, right? Well, it’s getting there. You see, now that there was no more pre-filtering of the dealer, users were now searching across the entire sales channel to pick the right location and send it off for qualification. This meant that the method of the search function was immediately inferior to that of the preceding platform. And so began the overcoming of some challenges with performance problems. To mitigate these issues, the next gen portal only allowed for searching the beginning of certain fields within a dealer record. In order to find Harry’s Flower Pot Emporium, one would need to start typing ‘Harry’s’, or the first part of the street address. ‘Flower’ would no longer work as a search term and bringing the type of robust search capability from the legacy system into the new platform would be impossible.
Fast forward to today. Over the course of the last few months, my team has found numerous ways to chip away at the various barriers in the way of allowing the new portal to perform successfully at a high level. Some of this work has meant that even greater new capabilities could be achieved. Most recently, we have just deployed a better way to search for a dealer record. In fact, we have not only brought parity with the old system, but we have surpassed it. The new way of determining auto program eligibility? That remains intact. The old way of searching for ‘Flower’ in the middle of a business name? It’s now part of the enhanced platform. (High Five!) And just to throw in a little extra for good measure, the system will also automatically strip out any extra words that may cause difficulty when searching for specific names. Words like ‘of’ or ‘the’. As it turns out, the Consumer Rebates Product Development team has made the impossible possible.
“So, why is this important?” you may be asking. Well, it’s a simple example of how we continue to progress the company and how the software achieves one more step on its path to leaving core behind. It’s also important because it highlights just a small portion of the cool ass shit my colleagues dish out on a daily basis. If you are not aware, I work with some incredibly intelligent and talented people in the development group. On my team specifically, these guys have really knocked it out of the park (or whatever sports analogy you want to throw in here). The Consumer product Dev team – whose names I shall not mention since I did not ask their permission before writing this, but feel free to stop by my desk at any time and I’ll introduce you 😉 – have built, improved and/or maintained the following glorious nuggets over the past short while: Core (duh), the next-gen consumer portal, “SB”, that rules engine I mentioned earlier), Enhanced Surveys, and “SB”. I know I already said that, but for anyone that has ever had to enter a manual claim the old way and then gets to do the same in “SB”, you know why it deserves to be mentioned twice. On top of some of these, they have also built the interfaces that allow our internal people to utilize the capabilities of these applications. Amongst all of this, they have also been hard at work on delivering yet another monumental software application to help facilitate better solutions for our customers, codenamed Patton (after the masterful American General who managed some of the most successful military campaigns during WWII).
Patton is the result of months of discussions, beating heads against the wall, proposing new technologies, and ultimately, alignment on a method to allow our Professional Services group to finally operate in a world without some very specific and aggravating constraints. Gone will be the days of creating new clients in Core when our customer wants to run a short promo with different imagery. Gone will be the need for a new client to be created every time a new flash promo URL is requested. From now on, we can easily accommodate new or short-term program requests from clients almost as fast as they can dream them up. You see, Patton will allow for the latter to be accomplished in minutes. Minutes(!). Let that sink in for a quick sec. The other scenarios I mentioned above are what can now be considered Campaigns. Difficult to offer using Core, but incredibly simple when using a campaign management tool. In case you haven’t figured it out, Patton is exactly that – a campaign management tool that can be used for rebates and all next generation products. When the day comes, perhaps I will type up some release notes for it…
I wanted to write this so that people were aware of two things; both my admiration and appreciation for the people I work with and also, so that I could draw attention to just one of the gazillion little life lessons surrounding us every day. As I said before, one day we will leave Core behind. One day, even these fancy next-generation software applications we may leave behind. People too, will also come and go. Presently, the original search function for the new consumer rebates portal becomes, what the tech world calls, ‘deprecated’. It will no longer be used. The code will be tossed into a giant furnace, deep within the bowels of the 209 Dundas building and incinerated. (Okay, that last part was for dramatic effect.) But seriously, above all else, by removing the original code, we are placing the final stamp on achieving the once insurmountable task of deploying the good way to search. Because of this, we can now begin to reflect on the legacy of the Consumer Rebates portal, but more importantly, the developers responsible for making it happen. To my fellow 360 team members: next time you see a developer shake their hand, and thank them for all of the amazing things they have delivered for this company. Thank them for this new piece of search functionality that has delivered what was once thought to be impossible. It is a reminder of the legacy of Core and those who have contributed to its spaghetti code. It is yet another item, amongst the many, that is the legacy of those developers.