按此:与乔恩·马丁(Jon Martin)一起避免在 WordPress 构建上浪费时间的技术债务

已发表: 2022-02-25

欢迎来到来自 WMR 的 WordPress 社区播客 Press This。 在这里,主持人 David Vogelpohl 与来自社区的客人坐下来讨论 WordPress 开发人员面临的最大问题。 以下是原录音的抄录。

由 RedCircle 提供支持

David Vogelpohl:大家好,欢迎来到 WMR 上的 WordPress 社区播客 Press This。 这是您的主持人,David Vogelpohl,我通过我在 WP Engine 的角色来支持 WordPress 社区,我喜欢将最好的社区带给您,每周在新闻上听到这个提醒,您可以在 Twitter @wpdavidv 上找到我,或者您可以在 iTunes、iHeartRadio、Spotify 上订阅按此,或在 wmr.fm 下载最新剧集。 在这一集中,我们将讨论我最喜欢的话题之一,那就是避免浪费时间在 WordPress 构建上浪费技术债务。 加入我们的谈话,我想欢迎乔恩·马丁。 乔恩,欢迎按此。

乔恩·马丁:非常感谢,很高兴来到这里。

DV:我知道我在演出前练习发音 Hallum,但当然我一开始就搞砸了 John 对此感到抱歉。 太棒了,对于那些听约翰的人来说,他将分享他对技术债务对 WordPress 开发团队的影响的看法,比如拥有技术债务意味着什么以及它对您有何影响? 您如何考虑减少每个项目的技术债务。 然后为什么你有责任与你的客户分享技术债务的考虑

JM:如果你以自由职业者机构的身份工作。 所以我喜欢消除技术债务。 我喜欢消除它是我最喜欢的话题之一。

DV:我们将深入了解 John 对这个话题的看法,但在我们开始之前,John,我要问你我问过每位客人的同一个问题 告诉我简要介绍一下你的 WordPress 起源故事。 您第一次使用 WordPress 是什么时候

JM:所以我会在 2010 年代初期并不确定那个时期的正确表达方式。 所以我实际上是自己开始的,我一直是我们在 2008 年成立代理机构的首席执行官。当时,WordPress 仍然是一个非常重要的博客平台。 我们正在构建包含大量丰富内容的网站。 所以这是一个有点脏的词,但我们当时确实使用了 Joomla。 但是,而不是

DV: Joomla 是一个肮脏的词。 我个人喜欢所有开源 CMS。

JM:是的,我们想说这是一个很棒的项目。 我认为对我们来说关键是随着时间的推移,当 WordPress 推出自定义帖子站点支持时,Joomla 真的非常强大。 就在那时,对我来说,WordPress 真的发生了真正的变化,将它从它作为一个博客平台提升到了一个成熟的 CMS,无论它是否适合你,你都可以做各种网站,真的很小一个人的企业或自由职业者或其他任何人,一直到大型企业级、复杂的网站。 我认为,对我来说,真的,真的,这对他们来说是一个致命的决定,因为这是 WordPress 现在如此受欢迎的部分原因。 是的,那是她开始在这里使用的时候。 Sasha 之前的故事真的是我自己和现在的 CEO,我们是如何在一个乐队中在一起的。 我们有一个聪明的想法,嗯,你知道吗,在路上有更多的平等时间真是太棒了,而且很难从我目前的工作中抽出时间。 所以我们想,你知道吗,让我们成立一个代理机构并成为 Web 开发人员,因为这将真正有助于在那时获得所有时间,这是一个伟大的决定。 我真的很高兴,但他也肯定是一个幼稚的决定,因为认为为自己工作会给你更多时间绝对是一个错误,我认为我们稍后会认识到这一点。 在此之前,你知道,我对 SQL 有所了解,并且从那时起我就一直在构建计算机,实际上是因为显卡非常支持颜色。 因此,对于任何知道 CGA 是什么的人来说,这将帮助您了解我的年龄。 但是,是的,真的,那是 CPT 出来的时候。 脂肪改变了我们的一切。 实际上,我们几乎在一夜之间就开始使用 WordPress,这成为了我们选择的 CMS,从那以后我们就再也没有回头,而且,你知道,

