EP366 – Dealing with technical debt
Jason Tucker 0:06
What’s up everyone? This is Jason Tucker and this is WPwatercooler episode number 366. This episode is brought to you by ServerPress makers DesktopServer Go check them out at serverpress.com and our new show The Query over at WPwatercooler.com/thequery. Our hosting Jason Cosper is going to be answering your questions.
Jason Tucker. You can find me over at Jason Tucker on Twitter. My website is Jason Tucker, my blog,
Steve Zehngut 0:33
and Steve Zehngut. I’m the founder of Zeek interactive and I run the OC WordPress meetup
Sé Reed 0:37
I make requests teacher requests at Davies media on all the things
Russell Aaron 0:44
my name is Russell Aaron, I do things with WordPress in Las Vegas.
Jason Cosper 0:48
Jason Cosper AKA Fat Mullenweg
Jason Tucker 0:53
help us out over on Patreon go to patreon.com slash WP water cooler. Hit the subscribe button hit the little bell to watch us on YouTube. Really appreciate it. Hey what’s up everyone? How are you doing today? Hi
Jason Cosper 1:13
I have so many queries right now.
Sé Reed 1:16
I am so not into finding out information during the introduction like what what is happening
Jason Tucker 1:27
it’s fun stuff we always have something going on and
Sé Reed 1:32
that never happens
Jason Tucker 1:33
I know right
Russell Aaron 1:34
to in one year by the way
Jason Tucker 1:36
I know it’s not that’s just crazy yeah but Cosper per thing we started a new show he’s gonna be doing a question answer show for WordPress stuff. Yeah.
Jason Cosper 1:47
Well, he asked me anything for for WordPress.
Russell Aaron 1:53
A weekly asked me anything. I love it.
Unknown Speaker 1:56
Jason Tucker 1:57
Yep, it’s gonna be good stuff.
Unknown Speaker 1:59
Jason Tucker 2:01
just let me know when you want to start something, say, well, we’ll make it we’ll make it happen.
Sé Reed 2:05
Oh, I did eight years ago.
Russell Aaron 2:11
You’re on it by the way you’re on.
Sé Reed 2:13
We’re doing it. It’s
Unknown Speaker 2:15
Sé Reed 2:17
As long as you do that close crop, close, close crop up thing Cosper You’re good. If you’re on iTunes one, I apologize. But two, you should really look at the video because this close crop on Cosper cute clothes on Cosper It’s so crazy that 10 heads.
Jason Tucker 2:36
So hey, today, we’re gonna be talking about, we’re gonna be talking about technical debt. And so what the heck is technical debt? I would define technical debt as the crap that you take with you when you go from one project to another or somebody else’s debt that you’re now having to deal with that, you know, somebody made some decisions. It’s up on their website, and now you’re having to deal with those decisions that Made they they’re using a using, I don’t know that they’re using something some weird page builder that you now have to kind of work your way out of, or you
Sé Reed 3:14
actually really great.
Jason Tucker 3:16
But yeah, they’re using something that you’re getting. We are using something that you’re not familiar with and now you’re having to kind of manage it or those decisions that were made are now things that you just have to kind of live with and kind of work through. So yeah.
Sé Reed 3:34
All my technical debt is inherited that because this is such a big thing that I do, which is rebuild sites that have been built that already exist. This is a this is a big part of apparently, it’s like my niche. Now people are like, wow, we have this big site. It’s really amped up. Can you rebuild this because it’s terrible.
Russell Aaron 3:53
That’s something that you deal with in support as well. You know, like when you’re sitting there and somebody writes in Hey, my site’s down, you know, like and you find out it’s this old version of this plugin or it’s a conflict, whatever it’s like, Hey, you you’ve had this you’ve had this plugin for a long time this is causing you issues like you know, that’s that’s that old debt that is sitting behind you know, and whether you haven’t updated it for whatever reason, like it’s causing problems. Now your your ripples are starting to whitecap as this happens, and that’s what I always think of technical debt as is it’s costing you by not keeping up with the Joneses, you know, update to PHP 7.4 do it calcagni got a weekly show. Cosper If I call into your show, will you update PHP for me?
Jason Cosper 4:45
and help you out? Yeah,
Russell Aaron 4:47
yeah. Okay, cool.
Unknown Speaker 4:48
Sé Reed 4:50
it’s basically like when you haven’t dealt with your emotional problems and you’re carrying on into your daily life and your life. Wow, now I can’t have a relationship or wow now I’ve lost all my friends what happened there? That’s it’s like that.
Russell Aaron 5:09
And in my therapist, my therapist and I talked about contact form seven a lot like we go through a lot you know, that would scarred me for life. All right? Yeah.
Sé Reed 5:20
You show he’s
Russell Aaron 5:21
like, Oh, dude, I would love that word WordPress. Mommy issues. I love it.
Jason Tucker 5:27
Oh, it’s awesome.
Sé Reed 5:28
So it could be like the parents of WordPress,
Russell Aaron 5:33
WordPress parents. I love it. So
Jason Tucker 5:36
can you walk us through the part where you’re doing discovery to figure out like, you know, you’re hurting with new website, you have a new customer. They come in and they’re like, here’s my website. Here’s all the credentials login, start looking at it. You’re trying to figure out you know, you’re doing your discovery work on that site that you’re going to be helping them with. What do you do? What do you what do you
Sé Reed 5:58
I charge for that? So can I First, that first part of the conversation, which is mandatory, because I won’t move on to the next part until that part’s done. And everyone’s like, Can you fix my website? And how much it’s going is it going to be? And I’m like, I can absolutely fix your website. I don’t know how much it’s gonna be because I don’t know how messed up it is yet. But I always I can, you know, you can do a precursor, a cursory look at the site and be like, Oh, I recognize some of this stuff, I can tell where it’s messed up on the front end, and maybe you know, run a couple built lifts to see what it’s got going on on the back end. But you can’t really get the information that you need, about understanding what you’re working with until you get into the actual admin. And
Russell Aaron 6:47
that’s why I think weekly, daily monthly, some kind of auditing is something that you should be doing constantly. So when they come to you, they should be like hair, say told me this is the current status and this is what It was like a week ago. You know what I mean? Like, you should always be on top of what your website’s doing?
Sé Reed 7:04
Well, I mean, at the very least, what would be great is if developers or disassemblers, or people who make sites for people would like, I don’t know, write a list of plugins that they have. It’s crazy. But like, people have no idea what plugins they’re using. They don’t know. Like, okay, maybe they don’t know what themes they’re using, because they don’t understand that component. But there shouldn’t be a somewhere of the assets that are going into a website it is constantly
Russell Aaron 7:36
or how they help your site, what like, Hey, we installed this plugin for a reason. And here’s how a word
Sé Reed 7:43
list would be like, I mean, that’s what I do for my clients. I’ve got a list of the plugins, a list of what the plugin does, and a list of basically not not the actual credentials, because I’m not keeping that in there. But what email that account is tied to so that when they’re like I couldn’t find my account. It’s like, just it’s in your list, go look at it. And then you can do a password reset, if you can’t find it, figure out your password. And with a minimum, and then you could pass that on to developers. And that would be there would be a lot less discovery involved in that. But literally, I’ve never ever seen that the closest I got was one of the clients that I’m working with right now is they had a, like, here’s all the stuff we got from our developer, and they were so excited to send it to me. And I was just like, like, here’s how to make a post in WordPress, I was like this is so
Russell Aaron 8:38
now I have I have seen what you’re describing. And the only way that I have seen a client coming to us with that audited stuff is because that’s how web dev did it came into a project. Like they were gonna build this thing. So WGS went through and they did an entire I’m gonna let Cosper talk more on the server side of things, but you know, from from like, in agency we’re looking at, what is the site do? What is the expected outcome of this site? And then, you know, what’s happening? What are we trying to fix? And if you know those three things, then you can start assessing what is technical debt? and what is not. What is the current status of your site? And if you’re getting this error, we have to address that. But is that error causing the project an issue? Or is it causing the overall website an issue? So determining of that, that I call that an audit, and that is something that you even if you are just a person who makes pizzas and you have a WordPress website and have somebody like, say, working with you, you should be asking, Can I get not do I know what this is, and you know, it’s a monthly fee that you might have to pay or something, but at least you currently know the status and it’s not like, catch me up in six months, because now the site’s down and you have to make this technical decision for us spending money but you don’t know what to do.
Unknown Speaker 9:59
You know, like I
Sé Reed 10:00
would necessarily need if, like, to me, it’s more of like that would be a chain, you would need a change log, right? Like, so you’d have an initial list of the stuff you’ve got going on. And then as that changes, you’d be like, Oh, we change this plugin for this plugin, or we switch this out for that. So it shouldn’t even be like you need to do an audit because you should be logging the changes that you’re making to the site. So it should always read. It shouldn’t just be like, Oh, well, in the past month, we change these things, like, you know, so I’m not super like the idea of the audit to me doesn’t make as much sense as a change log, and just a constant. Okay, what’s been this is what’s been updated on the site. And so it should always be kind of a current status of what’s going on on the site, not the content,
Russell Aaron 10:48
obviously, I’m gonna back it up, like like our friend Stevie would do it. I’d say as a beginner and you don’t know WordPress, you’re not a coder. You’re not a developer. I’m saying you should have some kind of knowledge of what your site just is and does. And you can make more technical decisions that way. And, and that’s what I was getting at maybe a monthly audit is a little too much. But you know, as code changes and and new plugins are introduced or new functionality to the website, that’s all stuff that needs to be updated. And you might have to do a new audit, just by adding a WooCommerce wishlist. Like it might change the whole functionality of how your site works.
Sé Reed 11:28
What I think you should audit actually is the content because as you turn over the site to the client, and over the past month, the client has been using the site, I thought it would be like, hey, look, you added three new banner images that have not been optimized and are now the size of posters on your main is that
Unknown Speaker 11:47
Sé Reed 11:48
I actually think that isn’t that content that I would consider it technical debt because it’s affecting the performance of the site. So
Unknown Speaker 11:57
how’s a doctor?
Sé Reed 11:59
Hey, I like you, too. Yeah, face expressions.
Jason Cosper 12:02
So great I’m just I’m just I’m just nodding along and waiting for my chance to dive right in Go go go, go go so
Russell Aaron 12:12
just kidding stays on waiting to the street I’m on the other hand we have that we have this slow stop signs go into traffic flow and go.
Jason Cosper 12:20
Alright, so I like to say that when I set up my computer, I know that I mean we’ve established over the hundred some odd episodes I’ve been on that my brain works a little differently. I actually keep a change log of everything I install on my computer. So if I put a new app a new browser or something like that, and I do the exact same thing with my WordPress sites, and again it Why did I put this plugin here why I actually and it’s something maybe someone out there cuz I really don’t have the time for it right now. Can can do it. But I would I would love it if there would be like in the plugins area. Yeah, a plugin that says, Okay, here’s the date this plugin was activated. Like actually here is the activation date and then also give you a chance to leave notes on your plugins on your theme stuff like that
Russell Aaron 13:23
gain tool kinda does that maintain tools is a plugin that does that and you can leave notes but go on.
Jason Cosper 13:30
Yeah, so so having having those notes having is maintained tool for everyone or is asked for maintain.
Russell Aaron 13:38
No, it’s on the repo, I’m going to link it to Jason.
Sé Reed 13:42
Okay, great. So the, the activity feed kind of like would be that except for it logs literally like everything so it becomes totally useless. It’s like someone changed a comma. Therefore, it’s in your activity logs. Your activity log is like, you know, 10 And pages long. So you can’t really use that to go in and be like, who installed this plugin? And when? Because there’s no way to sort that data. There’s no way to it’s just a big firehose of anything that changed on the site.
Russell Aaron 14:13
I think that’s a good episode is like, what would you like to see the plugin dashboard redesigned as cuz like, you know, there’s, I would, I would like to actually see how many Pippin plugins somebody has, or how many WooCommerce things are there. Like, I’d like to be able to sort them by developer and stuff, but Cosper like you were saying, I leave notes on things all the time. And that was a problem. That was an itch I was trying to scratch which was leaving notes for plugins, like don’t update this because if you do, it breaks and Katie gets mad, or you know, she turns into Karen, whatever, like something, and so I had to do this, get on the show, go to Valley West go to WTF just to get that into a plug in. But I got it done. But I got
Jason Tucker 14:58
Yeah, it’s kind of like it’s kind of like Like a lifecycle diary or lifecycle, log, change log, like that automatically happen. That’s the thing. It needs to automatically happen. When it when it changes. I don’t know if you guys have seen I mean, most of you have have used WP Engine before. But when you go to plugins, you when you go to current when you go to update your plugins, it always asks you like, have you made a backup? Or would you like to? Yeah, so like, there’s hooks all over WordPress, that should be like writing back into this change logs that were that we’re now generating, that would make it so that you can just go back down the list and go like, oh, here’s what’s going on. But I think when you install a plugin, I think that’s where it should be asking you like, why are you installing this plugin? So future Jason can go back and look at what past Jason did and go like, ah, he installed this thing and then he abandoned it and
Russell Aaron 15:52
I have a better reason than than that. And I would like to look at it and I would like to see all right. And I say might agree with me on this Fingers crossed knock on wood. So this client has a tendency, I would like to see that they don’t update plugins other than every six months this this is a person that doesn’t care about this site. And so they’re gonna do something whatever, like, I’m going to have to handhold them and if there is a log that showed me like, this is why managed MVP is great. It shows me the update history and when plugins get touched, and when they’re added, it gives me a better understanding of my client and what they do with their site and some insight into why it might be broken in the first place.
Unknown Speaker 16:39
And ran with managed,
Russell Aaron 16:41
managed WP does that manage WP keeps a track and then says like on this date, we updated from here to here, and then it gives you a link and it says like, here’s the change log so it pulls that in unless it’s like in a paid plugin, but like I’m working with maintain here like I’ve been able to see that people coming to To us, I can’t tell if they just updated ACF yesterday, or if it was that way for six months ago. So if you haven’t had a thing, it would tell me Hey, they they Yeah, client told me they updated ACF, but they did it yesterday, not when it came out, you know what I mean? Like, it would give me that tip.
Sé Reed 17:23
So basically what we’re talking about here is we want Well, no, but we went and we want to, we want to understand every site has technical debt every site has, unless it’s fresh and new, which is why I love building sites from scratch. Like, I’m like, we’re scrapping the site and we’re just gonna build it fresh and clean, clean. But every site that just gets if you’re bringing over content, if you’re just rebuilding it, if you’re putting in a new theme or fixing it, it has technical debt, and so technical debt is not necessarily new. It is in and of itself a bad thing. Because it is, I mean, it’s sounds bad, right? Because that sounds bad, but it’s just basically stuff that is making up the site, and the idiosyncrasies of those, that particular combination, there’s so many different ways to build the site. You know, in so many so many combinations that like you, you’re gonna each site is going to come with a unique combination of those things. And so that in and of itself, is the different technical debt situation for each site. I just think it has such a negative connotation of being bad, like I have this technical debt of this outdated plugin or this bad thing. But really, technical debt is just the story, the technical story of that way.
Jason Tucker 18:44
It’s, it’s the it’s the the check register. You know, if you’ve ever used a check, check in yours, but but a check register would show you like the things that you’ve spent in the past. The problem with a check register is is it only shows you the things that you spent with a check. So like you This thing needs to be a thing that does all of it and be able to look at it. So really, you’re paying yourself forward or paying the next developer forward, if you were to have some kind of activity log type plugin, and we’ll go through a couple of them and, and put them in the show notes, you can take a look at it, but that might help the person at least give the story as to what’s going on Cosper what do you what do you what do you think
Jason Cosper 19:19
I was gonna say, Now, activity log plugins are all well and good. I know that there are a number of them out there. My biggest issue with those is they all write to the WordPress database. Some write as custom post type and, or, you know, and just use the post table, which sucks from performance. The second you actually have to fight with your logging setup, to all of a sudden, like, you know, pull your posts out of the database, but you have to look past all this logging data that you’re using. Right? Not not great, Bob. I would also say that one, one big thing that I have kind of noticed is we’re talking a lot about the technical debt that is exists on a site that you can see. But there’s a lot of technical debt on the site that you can’t see. Say, I’ve seen customers use and I don’t want to name and shame but I’m going to name at least no shame, but there is a Yeah, there’s a there’s a plugin for WooCommerce meteoric, which gives you a lot of great data on your WooCommerce site. And it doesn’t,
Sé Reed 20:47
is that what you’re saying?
Jason Cosper 20:48
It, it doesn’t really clear out the database tables, all that well, once you’re done with it. So I had a customer who was amazing.
Russell Aaron 21:00
Upon uninstaller, is that what you’re saying? It doesn’t clean up after itself. Okay,
Jason Cosper 21:05
correct. And so there were still meteoric like tables in post meta and stuff like that on a fairly high traffic site. And in a lot of cases, I think the problem was, and it does maybe clean itself up on a smaller, lower traffic site. But once you start getting into these high performing site, you end up running into issues where it’s like, oh, this query took too long. So PHP killed that while we were in the install process and in tough luck,
Jason Tucker 21:39
data, the data is meteoric is what you’re saying.
Sé Reed 21:42
Jason Tucker 21:51
Russell Aaron 21:52
I would even extend all of this to the server level two, if you’re not running the latest version of recommend In the software, like, you could be doing yourself harm, you know, some plugins will throw an error if you’re not running a minimum requirement. And that might have probably been the best plug in for the customer to use, but because they got an error, they went and bought this other one. And you know, like, even just simple things like that. It’s like Cosper, saying, you don’t see it, but it’s there, you know?
Sé Reed 22:24
Well, and then there’s the cost of the opportunity that right, so if you as soon as you make a choice to go with a specific plugin, and not the other plugin, and then if that plugin stalls out, or doesn’t pan out, and then the other plugin, you know, starts to develop and have more of the solutions that you want. You can have one plug in that has to have all these add ons and all these fixes. And then the other plugin like does that stuff, but you didn’t know that. back then. When you have that. I just responded to a tweet that someone was saying, like, how often is it that you get halfway through your project and you want to rebuild and restart the whole thing because you’ve got a good question. But it’s half of why none of my personal projects get done because I get halfway through and I’m like, Oh, wait, this is a better way to build it. And I just start over. And
Russell Aaron 23:15
it’s more than 15%. Let’s say that,
Unknown Speaker 23:17
Sé Reed 23:19
too bad. But that’s part of it, too. Because when you inherit these bad sites, without all those notes, I feel guilty sometimes, because how bad I think of the previous developers like, I want to give them the benefit of the doubt. And, you know, we spent that whole episode for the other week of me asking that what they really did. They really do.
Russell Aaron 23:44
I don’t know what was that the ones from the OC.
Sé Reed 23:47
Yeah, I don’t know that at all. thing in the functions file, you have a problem. But, you know, they made the choice and there was probably a reason that they made that choice, but without Any context whatsoever, it’s just like, you know, look, someone spent $500 or $5,000 on a thing and no one knows what, you know, they bought this car that turned out to be a lemon. And you’re like, Well, that was a stupid choice. But you didn’t know that when you bought the thing and without the context of why you bought it, you’re just like, wow, you made a dumb choice and bought a supercar and now you’d pay all this money into it, you know?
Russell Aaron 24:24
I’m gonna raise my hand and say two things number one. Yeah, number one, I apologize to anybody that I have ever just jumped the gun like I used to just answer right away Gravity Forms or this and you know, like, for me, that is the answer. I do everything through Gravity Forms or through EDI, but you know, like there’s a lot I feel bad that there might be people out there that hey, Russ said this. Now they’re into this plugin with five add ons and you know, like, it probably might have not been the best suggestion. So, you know, first of all, I want to apologize Eyes, the people out there and say, you know, like, do a little bit of research, make a backup before you take anyone’s advice, but also at the same time, you know, like, um, you know, you don’t know, you never will know, as you know, as this pandemic has shown us businesses thought they were businesses thought they were doing this. Now they’re switching to this and it just goes to show you that like, I cannot cover every aspect of what you need your printing t shirt business to do, but like I can help you rebuild the get it back online, you know, like, I don’t know, I just don’t have a crystal ball.
Sé Reed 25:39
I have been espousing for the past Oh, I don’t know. 300 however many episodes, which is the answer to every question is, it depends. And then a lot more follow up questions after that because there is no one size fits all answer for any of this other than don’t write the entire website and functions file
Unknown Speaker 25:58
that Prime Minister Say ACF pros pretty close.
Jason Cosper 26:04
Anyway, what were you gonna say? I was okay. I mean take takes take somebody who years ago they’re like man, I gotta get an e commerce site going. So they hitch their wagon to jigoshop
Unknown Speaker 26:19
did that did that carbon or carbon 66 was the other way.
Unknown Speaker 26:25
Jason Cosper 26:28
my my, my old roommate, a very dear friend of mine, Jeremy kitchen, I’m going to let him know I’m shouting him out he’s not much of a WordPress guy. He’s more of a sysadmin but he, when we first moved in together had just hitched his wagon to a little format called HD DVD. And he bought a bunch of HD DVD DVDs. And
Unknown Speaker 27:03
Jason Cosper 27:05
bait see and that’s I have one that
Sé Reed 27:08
one is that like the blu ray,
Jason Cosper 27:10
Blu disc, right? That was that was the competitor to blu ray that was the the Betamax to VHS got it.
2030 some odd HD DVDs. And even as the format was dying out, he’s like, man, I hitched my wagon to this thing. I bought my dad, an HD DVD player. So he’s just like, I will have to buy as many because he’s been so hooked in to HDTV Don. I remember him going to Fry’s and that’s a chain here in the western United States. And we’ll buy their clearance HD DVDs, just so he would have a new
Unknown Speaker 27:59
one. building his own Netflix.
Jason Cosper 28:03
He wanted he wanted enough content to make this expensive purchase worth
Unknown Speaker 28:11
it like a record collection.
Jason Cosper 28:14
And and he’s right in now. Okay, see I have a record collection and I have a bookshelf. Yeah, exactly.
Unknown Speaker 28:27
No, that’s not
Jason Cosper 28:29
the record the record collection at least they’re still making record players you cannot standard standard. Yeah, you can’t buy another brand new HD DVD player then exist.
Sé Reed 28:42
Russell Aaron 28:42
either either just
Sé Reed 28:45
like if you had to, you’d build your own record player because if you had to, you could run a forked version of WordPress that was that kept it in that world forever if you if you had to do that, right. So that’s kind of the equivalent of your record player. Because in theory, you know, the record holds the data. So you could get the app. It’s not that complicated of an apparatus to construct. I mean, I can’t construct one. But to construct a record player, you could do it again, if this was say, the apocalypse or the last of us, and you had to have a rebuild the record player versus trying to build your own HD DVD player, which you’re not going to be able to do.
Jason Cosper 29:27
Talking about it sounds like you’re talking about classic press people now say,
Sé Reed 29:36
I guess I guess they’re kind of doing that. Is that still a thing? Are they still doing that?
Russell Aaron 29:42
I don’t know. I don’t know if classic presses is still around. So quick. Someone did the Google we’re all like,
Sé Reed 29:50
anyway, yeah. So that’s a different form of technical debt. I guess we’re done. This is like the end of Yeah,
Jason Tucker 29:55
yeah. I enjoyed. I enjoyed having this discussion. I think it’s great. for people to understand what it is that they’re having to deal with when they’re handing over their website to a new developer, or if they’re a developer who is inheriting a website, now they have to deal with it. So thanks for
Unknown Speaker 30:16
Sé Reed 30:16
make a backup document.
Jason Tucker 30:19
There we go. You can go help us out over on Patreon, go to patreon.com/wpwatercooler. And this is this is where Jason Cosper gets assigned yet again, his name shows up on a screen. And if your name must be on the screen, you should because it’s on there. You can subscribe to us as a as on YouTube. And you can also use the little bell we’d really appreciate it. And lastly, this is where you can find all of us on all the different places as a podcast, that we’re not just a YouTube show, but we’re also a podcast and audio format. So feel free to go find us at all the great places and you can find a podcast talk to y’all later. Have a good one. Bye