EP111 From Tech Debt to Innovation: A CEO’s Perspective === [00:00:00] ​ [00:00:06] JOSHUA WARREN: I am talking about TechNet today. I think most of y'all probably know who I am, know who Creatuity is, but very briefly, I am the CEO of Creatuity. We're an e commerce agency focused on B2B and omni channel retail. Um, if you go to our website, Creatuity. com slash MMFL, you can download the slides. And then there's also a worksheet, um, that I've developed that goes with this talk, so you can check that out. [00:00:32] But I wanted to start out with, because tech debt, you know, it's not something we really like to talk about. It's not something that people talk about a lot, but it is very important. Um, when I was doing the research, 1. 5 trillion dollars is spent on tech debt in the U. S. alone. For every million lines of code, tech debt is adding up to 306, 000 per year, consuming 5, 500 developer hours. [00:00:58] 91 percent of CIOs report [00:01:00] tech debt as their biggest challenge, and what frustrates me the most about it, what I, I run into a lot, and I know some of the agencies in the audience, y'all probably run into this as well, 80 percent of organizations have delayed or canceled a business critical project due to tech debt. [00:01:14] So, that sucks. Like, I always talk to our clients and say, I don't want you spending your time and money on the boring stuff, on fixing the things that were broken because of tech debt, or just all that kind of maintenance stuff. I would much rather them spend their time and money on the exciting things, the new features, things that are going to drive ROI. [00:01:33] But, I When a project has a lot of tech debt, that is often hard to get approval on. So what is tech debt? Um, I feel like the, the center item here is really what most people mean when they say tech debt. It's accidental tech debt. So someone was working too fast. Someone didn't know what they were doing. [00:01:51] Um, they didn't have the right expertise. They introduce bugs, but then there's another two other types of tech debt. Um, the first one on the slide intentional [00:02:00] tech debt This is the one I find when we inherit projects from another agency Merchants don't like to talk about this. This is when we go in and we find maybe a module that's not working very well And they say, oh, yeah previous developer wrote that. [00:02:14] It's no good They never tell the other side of the story. Maybe that previous developer was given an unrealistic deadline, a tight turnaround time, just unrealistic expectations. And that creates intentional tech debt, where basically you say, we are going to deliver something that's not perfect because we're delivering it within other constraints. [00:02:33] And then, aging tech debt, um, my favorite example of this comes from ShipperHQ. Um, it's all about how, as versions become out of date, that creates tech debt. And the ShipperHQ example they shared back around the holidays, They had a merchant reach out to them and say, Hey, we're re platforming from Shopify to make sure that's okay in our license. [00:02:55] They said, Yeah, sure. What version are you going to? They said 1. 9. And this is in 2024. [00:03:00] 1. 9 was released 10 years ago. And all of Magento 1 was deprecated in end of support 5 years ago. And so they said, No, you must have that wrong. They said, Oh yeah, no. We are actually going to move to Magento 1. 9. We believe that is a stable platform for us. [00:03:16] So They immediately picked up a whole lot of aging related tech debt. So why is tech debt bad? It creates scalability bottlenecks when we take on a project from another agency and it is not scaling well, it's not, um, performing the way that's expected. So often that's due to tech debt. So, so, so often that is due to Uh, really bad database queries and just not following best practices, um. [00:03:46] Because we're having to focus on that, besides on scaling as well, it'll also delay innovation. Again, people don't want to spend a lot of money on new features when they feel like their existing features, their existing site just isn't working. Um, and I already [00:04:00] mentioned, obviously, the cost. So a few Magento specific examples. [00:04:05] I've already mentioned outdated Magento versions. Um, obviously that's not unique completely to Magento, but it is something that happens when merchants aren't keeping up with their updates. Um, brittle integrations is another one I see a lot, and the most common version of this is when there's an ERP integration that is involved in checkout. [00:04:26] Like that, alarm bells go off, because if you're making synchronous calls during checkout to an ERP, There's no way that's going to end well, uh, and typically the reason I call that tech debt is typically there's a better way to do it, and whoever implemented it didn't realize that there's a better way to do it. [00:04:44] Um, poor initial implementations, uh, I know that Most developers will say that their code is the best and other developers code is not as good. We've all been in those conversations. We've overheard those debates. But we also all know that there's some people [00:05:00] that know Magento and can implement Magento well and there's some people that maybe oversell their abilities and produce these poor, natural implementations that just don't follow the best practices. [00:05:10] And then the other thing that I see so, so often is unused native functionalities. I'm actually going to touch on that a few times. This has become a big signal to me when I start talking to a merchant. Um, so I do these free 30 minute e commerce problem solving sessions via LinkedIn. And all merchants come to me and they'll tell me kind of how they use their site, what they're doing. [00:05:30] I'm like, well, you know that's built into Magento. You know that's built into Adobe Commerce. And they either don't know because they weren't trained on it, or the worst part is when they say, oh yeah, but it doesn't work. And that's a sign of some tech debt for sure. Um, so, luckily I have an awesome client, Worthington Direct, that is okay with me sharing kind of the, the long sordid tale of their Magento implementation. [00:05:55] Um, they're a B2B distributor based out of Dallas. They sell, um, primarily [00:06:00] to schools, so that's why there's that, that school furniture there. Um, and they really had a lot of challenges. They had their site implemented by a freelancer that, um, Didn't really know Magento. It's actually been an Adobe Commerce Cloud build and they definitely didn't know Adobe Commerce Cloud. [00:06:15] Um, so there was a lot of tech debt. They came to us and they had some pretty good priorities that they wanted to get done quickly. So we kind of looked at, okay, do we fix the tech debt? Do we shore it up? Do we just build a whole new site? And at the time with the time frames involved, we said, okay, we're going to just keep building on this site, resolve the tech debt over time. [00:06:33] Uh, but we found the site was slow. Um, they couldn't use native functionality. And it was increasing their maintenance costs. So, we finally had that very challenging conversation that I know many of y'all have had. Um, do we finally rebuild? Do we scrap your existing code base? Because the tech debt is just so heavy. [00:06:53] And, rebuild. And, it was actually one of our developers came to me and said, You know, we're gonna [00:07:00] direct all of our estimates at 30 percent higher than any of our other projects. And that got my attention and I said, well, why? He said, well, because it's so poorly written. We just know that every time we're doing something new on that project, it's going to take 30 percent longer. [00:07:14] So, that's actually what I took to the merchant and said, hey, look, this is going to be an investment. We're going to do this right, but it is going to cost you money. But long term, it's going to save you 30 percent on any of the new features we're building out. So they did the math and said, let's do it. [00:07:28] So, we rebuilt their site, um, we used Hoova, and I'm sure you're going to hear a lot about Hoova today. I will say, if you have any front end tech debt, just switch to Hoova. I mean, if you're really doing anything, just switch to Hoova. But, especially if you're dealing with performance issues, if you are looking at a 200 design, um, Hoova is the closest thing to a universal solution I have seen in the Magento space in a long time. [00:07:53] So, that got us some immediate performance gains and solved a lot of our front end tech debt. Um, we did, [00:08:00] instead of using Hoover Checkout, on this one we actually built a custom React based checkout just because they had some very specific B2B needs. So we use this as an opportunity to also improve their checkout. [00:08:10] And then I also didn't just want to go to them and say, Hey, we're going to resolve your tech debt. Say, Hey, in this project, we're also going to implement some new features and functionality that will actually save you some time and money living the business. So we built a few additional modules, um, to automate some of the workflows. [00:08:28] So the results, uh, we did eliminate that tech debt. We got them to a clean, uh, Start, um, for all their new features and functionality, uh, greatly improved their core profiles and page speed. And we have seen, it's actually been close to a 40 percent reduction in their maintenance and development of new features. [00:08:48] So, that's kind of what we did. Now I'm going to tell you all how we did it. And this is something that I've developed that, uh, if you go to that link or go to the QR code, you can actually download a PDF or a Word doc and [00:09:00] walk through this yourself. Um, it's just a framework because those technical conversations, and especially when you're having to tell someone, Hey, your website, it's not great, and you need to spend a lot of money rebuilding it, or redoing it, or resolving a lot of issues. [00:09:13] This can help guide that conversation, and make it a little less emotionally charged. So, framework literally is just identify the tech debt, assess and prioritize it, and then resolve it. And I will walk you through each of those steps. So, First of all, when I say resolving tech debt, or identifying tech debt, or looking at tech debt, a lot of y'all are probably already thinking about the quantitative approach, so that's static code analysis. [00:09:39] That's all the wonderful tools out there that can analyze the code, can help you see where were best practices followed, where were best practices not followed. Um, I am also going to continue the streak of, uh, uh, evens tools being mentioned. So, he actually released a couple of weeks ago on GitHub and announced on LinkedIn, uh, several different new testing tools. [00:09:59] [00:10:00] So, the Magento Testing Essentials and Test Containers for Magento. Um, those are actually going to greatly simplify automated testing of your Magento projects. So, if you don't already have some of these tools set up to test your Magento codebase, and to identify that tech debt, those tools are a great place to start. [00:10:17] I also could talk for like an hour about testing Magento. My very first presentation at Meet Magento 10 years ago was actually on testing Magento. Um, but I'm not going to do that, um, this isn't a testing talk, this is a TechDev talk. So I'll just say there's a lot of great resources online, whether it's my talks or other talks, about how to test Magento. [00:10:37] But really the automated testing tools are a really good way to start finding the TechDev on your project. But, the more interesting part for me, the part that I feel like most people miss, is a qualitative approach. And so, most of y'all have probably heard of code smell. That's when a developer looks at some code and basically says, oh, this doesn't smell right. [00:10:58] Like, there's something in here that's not quite [00:11:00] right. Um, I believe that over the years I've developed a similar ability or platform smell, and basically that is when I'm looking at someone's e commerce platform, I kinda can get a picture of, oh, this isn't right. Like, there's some issues here, there's some problems here. [00:11:17] And I've broken it down into four different areas that I really listen for when I'm talking to business owners and merchants. Uh, first one is unused native features, I already mentioned that, but basically if you're having to use an extension or a service to provide something that is in Magento open source or Adobe Commerce out of the box, chances are there's something off with your platform. [00:11:37] Um, or, you know, so often I actually have people tell me, oh yeah, that feature just never worked on their site. Okay, well, you know you can fix that. Like, there's a reason for that, you can fix that. Um, frequent failures, um, this is another one that, uh, when I talk to merchants, they They think it's normal for their site to crash when nothing has been deployed to it. [00:11:57] Like, no, that's not how [00:12:00] software works. That's not how Magento works. If your site's crashing when there hasn't even been a deployment, there's some sort of technical debt either within your platform itself or within your hosting setup. Um, brittle deployments. So deployments are scary. If deploying a change to your site, especially a smaller change, kind of strikes fear into your team, There's something wrong. [00:12:21] There's some tech debt lurking there. And then, uh, I also have a podcast conference today, and I think it was last year we coined the term Digital Stockholm Syndrome. And that's basically when you're kind of held hostage by your e commerce platform and you find yourself saying, Oh, that's just normal. All e commerce sites have that problem. [00:12:39] You know, this is just something that e commerce businesses have to deal with. That might be the case, but more often than not, you actually have a problem in your site. You have some tech debt and you are just avoiding it. So you run through both the quantitative and qualitative, um, review of potential tech debt. [00:12:58] You actually just list it all out on a [00:13:00] form. Um, and then you assess it on three different metrics. And for each of these, it's a score one to five, one being the lowest, five being the highest. So urgency. What is breaking today? How often does it break? Um, and this one is so important because this helps really the first two help with. [00:13:18] When, like, maybe the CEO has a pet feature that no customer actually uses, but the CEO uses it, and when it's not working right, he gets really upset. Um, this is a good way to say, well, wait a second. It's not happening often, it's not actually, it doesn't have a big business impact, that may not be the first thing we want to tackle. [00:13:37] We might want to tackle something that is more common. And again, a lot of this framework, more than a technical framework, it's about taking the emotion out of the conversation. It's about not having to go to the CEO and say, Hey, idiot, that's not how you should spend your money, you should spend it on this thing over here. [00:13:54] Instead, you just say, here is a list of the technical debt, and here are the scores of each of those items. [00:14:00] Um, so the second item is business impact. How much is it hurting the customer experience? How much is it hurting your business's operations? And the third item is complexity. How long will it take to resolve, to quick fix, or complete rewrite? [00:14:12] And, uh, if you download the kind of worksheet that goes along with this talk, um, it actually has a matrix on it that puts these into four different quadrants, because obviously something low urgency, um, low business impact, you really just want to monitor that. You want to be aware of it, but not necessarily tackle it. [00:14:29] But then if you have something that is, Very high urgency, high business impact, especially if it is a low complexity item. That's something you just, you gotta fix. So, a few different ways to resolve technical debt. First of all, modular and headless commerce and composable commerce. I do, there's so much, it was interesting, Ritesh earlier mentioned kind of the flood out there, the fear and certainly a doubt that other platforms are pushing. [00:14:56] And there's, there's platforms out there, some of which almost have, um, [00:15:00] Composable in the name, or similar, that will say, oh, you have to switch to our platform if you want to use Composable Commerce. Magento, Adobe Commerce, they're old school, they're not Composable. That's BS. You can absolutely have a Composable mindset with your Adobe Commerce and your Magento projects. [00:15:18] To me, it just means moving away from that monolithic mindset. Like, stop thinking everything has to be built into the Magento codebase. Start thinking, how do we plug in different components around the Magento codebase? And, great example of that, I already mentioned Juba, but if you're having fronting issues, instead of diving in and saying, alright, let's fix up our existing Luma based fronting, you can just say, alright, we're going to completely rip out the fronting component, and replace it So that can be a really simple way, without having to rebuild an entire site or rebuild an entire code base, to remove a lot of technical debt. [00:15:54] Um, once you've started doing that though, please go listen to some of those automated testing [00:16:00] talks and make sure you have, if not continuous deployment, because I know a lot of merchants don't want to go there yet, but continuous integration, which basically just means constant automated testing. You have to catch these issues early and catch them before they go to production so you're not just adding more tech debt later on after you fix it. [00:16:18] And obviously refactoring. Um, so much of the, the boring kind of smaller tech debt, Um, really just comes down to sitting down and doing the work of refactoring the code and bringing it up to standards. Now, it is 2025, so I have to have a slide about AI. I think that was actually in the speaker requirements. [00:16:39] Um, AI can help with tech debt. So, um, there's a few different ways. Um, some more exciting than others. The first one is summarizing complex legacy code. I know it's a very newly released model, but chat GPT is 03 many high. Which, they need to fire the product [00:17:00] naming person, because 03 mini hi is a, not a good product name, but if you use 03 mini hi, um, it is actually really good at understanding complex code bases. [00:17:12] Like, you can feed it quite a bit of code, and it actually gets it. Um, which is, um, I'm actually doing a talk on the business track at the end of the day about retail innovations. I'm going to talk a little bit about when AI is supplementing people and when AI is replacing people. And I feel like this newest chat GPT model is getting closer and closer and closer to trying to replace developers. [00:17:35] But that's another talk. Um, you can also generate technical documentation. So, so often when we inherit a project, There is no documentation. Um, you can actually use LLMs to go through and build that documentation for you. It may not be perfect, um, but it is definitely better than nothing. Um, I also, kind of an interesting use case I've seen for using AI with [00:18:00] TechDev is if you have some, um, decision making gridlock within the business and the business just can't agree on what to prioritize, what to fix, Um, Again, the more advanced models are actually getting pretty good at, you feed them all the information, you feed them all the data, and they will either make the decision or they will support the decision that you process. [00:18:20] So they can actually say, based on all of this, looking at this from kind of a logical point of view, here it is, you know, you should rebuild your sideboard, you should solve the individual pieces of tech debt that you have, and help you with that prioritization. And the last one, um, if y'all had not tried out Windsurf by Codium, um, Wow, you need to go download it and try it. [00:18:42] I'm sure there will be other IDEs that surpass it, but right now their implementation of Cascade, which is a collaborative AI agent, is incredible. There is a Platform that I've never done any development on before, that is represented by, [00:19:00] um, a friend of many people in this room, who used to come to these events, um, and I was just curious, I was like, you know what, I'm going to use Windsor, and I'm going to see if I can build a site on that. [00:19:10] Um, I had a site up and running in about 10 minutes, and it wasn't just a, here's a basic demo site, I actually gave it a merchant's name. I said, look at their existing site, replicate the feature and functionality. Building on this other platform, and it wasn't perfect, it definitely still needed some work, but it got the site live, and got me to like 90 percent done on that project. [00:19:33] Um, and so, really not only can it help you learn new things, learn new platforms, it can also help you improve your skills on existing platforms. So it's almost, it's like having a pair of programmer on call at all times. So practical applications for Magento projects, things that you can take home and use today, tomorrow, after the beach day. [00:19:56] Um, so windsurf, I already mentioned that, but I just want to mention it [00:20:00] again. Um, we are actually using it at Creativity to enhance developer productivity. Um, we think we're going to get, so far we're seeing another 30 40 percent reduction in development time and available time on doing projects. Major new features, just by how much Windsor is able to accelerate our work. [00:20:16] Um, but it also can monitor for tech debt as you go. Um, also mentioned all those awesome new testing tools. Um, And then the two other things I wanted to leave y'all with is, um, first of all, you have to have, we talked a lot about framework and tools and the different concepts, but you also have to have a culture and a process within your company that identifies and avoids tech debt. [00:20:42] Like, if you just wait until the tech debt is already on the site, And then you've already kind of spent the money building it once and now you're having to build it again. That's really too late. You want to have a way that in your development process, whether it's code reviews, whether it's um, These different tools, automated testing tools, you [00:21:00] are ensuring that TechDev just doesn't make it to production. [00:21:03] At the same time though, I've seen companies ship too far and too extreme. Um, don't make it a taboo. Like, make it okay to admit, Hey, I think I could have done that better. I think I could have implemented that feature better. Um, because your team really has to be able to talk about it and just have open conversations around TechDev. [00:21:22] Um, very quickly, because I was hoping to have a little bit of time to catch y'all's questions. Um, Specifically from the Working Intergrant Project, what we learned is definitely evaluate the limitations and issues on a site before deciding to rebuild or repair the tech debt. Um, don't try to replace everything at once. [00:21:40] Really focus on scalability and what your business needs the most in the coming months. And then collaboration is so important. Um, one thing, one reason I think so many people don't do that qualitative side of the tech debt is they don't talk to the business. for joining us. And so you really need your business users and your technical [00:22:00] users talking and openly collaborating around the tech dead. [00:22:05] Um, and I will zoom through this, you'll be downloading the slides. Basically, I already mentioned code reviews, automated testing, continuous integration and collaboration. And make sure you're following best practices. I mean, one of the great things about Magento having such a vibrant community and being around for so long is there's a lot of great information out there about Magento best practices. [00:22:28] There's even people in this room that are almost every day on LinkedIn giving away really good information about how to code and follow best practices with Magento. Um, so please don't ignore your technical debt, analyze it and prioritize it. Realize there's an ROI to fixing it, and I think that's the biggest piece for a lot of merchants is realizing that this doesn't just have to be a sunk cost. [00:22:52] This could actually produce a positive financial outcome for the business if we resolve this tech debt. And don't panic. Um, definitely [00:23:00] download that tool and use it to walk yourself through the tech debt on your project. There is the QR code and link to download that tool. Please connect with me on LinkedIn if we haven't yet. [00:23:11] Um, I don't know, do we have any time for questions? Alright, so we have a little bit of time for questions, but if we run out, you can find me around, and if you would like to be a guest on the Commerce Today podcast, I'm going to record some episodes this afternoon, or send me a message and we can record them. [00:23:28] Any questions? [00:23:30] I was wondering if you could elaborate on your example with the React checkout. That was kind of interesting to me, but how about we stick it together? Yeah, so the way Hoopa is built Um, you don't have to use their checkout, it's actually a separate optional piece. And so, that was just a decision we made, and their, their checkout also kind of plugs in via React, so we just built our own. [00:23:57] Um, a lot of that in our case was because [00:24:00] before Uber released their checkout, we had built a React based checkout system. So we like to use that, so. Any other [00:24:08] questions? [00:24:09] Would you call this a situation in which, uh, too many features, maybe more than they need, and they're executed pretty flawlessly, but then they find their maintenance burden is high just because there's so much going on in their site? I mean, do you classify that as a technical debt, or how would you handle it? [00:24:28] I think so, um, and I think that is, that's a good point. I didn't really talk about requirements gathering, but kind of that requirements gathering and business analysis stuff is where tech debt starts sometimes. And it's because we won't say no to the merchant. Like, so often you just need to be able to say no, even point to, Hey, the more features we add, yes, we can add every feature in the world to Magento. [00:24:50] That's the power and flexibility of the platform. But the more features we add, the more maintenance costs, the more potential for conflict. So let's make sure there's a clear business need for each new [00:25:00] feature. [00:25:00] I feel like a site search on a website with a lot of SKUs and e commerce websites can create a lot of tech debt, obviously, for multiple reasons. Uh, for Magento specifically, do you have any good recommendations of solutions for, you know, uh, Large amount of skews getting searched on websites? That's a good question. [00:25:17] That one is more context specific, depending on the industry and what that merchant is selling. So, that's one where if you want to chat one on one or send me a message on LinkedIn, I can definitely do that. And I think we are at time, so thank you all very much. [00:25:33] ​