DV:在我问过这个问题的所有人中,很少有人真正了解材料自定义帖子类型与他们的 WordPress 起源故事之间的关系。 这很有趣。 我有一个类似的故事。 我在 2010 年成立了一家代理机构。所以在你们所有人之后一点点,但是当自定义帖子已经进入时。我们开始使用 Joomla 构建并切换到 WordPress 出于类似的原因,但这是自定义帖子类型和自定义元我同意的领域,我实际上以这种方式呈现了各种格式,这是 WordPress 真正成为真正的 CMS 的时刻。 WooCommerce 成立一年后 WP Engine 成立,许多其他品牌的 WordPress 空间,这是一个变革性的时代。 听到你的参考是你起源故事的根源,这很有趣。 不过,他们告诉我,嗯,你知道,如果你愿意的话,那里的创始时刻,但你能简单地告诉我一些关于嗯,你是做什么的吗?

J M:是的,当然。 所以实际上,我们发现的那个机构并不是我们后来的驾驶方式。 好吧好吧。 嗯,这实际上的主要原因是因为,你知道,回到那些旧时代,我们建立网站与我们做 SEO 和所有这些事情之间有一个非常明显的区别。 并且在世界范围内并没有太多的整合方法和真正考虑用户体验之类的事情,以及它如何与 SEO 和开发一起工作,所有这些东西。 所以,这实际上就是我们后来最终合并的原因,艾伦米兰已经存在了大约 20 年,我们的创始人在 SEO 开始成为一件事的时候就成立了。 是的,所以我们合并了这两个机构。 六七年前,也许更久一点。 我必须承认,我的数据记忆力不是很好。 然后然后真的,是的,这已经成为我们的方法是这种完全集成的方法,将所有这些不同的学科混合在一起以帮助人们看到界限? 所以现在我们做 PPC、搜索引擎优化、数字公关,很明显,网页设计,还有品牌延伸、数字战略,以及所有这些东西,所有这些学科,你现在确实需要拥有一个强大的数字存在。 你在公司里的角色是什么? 所以我,我的职位是技术总监。 所以说实话,并没有真正涵盖我所做的一切。 我管理开发团队很长一段时间。 所以所有的 WordPress 都在我的指导下。 我很高兴地说,我们团队中的开发人员比我们刚开始工作时的 Julio 和我曾经工作过的要好得多,这就是我们这些天做得更好的原因。 我们对事情的理解更深一些。 所以我最近在数据团队的成本上运行了很长一段时间的开发团队。 所以这意味着我可以玩机器学习,Python 和 Bartek 和其他人正在玩,尽管我必须想象所有这些玩。

DV:做很酷的独立客户会导致一些技术债务。 所以我很好奇你是怎么想的,常见的技术债务类型是什么,也许是 WordPress 特有的。 那些一分钟,但是,你如何看待这个问题,你知道,你如何以及如何管理你的技术债务,就像你已经将它锁定在 WordPress 构建的类型中一样?

JM:是的,我们有。 我的意思是,不是。 不必要。 我们正在使用一种语言,我们不一定对事物进行分类或通过地区流程进行分类,但实际上,它们确实属于三个不同的类别。 其中之一是当您在现有代码之上构建错误代码时,这可能是因为您可能在过去犯了一些错误,这可能是遗产网站和其他人的问题,无论原因是什么,所以这就是有点像第一个桶。 第二个是构建不必要的代码,也许现在没有必要。 你知道,我敢肯定,我们都已经完成了来自客户和品牌的功能请求,他们确实热衷于特定的事情,但实际上可能不是正确的事情,就获得实际价值而言为客户。 然后是第三个,我们实际上看到的最大的一个是构建实际上应该在不同平台上的功能。 因此,了解这种架构部分,好吧,我们在这里插入的不同部分是 CRM,这里是网站,从根本上讲,它实际上是关于营销业务。 这是您的订单履行平台,所有这些都不同。

