WPwatercooler

EP314 – Explaining to clients that WordPress is someone else’s code

March 22, 2019

On this episode of WPwatercooler, the discussion centers around the intricacies of URL sharing and the user’s understanding of it. The panel deliberates on the overabundance of share buttons and their actual utility, with mentions of potential security risks such as malware. As the conversation progresses, the topic shifts to plug-ins, their evolution, and the decision-making process when considering a switch. An intriguing aspect brought up is how developers manage code, especially when multiple teams are involved. The importance of version control is highlighted, with humorous anecdotes about old-school methods like passing a “code brick.” The conversation also dives deep into documentation practices, with emphasis on the significance of adhering to best practices and the role of code reviews in ensuring quality. The episode wraps up with a nod to their sponsor, ServerPress, and its benefits for local web development.

00:00 Introduction
00:15 Understanding URLs & Sharing
03:05 The Problem with Share Buttons
07:30 Plugin Evolution & Decision Making
12:40 Working with Multiple Development Teams
15:47 The Importance of Version Control
20:09 Adapting to API Changes & External Dependencies
21:03 Code Documentation and Best Practices
23:15 The Significance of Code Reviews
24:21 Discussing Developer Patience
26:32 Documentation: Depth & Standards
28:44 Adhering to WordPress Best Practices
29:20 Wrapping Up & Thanks
30:44 Sponsor Shoutout: ServerPress

Panel

Episode Transcription