D V:让我问你,让我在这里问你一个基本问题,就像你一样,你已经列出了三种类型的声音,就像这些是你想要摆脱的三种技术债务 用坏代码编写坏代码代码,这不是可以在另一个平台上完成的必要功能。 就像你想要的第四个桶一样有价值的功能,因此在这种情况下可能是好的技术吗? 这样说公平吗? 那是第四个桶。

JM:是的。 100% 我的意思是,并不是所有的技术债务都是坏的。 你必须接受你要构建的几乎所有功能都会产生某种类型的技术债务,并且你必须就该技术债务是否好用打个电话。 有些是好的,有些是坏的,真正依赖的是我之前说的关键字是关于价值的。 你会得到你需要的那个东西的价值吗? 更重要的是,客户,最终客户,不是你的客户,而是他们的客户吗? 他们会得到它的价值吗? 对于是否接受技术债务,这通常是一个很好的指路明灯。

DV:是的,我想深入了解一下,你是如何看待那句话的不同类型的技术债务,尤其是那些你可能想要优化以消除的债务。 不过我接下来想做的是了解一下,是不是有什么事情让你越过边缘专注于这个领域,但我们要第一次休息,我们会马上回来。 是时候插播广告了。 请继续关注这一点。 大家好。 欢迎回来在 W EMR 上按此 WordPress 社区播客 这是您的主持人,David Vogel。 保罗。 我正在采访约翰马丁关于浪费时间杀死技术人员的问题。 约翰在休息前解释说,你认为你可能想要消除的三种技术债务的方式是在糟糕的代码上构建糟糕的代码,创建对你正在处理的网站的成功来说不必要的代码。 然后可能为可以在另一个平台上更好地服务的功能构建代码。 不过,在我们开始喜欢引用值得的公式之前。 我想知道,是否有一个特别的我不知道时间和你的旅程是技术债务的一个特定实例,这种表面对你来说是一个主要关注领域?

JM:是的,当然。 大约四五年前,有一个真正具有里程碑意义的项目让我开始思考这个问题。 我见过很多其他的案例。 对企业来说,一直在积累时间,而不仅仅是通过 WordPress 通过各种方式来积累时间,实际上企业也在通过他们的运营流程来积累时间。 如果您必须成为创建该套牌的技术人员。 一,最让我印象深刻的一个故事是客户,我们与一家相对较小的公司合作,我们为他们做了很多付费媒体工作。 销售本质上是在网上销售东西。 这是一个电子商务业务。 他们有传统的邮购方式,但他们的工作量很大,他们正试图增加更多的在线流量,因此他们不必通过邮购,将通过网站进行管理,他们来找我们是因为他们已经为他们建造的网站是完全定制的。 那时他们已经存在了大约 10 年。 所以它变得很老了,开始有点蠕动。 你知道,标准并继续前进。 技术在进步,是时候重新思考一下了。 所以客户和我们坐下来,他们开始汇报他们在网站上所做的所有不同的事情。 我很快就非常清楚,网站中已经内置了各种业务逻辑和业务运营的东西。 这是导致订单的逻辑,并且非常特定于他们与供应商合作的方式。 所以我不会详细介绍,但我在供应商之间有一个相当复杂的安排,他们如何完成订单,以及在发货之前是否将其运送到他们的商店。 所以这一切都很复杂。 现在企业主和以前的关于他们如何工作的人,最终建立了一个几乎可以管理整个事情的系统,这在当时是一个非常非常好的系统,并真正帮助该业务大规模发展。 现在,他们没有真正想到的是,所有网站最终都有一个保质期,它们将在某个时候成为现实,就像任何软件和营销世界一样。 与您知道的相比,保质期确实相对较短,例如,如果您投资 CRM,因为企业通常会在相当长的一段时间内出现这种情况,现在大约是 10 年,如果不是更多的网站的话。 一般来说,在两到五年之间,我们发现大多数大品牌至少每三年左右就会重建一次。 所以问题是他们将所有这些复杂的逻辑都构建到现有网站中,他们必须重建整个网站。 突然之间,您还必须重建所有这些业务逻辑。 现在,我们为这个项目增加了成本,它基本上最终只占年营业额的一半左右,只是为了重建我们已经拥有的东西。 这真的让我开始思考这件事,好吧,如果他们最初以不同的方式解决问题,例如,让我们考虑一下我们试图在网站上实现的不同目标。 你知道,这是来自营销是为了销售产品。 这是为了履行订单,这是管理我的业务流程的最佳选择. 这对他们来说是一个真正的问题,因为他们有一个网站,基本上就是他们从中赚钱的地方。 它吱吱作响,因为它已经很旧了。 但与此同时,重建整个网站的成本会非常高,并使项目变得非常非常复杂。 我们设法找到了一些非常聪明但也不是很好的工作,以尝试使用他们已经拥有的并整合它,但我们无法引用,但你知道,最终最终变得更加痛苦,更慢,更多比它需要的贵。 如果最初考虑过该架构。

DV:我有很多项目我想忘记它。 就像那样,我可以想象它现在我带我回到过去。 所以在我看来,这听起来很清楚,我认为这是一个非常重要的课程,可以考虑与您计划的重构相关的业务成本。 对我来说,听起来明确的答案是你需要以不同的方式构建它。 如果你喜欢你应该做的事情,那可能是一条更清晰的道路。 但我认为,就像很多团队在考虑技术债务时,他们会想,好吧,好吧,做这件事很酷,但值得吗?

JM:随着时间的推移,我维护这个东西值得吗? 所以我很好奇你对这个公式的看法

D V:什么时候可以引入技术债务? 你对这个公式有多少看法?

JM:是的,你谈到了一个非常重要的观点,你知道,你考虑开发人员的本质,开发人员进入这个领域是因为他们喜欢做很酷的事情。 那就是,你知道,我们的很大一部分动机是学习如何做新事物,新技术,你知道的,新的 JavaScript 框架,不管是什么东西,这自然给了我们构建酷东西的动力,但我们不一定会长期考虑这一点,你知道,我们仍然会保持它。 你知道,我的妻子很想在我家弄个热水浴缸,但我知道有人会打扫那个,老实说,我不相信任何打扫它的人,反正是那种想法。 所以这是一个非常非常非常值得思考的问题,首先它真的值得吗?如果我们把它分解一下,你可以考虑一些不同的事情,首先,思考很长时间术语,拥有和构建测试和维护它的东西的总成本是多少,然后权衡我们获得的价值? 例如,可能有一种非常简单的方法可以解决这个问题。 使用电子表格或使用稍微不同的架构事物,公司内部可能有人在短时间内管理它。 这样做会比构建这个非常复杂的功能更便宜,更有效。 但是,当您实际查看总拥有成本时,它的成本会比某人每周花费几个小时来做​​某件事的成本要高。 不要误会我的意思。 我非常相信自动化。 技术应该尽可能地自动化以避免那种管理,但是

DV:您正在注册并使用类似这种手动方法来喜欢在编码之前尝试一些东西,以确保价值将在那里。 我的意思是,我想简化这个因素,比如,我们可以手动做这个吗? 只是好奇你是否曾经从喜欢的测试角度接近它,看看最终的回报是否值得?

JM:是的。 100%。 所以我是敏捷方法论的忠实信徒。 从根本上说,敏捷的一大关键原则是你在正确的时间构建正确的东西。 你专注于尽快获得价值。 所以你想要构建最小可行的产品。 现在,这意味着您当时不一定拥有功能完全丰富的东西。 但是它为您提供了一个平台,您可以在其中开始测试它,您知道,您是否真的从中得到了您想要的东西? 你的用户有反应吗? 就像您希望在 UX 或 Web 开发领域工作的任何人都知道,经常会收到来自客户的请求,因为他们认为他们的客户是他们的客户,但实际上他们真的想要吗? 所以这是另一个非常好的问题,一旦你考虑了长远的观点,人们会使用这个网站吗?我们知道任何人都在使用它吗?或者我们需要测试看看他们是否想要使用它? 然后,一旦您完成了该测试,我们就可以计算出我们不应该要求的内容,以及我们是否应该退缩并实际将投资放在其他地方。