(00:00) oh man love it not to be confused with flag pole sitar which is together what’s up everyone this is Jason techer and this is WP water cooler and it is episode number 314 this particular episode is brought to you by server press makers of desktop server I want to go around the room real quick and get everyone introduced say Reed yeah you’re you’re further back in the uh in the alphabet you can you can you can start us off a little bit oh thanks I feel real special um I didn’t realize it was It was a
(00:31) already uh all I can think is paranoia paranoia everybody’s coming to get I know my name though my name is s read uh I make word press teach word press word press breathe word press dream WordPress lately which is starting to creep me out and um at Sayre media on all the things hey what’s up hi I want to publish Z and rage against machines I do I do oh man Jonathan tell us about yourself H Jonathan wal um I do what say does I just don’t look as good and I live in North Idaho and you can find Jonathan H Mr cosper how about you hey
(01:21) everybody I’m Jason cosper I want to pierce my tongue it doesn’t hurt but it feels fine so yeah yeah what’s your favorite l like turn off time kill my mind that’s what Steve wants to do good to have you on as always cosper how about you Steve I am Steve Zen I’m the founder of Zeke interactive and I run the OC WordPress meet up allegedly awesome I’m Jason Tucker you can find me over at Jason Tucker on Twitter um I do this show as well as WP blab so make sure you go take a look at WP blab over at wpw water.com WP blab
(01:57) where you can find out all fun stuff about what we do over there there last episode was two weeks ago it’s been a little bit and it’s probably going to be a little bit more because I got a lot of stuff going on on Thursdays and Thursdays is hard Fridays is Fridays isn’t too bad so Thursdays is a big day it is it’s you build up all the stuff from Over the week this is the exactly so so today I wanted to talk we’ve kind of been alluding to this this topic over the last couple episodes but this idea of using someone else’s code
(02:28) on your site and using some else’s code like on on a site that you’re delivering to someone else you know it’s like here here client here’s some code that I did not write and I’m going to support this and hopefully it doesn’t blow up on [Music] me just so I I wanted I wanted to discuss this a little bit um I I did have a bit of a side rant regarding this in regards to uh weird stuff that happens in the dashboard with plugins as marketing gets involved and how we should uh start talking about you know
(03:01) our pro version of our plug-in and how we should start throwing a whole bunch of fun things into the dashboard I think we’ll definitely get into that at some point might not be this particular episode but I I want you to know that we we kind of want to dig through a little bit about what do you how do you kind of share this with your clients that you didn’t write all the code that made up the site but you’re definitely charging them for it first you have to tell your clients so I didn’t invent the
(03:26) internet that I need you to know this I’m responsible for the entire thing Steve you were telling me that you you you have this type of conversation with your clients that no I didn’t write woo Commerce like woocommerce was not my thing but you you’re going to be using wooc Commerce and we wrote like a couple thousand lines of code that um kind of go with woocommerce but we didn’t write wuk Commerce to start with well I start with the benefit right so the the the benefit of using existing code and other
(03:55) people’s code is something like woocommerce is it’s a mature platform it’s been out there for a long time there’s a lot of good developers behind it right and and it’s supported and it’s always going through updates right so what we do what we get by using something like a woocommerce for instance is a lot of the platform already built a lot of the features that that my clients might be look for be looking for are already done and then we’re gonna kind of customize it from from there so there there’s a benefit to
(04:23) using existing code makes sense I mean just like you’re not you’re not um liquid web for the hosting of the thing just like with cosper it’s like you’re not host you’re not the web host but you you found a good partner to work with and you’ve put their website on that web host and and one way to say that is a website has many moving parts right there there’s a lot of things that a website deep let’s what is the it wasn’t it wasn’t meant to be existential you should crack open that
(04:53) Wikipedia Steve we haven’t heard what website is website according to Wikipedia website no I’m actually I do know this because I actually looked it up this week because I did a beginner talk and I just wanted to see what the world said it’s a digital uh collection of files just that’s what a website is a digital collection of files yeah and a database if you don’t remember the that’s not the Wikipedia that’s just breaking it down anyway but to answer your question about hosting uh Jason you know and I’ve said
(05:23) this uh you know on pass water coolers I let all my clients know right up front I’m not a host right I’m I’m not a host and this is specifically what the host is responsible for right and and sort of where we leave off and they pick up so we we draw that distinction that is so important so that you are not called in the middle of the night with an expectation that you are going to get the website up at 2 am depends on the size of the client I’m still I’m still called in the middle of the night we’re
(05:51) still we’re still responsible for it U but you know it’s a lot of and your host isn’t doing a very good job if you’re being called in the middle of the night doesn’t happen often I like the example of focusing on the benefits like if I if I was in it and built a custom app for some big Enterprise client and went in and we deployed on their phones they’re not going to expect of me that I built the operating system that’s like powering the base and similar way it’s like like listen you don’t nor would you
(06:17) want if we built an OS for these phones that’s a bad idea like there’s a huge excellent body of work and we built an app that runs on top of this so in similar way with WordPress we think of it as an operating system like hey there’s this great Foundation there’s like additional like ecosystem plugins on top like woocommerce that add a whole new suite of functionality and that yeah I built a custom ucommerce extension for you that does these special things but it’s yeah it’s definitely to their
(06:44) benefit yeah and that’s that that’s a that’s a great that’s a great distinction a great customer woocommerce extensions not not anymore but am I am um I I describe WordPress as a platform yeah yeah it’s it’s a platform and there’s your face sorry I’m just not serious today I just simp okay that’s all right you got a head I guess there is some things that could happen with that with that code so if you’re not the one that originally wrote the code but the company that wrote the code that
(07:18) maybe the whole site is dependent on makes a full left turn and goes like um actually we’re turning this into a social media platform and we’re not actually going to have this be a shopping cart Plugin or a whatever what do you do then like how do you explain that to the customer like hey by the way that thing that we put like 90% of your website on um now is gonna we need to find another solution for it in general that’s a fairly low risk in WordPress a lot of it’s because of this perhaps overemphasis on backwards
(07:50) compatibility right like that’s pretty and then but the other part is as someone building these things that’s part of our responsibility to figure out what what are the safe bets like what what you know what do you use I think honestly I think that is one of the most valuable things about having long-term kind of like industry knowledge about WordPress and even if you’re not paying someone to build the code you’re paying for the fact that they know the difference between this plug-in and this
(08:17) plug-in and the history of this you know hosting company and where it’s going because this is what I was saying to some some folks I was teaching a workshop to this week you don’t want to just build your website for today right like you want to build your website for next year because you don’t want to have to be rebuilding it so if you’re just building it with whatever works today without any eye to where is all where are all these tools that I’m using gonna be in a year then you could just you
(08:46) know use whatever new fangle thing is out there but at you know in a year you’re not going to have those pieces together because they’re all just a bunch of like bright burnout Stars one of the big opportunities I see in WordPress as time goes on is is to remove some of the dependence on Specialized knowledge because today this is a bit of the problem right like you have your favorite forms plugin I have my favorite forms plugin and there’s 10 others that exist now that neither of us have tried wait your favorite forms
(09:12) plugin isn’t gravity forms so it totally is see we all have the same form okay just just let it clarify okay so um and that specialized knowledge right like and I’m I’m not I’m a creature of habit I’ve had a gravity forums subscription now for almost a decade and it’s like it still does the job I look at others occasionally but ultimately there’s a lot of opportunity for us to as to have like all right how would someone know who doesn’t know who to talk to so Jonathan’s in a committed
(09:45) relationship with gravity forms but he likes to look around every now and then he likes to keep his options open yeah you have you have what’s up n girl just just tip your tip your put your toe in the water looking good today ninja forms coming up with the premium look at sorry ultimately an open relationship with gravity form we all go to me up right and at meet up most recurring questions well what do I do for this what do I do for that it’s it’s great to be able to like dish out knowledge but ultimately
(10:22) the opportunity is what about for those who don’t go to the meetups and ultimately what what am I missing out on because I’ve been doing the same thing years and and I think I think the point it it is it is important say I’m G to crack up say here but it is important to have an open mind when you when you get into these things yeah right it’s it’s important it’s it’s important it’s important to have an open mind because a lot of times when and we talked last week about inheriting code right but I
(10:49) find that clients will come to me after they’ve had a conversation with another developer that is insisting on a particular technology say absolutely you have to use technology nothing everything else sucks right and that’s not exactly true that’s that’s typically a developer speaking from their own set of experience right and it’s I hate when developers do that they’re like oh this is the one thing I know therefore this is the only one that’s good and that’s why they’re recommending it because it’s
(11:17) the only one that they know how to support right which isn’t necessarily the best for the client and often is that’s some [ __ ] sorry it is totally is this code has my filter just complet completely off it’s just got this code this cold whatever whatever say say is now RoboCop yeah happens so what happens when things go wrong then that’s that’s the next piece here I mean things went right because you you made a decision and you installed it on their site and everything went well and maybe six
(11:51) months down the road um stuff starts breaking what do you do then you didn’t write the code somebody else did yeah for me for me Jason uh customer service is the is the key differentiator there right so even if something goes wrong right and it’s something that we didn’t write and it’s other code or it’s a hosting issue or something we always take responsibility right even even if it’s something that we had no hand in doing and it went wrong we we still take responsibility because that’s what our
(12:21) clients came to us for right we still find out what’s what what the issue is and and go fix it you know also well good no you say Jason you all right so so when it’s your when this is your first couple of clients websites that you built and this always happens to everybody the first couple clients websites and you install a Facebook button like share button Twitter share button all those like share buttons right and and you’re like this is the fanciest one it’s the coolest looking one I’m going to put this on their site
(12:57) and you put this on their site and then the the plugin never gets updated and so weird but like why are share buttons so the API changed what happened why is it the worst part of yeah and and I think that’s a matter of educating your client right either before the fact or after the fact you can do it you can do it at either at other point but at that point you’ve got to take a step back and and just educate them as to how the internet works right and how how how Technologies change right technology change and they grow
(13:29) over time and this is a plugin for technology that changed but the plugin uh developer didn’t update it and that’s why these things are broken I can fix it but this is why these things were outside of my control um yes I was gonna say that uh earlier you were talking about you know did you just refer the same thing over and over again I like to take each new client as basically a fresh opportunity to examine the field because even though gravity forms is great uh and has like you know all these things for for some
(14:05) clients it’s not necessarily the right fit for every project so that’s the cool thing about all of these different options and not just saying oh I have this same Hammer so I’m always going to hit this nail the same exact way you know maybe you you need to do something else maybe a nail will work but maybe a screw would be better I knew I was going to get myself into trouble with that I saw it coming while I was saying it a screw is always better screw is always better than a nail no Kasper looks like
(14:34) he’s got something on his mind I was I was gonna say there’s well now that now that se’s phrasing about a screw has has floated out into the ether um a a a quick a quick sidebar um H how many of you you said share buttons how many of you have actually clicked on a share button on a page in the past six months nope nope no okay do and I have but but hold on we all understand what a URL is and we all also if we wanted to share an article would know how to copy said URL and that is not the same thing for the standard
(15:15) user and this is the problem that we as developers have when we’re in this total framework of our own world we don’t realize of course you just copy the link from the browser that’s people do not even understand that that is a thing that is there they use it as a Search tool box so cper what do you what do you ask yeah sorry oh no I I I just I just hate share buttons I’m being a because it’s it’s really I I feel like the world would be better with less share buttons there was that uh that was
(15:47) that plug in just the other day that um social Warfare sorry to to single it out man malware share buttons are the most malware Laden thing yeah yeah and and they track you no matter where you go so Facebook no matter what page a share button is on they are fudging useless whoa well I mean wow he used the f word yeah the F really intense yeah it’s no but um I’m sorry back on topic I mean know that’s on topic right because you know which share button thing do you use and there are new share button plugins that come out every
(16:28) single we I know wait I got an answer I know which share button you use none of them that’s my answer yeah literally put share buttons see so then you get into the conversation of are you meeting the expectations of the user who are like oh where’s the share button how do I share this sharing is one of the most valuable things valuable forms of marketing I hear sharing is caring how do you handle this with clients does it come up like you find that it comes up with clients now like they ask for it or like you
(16:59) handle it for customer he’s doing Fancy Pants sites they don’t need no share no we have share buttons on some of our sites we we talk about we talk about the benefit right we talk about and I asked very similar question to what uh cosper asks is I I say do you use share buttons right how do you use share buttons what what are your expectations around a share button right and sometimes the idea of what of of sharing is not really what they have in mind right that’s not it’s not exactly what they want to do
(17:27) right same with like right there used to be the like button all over the place right the like button was the thumbs up it was everywhere where do you see that it wasn’t it was it was every that was some terrible software from day we all had t-shirts with a like button on it that didn’t do anything couldn’t do anything when you did this you know but okay so that so this is another thing so I the first question is with each client right you have the opportunity to look at all of kind of the do do a little I I do a survey
(18:01) basically of the tools for each new client because it’s an opportunity for me to you know take in the field it’s an opportunity to really dive into what the specific needs of the client are for of the project for those specific nuances um but what about when you’re in a project that’s already launched whether you built it or someone else built it and it’s you know a new product has come out or the product that you are using is not as great anymore not as well supported what about that decision when
(18:35) it’s basically an option an optional change right you don’t necessarily have to change from using this plugin but it would be better for this this and this reason do any of you ever could basically like change plugins Midstream all the time uh yeah all all the time but um really uh when it comes to say like you’re changing from one e-commerce plugin to another uh discussions need to be had about that’s a little elaborate you’re like just kidding your entire system’s different don’t worry that’s probably not a better
(19:07) yeah I think I think I think you have to do you have to analyze what that migration is going to look like in in anything you switch Steve you got so serious just now you were like wait are you talking about changing think like woocommerce like that’s like an ecosystem plugin that has so many different parts connected to it that’s a lot harder to change out than the feature direct integration right so that’s part of it matters like that that’s where those decisions like forums are kind of close because they start to
(19:38) bring a lot more functionality with them and Integrations as you build them out yeah like I I’ve built entire I would I’m not sure like publicly describe built some pretty fancy stuff like with form plugins that um didn’t yeah didn’t think that was possible we’ve had we’ve had this issue with Instagram for instance where Instagram goes and change and AP the way their API is going to be set up and they’re like you can only show images from your own Instagram feed not anyone else’s and I’m like oh great so
(20:09) this entire part of this website is is now useless like we used to have a thing over at the church where it’s like I want to show all of the images that were taken at the church like it would actually you know who Tagg the church in all those images well no no no was for it was for internal use so the internet would show the stuff and so people were like hey this thing broke and I’m like what are you talking about and it says has a message on there saying like the API changed and talk to your administrator and I’m like that’s you
(20:37) are you kidding me and then come to find out yeah it’s like sorry I can’t do this anymore because they they they took away the functionality you could do there set up individual WordPress accounts for each user and then iframe it all together in some oh God right I’m using an if frame on a site right now and it makes me want to punch it so we’ve talked we’ve talked a little you know kind of this is kind of focused on plugins Choice by the way yeah this kind of been focused on plugins up to this
(21:03) point but really the original question was someone else’s code right what if you’re working on a site that has multiple developers working on it right that multiple teams with no version well ver Version Control so we we when we do that we require Version Control right we you know if you’re working with multiple teams and you’re working over FTP you’re just going to keep overwriting each other’s code right so so definitely have Version Control use the email to let someone know you’re
(21:30) about to work on the site and then they stop um that was real that was a real yeah that was actual ways it’s like back when I was a kid we had to send an email to tell each other to stop doing update Weaver lock files how about there PRI prior to Version Control I’ve heard stories about people that would be sitting next to each other at different desks and they’d have like a a a a brick or a piece of wood or a plaque or something and they pass it to each other to basically designate I’m working on
(22:01) this code right now I’m the code brick yes I’m the code brick right now I’m not kidding yeah and then they bring in another brick and all hell breaks loose but like who brought the dummy brick that would beeve Steve brought the dummy brick I I knew a few developers Who would wear a sombrero and it was like coating somero basically and so effectively I’m working on this like nobody that cultural appropriation together I’m on the somero branch don’t don’t mess with that one yeah you could like have your thing
(22:38) be named according to Stu that’d be awesome so so yes a g repository is is mandatory right you should not be working with a team without a g repository but at some point that code’s G to be merged into one right it’s going to get to a server it’s going to get to merge into the branch at some point and not all code ERS are created equally right and so we do have to end up supporting other developers code right that that’s not vetted through the plug-in world yeah yeah let let get be your somero can we tweet that J Jason I think
(23:15) we need to tweet that today that’s that’s that is I will make that happen I become much more I empathetic and and patient with other people’s code as time has gone on because I I mean we’ve patient or impatient patient like you become more patient okay yeah because and as a rule I find that I get better and better at documenting as time goes on because of the pain I’ve experienced and like all right so they wrote this like super long function that does all these crazy things and it’s like oh man
(23:45) I these massive and so and there there’s there you know there is a A system that you can put in place to do what what what what you’re talking about Jonathan that’s code reviews right so one of the ways that you you help coders get better or you fix code is by having a code review protocol so that before it gets merged into a site you actually go it goes through some you know some other levels right um Jason Cohen was uh you know a big um proponent of of code reviews J Jason Cohen from wpn j a smart
(24:21) bear smart yeah smart bear was actually a CO that I think that’s what their company was focused on was code reviews no but isn’t that handle sorry yeah that that was his company before WP Eng that and that’s what that was their thing it was Cod is I just want to point out this is why you have to be careful with your Twitter handles okay just because that is what people are gonna call you forever be careful out there people be careful with your bears but I think I think Jonathan I think to to your point I think that’s
(24:49) important is um patience patience is is is a real skill when you know when when it comes to integrating other people’s code right because it’s really easy to go to look at somebody’s code and go and say what were you thinking this sucks you’re an idiot right you like to make friends I don’t that’s a warning sign for me by the little unsolicited Pro tip for clients if the client badmouth their previous developer they’re gonna probably do it to you too also if the client badmouth their previous developer the likelihood
(25:23) is the client was the problem because look at the con Pro tip that also works in relationships okay social media plug in I think we should all let get be our SoMo here I don’t I missed that joke because there was crazy dog barking happening but I’m sure it was good oh man all right so so things went bad things went good what else is there that we should talk about regarding this part we have we got a couple more minutes left what about documentation what do youall do about that yes wow so incode documentation it’s important I think for
(26:06) us as an ecosystem I would love to see like WordPress one of the beauties of WordPress and a value proposition to someone choosing to to build in it is that there are lots of developers who could work on your stuff right so maybe you get tired of the client you move on you get a job it’s pretty important that we are designing and Building Things as if it’s someone else is going to take care of it in some future Point um I mean we’ve all like I’ve had the experience of going back and looking at
(26:32) my own code and you know before I had made documentation to consistent practice like what was I thinking I don’t know but I’ve learned enough like most people like it’s very easy to say oh the codee’s bad this that but there’s usually there was some thinking that went into it someone figured something out there was a reason they did it a certain way and it’s helpful when that reason’s documented so yay for documentation how how deep does that documentation go so for example do you just say this
(27:01) function is meant to do this do you site um like where that is like do you ever like put you know any sort of reference to what you’re using or do you just explain what the thing is doing so for me I just I use comments like not quite line by line but like at relevant points to just explain the the logic what am I trying to accomplish like this is what I’m trying to do and then I just sort of like I my own personal style it’s not super formal it’s just a a narrative style of like in English here’s what I’m
(27:32) trying to accomplish with this bit of code and here’s what it’s doing here’s why I’m doing this see I I have inherited code and I will go through and if I decide yeah okay I’m still going to use this especially custom code I’ll go through and start documenting here’s what I see them doing it or what what I see them doing and I tend to stick with the WordPress coding standards uh which have um you know which also push like PHP code documentation standards um and uh those checks as long as they’re
(28:04) enabled in something uh like vs code or adom or you know any of the IDE um it does pretty good about holding your hand about hey you didn’t put documentation in place for this like how about you do that like how about you go ahead and document this function so someone can figure that out later because yeah um something to bring Jason Cohen back up he me for whatever reason he he says um that like at some point uh it’s gonna be somebody’s last day uh at working at WP engine he also just in general very dire
(28:44) at the end of that existential at the end of it it’s you know like at some point it’s going to be someone’s last day um when when it’s your last day working on a piece of code if that gets handed off to somebody else you have to give them as much of a leg up as possible into understanding what’s going on don’t yeah or you can do like you can be like saying not it’s my code you figure it out if you’re so smart I just want to give a quick plus one for Best Practices right so when I’m
(29:20) reviewing other people’s code or I’m inheriting code it’s one of the first P things I look at is is are you following WordPress best practices right um and that’s and and if if it’s not it’s a lot of things that we try to put in place right away because that’s what’s going to Future proof your code do you mean just like General best practices or is there like a list somewhere that I have not seen like is there there’s P there’s PHP styled comments that you would use that are going to be interpreted by
(29:49) something else later if you wanted to do something like that I I’ll drop a link to the coding standards in our chat and I’m sure Jason will get it in the show notes yeah okay good I’m like am I did I is there should I have known that is there some I thought you know I thought we setting the best practices when it comes to best practices when it comes to best practices I had Visions I was in them I was looking into the mirror on that note on that note you could see a little bit clear of the agony the irony
(30:20) killing me I want to say thank you very much for all you folks for coming out and hanging out with us to watch this show make sure you go over to our um our sponsors server press over at desktop serverserver press.com feel free to go take a look at their site and all the fun stuff that they’re doing there they help out lots of folks being able to do Local web development and if you’re doing Local web development um you should definitely use it and if you’re not this would probably be the best one
(30:44) to start out with using because it’s free they also have it and play with it which is h a special there’s not too many things like it it’s pretty awesome Yep it will make your life better all right folks hital for nerves and then they had to commit me told them all was crazy.

Show More Show Less

Likes, Bookmarks, and Reposts

5 responses to “EP314 – Explaining to clients that WordPress is someone else’s code

Mentions

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.