DV:所以听起来有点像回顾一下这个想法,我喜欢你从长期来看总拥有成本的想法,我想很多时候团队甚至会考虑你认识的人,报价,从团队会考虑需要多少小时或几周或点差或点数,或者这个东西要构建多少。 但是,你知道,你需要考虑到你知道,需要多少小时或几周或点差或点来维持,然后将这种平衡与你从维持中获得的价值相提并论那个活动。 你显然是一个合理的建议。 但是你也在想,好吧,我可以做些什么来测试一下,看看我的假设是否正确? 这听起来准确吗?

JM:是的。 绝对地。 绝对地。 我们唯一没有涉及的是我们之前谈到的关于架构的问题,是否有更好的方法可以构建它以使其更好,并且有时间进行对象编程和其他东西我稍后可能会谈到。

DV:是的,还有架构方面的考虑,就像我写下了你的样子,有没有办法改变规格? 就像在我的利益相关者培训或谈话中我经常说的那样,你知道,规范提交吗? 询问您真正需要提交的内容。 所以问那些会撒谎并且是真正需要的,那又如何呢? 我发现问题非常关键。 所以听起来这是你思考这个问题的关键部分。

JM:是的,因为该网站在开发中的每一分钟都是它没有在客户面前获得价值的一分钟。 这就是思考它的简单方法。 您希望尽可能快地启动。 然后测试、监控、迭代、学习,你知道,看看你从那里去哪里,但这只是因为你是根据实际数据而不是你认为正确的数据来做的。 因为很多时候它们并不相同。

DV:是的,我喜欢这一点。 每分钟。 它在开发中,不是一分钟你没有使用它弄清楚吗?我会说与我拥有的另一个口头禅以及项目管理和利益相关者管理的联系,这是两个最好的词和在我们脸上写一个项目。 你怎么能说话是的,我喜欢当我与利益相关者打交道时,或者当我有利益相关者时,这是一个强大的、强大的部分。 好的,酷。 嗯,接下来让我们谈谈团队如何减少技术债务。 但在我们这样做之前,我们将进行最后一次休息。 是时候插播广告了。 请继续关注更多紧迫的问题。 欢迎大家回来在 W EMR 上按此 WordPress 社区播客。 这是您的主持人大卫移动保罗,我正在与约翰马丁讨论避免浪费时间与约翰马丁讨论约翰如何在休息前,我们谈到了你的价值公式我真的很喜欢你关于减少的想法眼镜。 并考虑 TCO,并采取一种迭代测试方法。 但是,现在让我们深入研究一下团队实际上可以做些什么来减少他们的技术债务和 WordPress 构建。 您最喜欢减少技术债务的一些技巧是什么?

JM:所以你可以使用各种技术技巧,你知道其中一些你会熟悉,所以你不会,但实际上我的出发点是,是一种更温和的谈话方式给你的客户。 你必须记住,最终,你的客户是这些品牌来找我们,因为我们是专家。 他们需要我们的建议,而且很容易掉入陷阱,你知道,我们在那里只是做他们想做的,我们在那里做他们想让我们做的,但实际上,我们在那里挑战他们想做的事情并尝试改进它。 因此,您可以做的第一件事就是与他们讨论并解释好,如果我们这样做,这将是它的长期影响。 你知道,这需要我们多花一天的时间进行测试。 每次我们发布一个版本,每次我们需要维护网站并更新所有插件或其他任何东西时,都会增加一两个小时。 但是通过提高这种意识,我们正在与他们进行这些对话。 您可以让客户参与讨论。 然后最终他们成为解决问题的一部分,很好,我们必须一直教育我们的客户,仅仅是因为他们不知道我们所做的一些事情。 如果他们这样做了,他们一开始就不会成为工具。 所以实际上,这就是起点。 他认为记住这一点并简化事情。 同样,人们不一定像我们一样技术。 所以用类比来谈论它。 我总觉得房子是一种巨大的能量。 每个人都住在房子里。 大多数人都有一些做某种房屋装修的经验。 所以很容易用这种能量来解决问题。 所以这就是第一点真正是获得客户或循环这些对话。 我们之前谈到的下一件事是拥有长远的眼光或总体拥有成本。 并问自己这些问题并质疑每个功能请求。 但是要多一点技术,以及如何在工作中做到这一点。 您使用 WordPress 标准的简单事情,您知道,那里有标准。 它们的存在是有原因的。 现在,他们将帮助我们的开发人员,也许你在一个项目上工作一两年,然后你又回来了。 你必须刷新你的记忆,然后回到你第一次使用标准构建它时的位置,这会有所帮助。 他们也会帮助其他人。 因此,如果您不在团队中,这意味着您拥有一种每个人都可以操作的通用语言,它在效率和帮助文档和所有这些类型的事情方面非常非常有用。 所以这是一种通过制定任何人都可以工作的标准来减少技术债务的一种更温和的方式。 它还可以帮助您知道,其他一些 WordPress 开发人员正在从事该项目的时间可能会到来。 它可以帮助他们将其视为回报社区并使您的开发人员更容易的一种方式。 所以,这是一个,你知道的,关于标准的一个很好的观点,让你自己和其他人都容易。 下一个是关于伟大的。 伟大的行业代码,被亲切地称为鲍勃叔叔,多年前他写了一本很棒的书,叫做清洁编码。 我强烈建议任何开发人员阅读那本书,因为他们还没有读过它。 事实上,我已经把它作为开发团队的必读书籍,任何加入团队的人,主要是因为他有很好的方法来谈论单元测试,所有这些东西,但从根本上说,很多是关于如何以一种灵活的方式编写代码,您可以非常快速地迭代和更改并向其中添加额外的位。 他谈到的一个重要观点是经常重构,主要的一点是你编写的一段代码并不一定意味着这段代码已经完成。 您可以做一些事情来优化它,使其更便携,使其更模块化,或者使测试更好,无论您需要做什么来花时间重构代码。 当你反对它或者你知道时,它可能真的非常难以做到,也许这是预算的一个时间框架。 但最终,这种事情会阻止你积累技术债务,实际上,我认为这通常是被迫的,但作为一个项目截止日期,你必须赶上那个截止日期。 绝对地。 你必须做到这一点,但最好是扩大范围,而不是编写你将要编写的糟糕代码,

DV:我想,也要教育那些客户,因为我从来没有遇到过不想重构的开发人员。 代码。 它始终是时间线。 它反对它。 嗯,好吧,所以这是最后一点,我只是好奇你是否喜欢我们,如果你认为卸载和使用现成的插件是另一种帮助避免技术或避免技术债务的方法。 这也在你的名单上吗?

JM:是的。 100% 所以这是一个好方法,但实际上这是一个兼顾两者的好方法,您可以避免技术债务。 但你也可以,这是你知道的,WordPress 是 BMC 的一种形式。 它是如此活跃,同样,这也可能是它最大的敌人。 有一个插件可以做所有事情。 还有很多插件是为特定目的而构建的,但它们不一定与您自己的插件相匹配。 所以我特别看到了一些开发人员,他们喜欢使用插件和更多的指向和点击方法来构建网站,而不是从头开始编码。 人们倾向于向事物扔插件。 我们与拥有 100 多个插件的网站合作过,其中有一些不再维护。 到处都有安全问题。 你试着做释放率。 当你本可以在几个小时内完成的时候,你实际上花了四天的时间来测试它。 所以插件可以是好的也可以是坏的。 在正确的时间插入正确的插件是一件非常美妙的事情。 WordPress 的最大优势,但在错误的时间插入错误的插件也会造成严重破坏。 实际上可以成为最大的资本来源之一

DV:我肯定有过这样的项目。 好吧,约翰,这真是太有见地了。 非常感谢您今天加入我们。

J M:我的荣幸。

DV:太棒了。 如果您想了解有关 Jon 的更多信息,可以访问 hallam.co.uk。 谢谢大家收听在 WMR 上按此 WordPress 社区播客。 同样,这是您的主持人 David Vogelpohl。 作为我在 WP Engine 的一部分,我支持 WordPress 社区,我喜欢在 Press This 上将最好的社区带到这里。