当Joomla版本出现bug时该责怪谁
我有幸——我是说真正有幸——观看了Joomla 4.2.7的发布。
出了问题,有一个bug,社交媒体上有一些人说天要塌下来了,但发生的事情令人印象深刻,让我感到Joomla掌握在可靠的手中。
每次发布都不是完美的不是更好吗?当然,但这种情况不太可能发生。
虽然当时遭到了嘲讽,但Donald Rumsfeld的名言在编写代码时是相关的。他说,有
1. 已知的未知(预期或可预见的条件),可以根据过去的经验合理预期,但无法量化,例如通过案例历史和
2. 未知未知(意外或不可预见的条件),由于它们不能基于过去的经验或调查来预测,因此存在更大的风险。
问题往往不在于你更改的代码,而在于当该代码与其他代码区域交互时可能产生的连锁反应。
那么实际上发生了什么?bug是什么?
它是一个逗号,一个尾随逗号,在PHP 8中是完全正常的,在函数调用和数组中非常有用,但不允许使用,如果用于较旧且不再安全的PHP版本,则会引发错误。不幸的是,逗号滑了进去,大多数程序员现在习惯于看到尾随逗号,但我们仍然支持PHP 7.2.5。
问题就在这里:在7.3及以后的版本中尾随逗号是可以的,但在7.2.5中会引发错误。
所以我们有一小部分用户正在使用过时的PHP(PHP在2020年11月30日停止支持它,所以已经有两年多的时间了:https://en.wikipedia.org/wiki/PHP#Release_history)
bug有多严重?
这是我们需要的答案,而且需要尽快、尽可能准确地回答。
过去,我们发布完一个Joomla版本后,我就会去当地的酒吧庆祝,喝上几杯啤酒。但是,我多次只是用深色的黑啤湿润了我的上唇,然后看到手机亮起(我的酒吧是静音手机,所以任何电话都必须在花园里接听,无论晴天还是雨天)。
在手机上做决定和尝试发出“哎呀,出错了”的消息并不容易,所以如果发生这种情况,就是一个晚上坐在笔记本电脑前。
要弄清楚这个错误有多严重,需要实地调查,在每个发布之后,现在有一个发布后小组正在监测无线电波,寻找早期问题报告,并查看论坛、Twitter、Facebook和社区频道。
我们有来自市场营销、生产、发布管理和可能受到发布影响的团队中的人。
这是由生产主管本杰明·特伦克尔和CMS发布团队在Sigrid Gramlinger的指导下实施的,该团队不断改进流程,以使结果更好地服务于社区。
“好了,休斯顿……我们这里出了点问题”
当最初收到有问题的消息时,情况很混乱,不清楚发生了什么以及严重程度。所以,在这种情况下会发生以下情况。
我们需要事实,而在推特上,有更多的热量而没有光。所以,我们首先需要做的事情是重现错误。
有几个人负责使用我们当时所拥有的少量事实重建网站,以模拟人们报告的问题。
很快发现,这些问题发生在人们更新运行在PHP 7.2上的Joomla 4网站时。
这本身使得在一些服务器上测试变得困难,因为我们并不是所有人都有这样过时的版本。
当这一切都在进行时,我们正在联系那些拥有系统或大量客户网站的人,试图弄清楚在该版本的PHP上可能有多少安装,以及有多少人受到影响。我们试图获取任何可能帮助我们评估数量的洞察力。
接下来,我们需要确定严重性。它是否使网站损坏、部分更新,或容易受到攻击?我们现在有能力测试,Sigrid正忙于找到答案,问题似乎不会影响更新,但在管理员区域中单击时会在动作日志中显示错误。
所以这并不是一个漏洞,没有数据被暴露,网站的前端完整且完整,更新的目的,一个安全更新,是有效的。它引入了一个问题,只会影响查看动作日志的管理员。
治疗方法是什么,人们可以自行治疗吗?
接下来的评估是决定可能的解决方案。是否应该构建一个新更新来修复这个问题,这在使用最新的PHP版本时不会是问题?
如果有人发现自己在这个小群体中受到影响,有两种方法可以解决这个问题,一种涉及编辑单个文件中的逗号,另一种是PHP升级。因此,向所有人推送Joomla 4的新版本并不真正有必要。
当所有评估和测试都在进行时,推特上和在线帖子中的一些人在强烈要求不要使用安全修复,并错误地、没有任何证据地声称Joomla 4.2.8即将发布。这不是真的,这是错误的信息。不仅如此,这还阻碍了更新Joomla 4网站以修复存在的两个安全问题,这是无知的、不良的建议。
但是,当不同的人说着不同的话,并基于情感而非深思熟虑的理由敦促时,如何做出决定?
哪种药丸,蓝色还是红色?进入:矩阵
所以为了帮助做出这个决定,我们有一个矩阵:一个输入值并给出结果的系统。
这有什么用?这是以前许多决策的总结。事后诸葛亮是一种美妙的东西,当你拥有更多信息,未知更少时,它会到来。正是这些额外信息帮助我们做出正确的决策。
构建矩阵时,本杰明和西格丽德回顾了过去的决策。有些在当时看起来是正确的,但历史证明并非如此,而有些当时虽然准确但很难实现。
通过输入一些问题,例如受影响的站点的大致百分比、严重程度以及是否导致站点损坏、数据丢失等,可以得到合理的结论。罗伯特·德茨总统负责这项工作,一旦数字被添加,就证实了我们之前的怀疑:这种情况绝对不可能产生一个新的版本。
矩阵显示结果应该是以下内容
- 记录修复问题的方法的文档
- 更改原始帖子以强调事实并指向文档
- 尽可能广泛地将答案推送给社区和所有Joomla站点所有者
市场营销负责人路易丝·霍金斯加入了小组,并在汇总措辞和向更广泛的社区发出信息方面发挥了重要作用,这一切都在发布经理弗兰西斯卡·佩里萨的指导下完成,她检查信息的准确性并为用户编写文档。
当人们都站出来做他们最擅长的工作,并全力以赴完成工作,感觉一切都很顺利。我想是在英国时间晚上11点左右,我终于关掉了笔记本电脑,感觉我们尽了最大的努力。
那么,该责备谁呢?
在这段时间里,内部和外部都有批评。这很好,一个错误发生了,让造成问题的个人或未能发现问题的团队站出来是正确的。那些想要扔泥巴的人有机会站出来,占据道德制高点,毕竟,这并不是他们的疏忽。
如果上一段没有让你觉得是最好的做事方式,那么我们观点相同。如果你是那些扔泥巴的人之一,请继续阅读。当我看到那些说天空要塌下来,新的Joomla版本即将发布的人和那些实际在研究、检查、模拟、修复和编写文档的人之间的对比时,我想到了一些事情。
拯救福特,社会成熟度,团队合作
我曾经看过一部关于福特汽车公司如何多年来一直处于困境中的纪录片。我至少记得有十年了,但大致的情况如下。
随着福特的日子越来越艰难,责任增加。问题需要解决,解决这些问题的最好方法是让人们为他们的行为承担责任,将问题公之于众,并对责任人进行问责。
艾伦·穆拉利被引入,他在航空业有背景。他与所有部门负责人举行的第一周会议顺利且容易,他们没有问题。他们使用的系统是每个城市经理的一个小组,它显示:
- 绿色表示没有问题
- 黄色表示有问题,但正在解决中
- 红色表示有问题,需要帮助修复
一切都是绿色的,所以在与每个人交谈后,电话结束了。
下周又是这样,然后经过几次这样的周四晨会,他向他们所有人发表了讲话,问道:“如果没有问题,我们为什么破产,没有达到目标,没有卖车?”
下一个星期四,在一片绿色的海洋中,有一座城市的指示灯变成了红色。发布这个信息的可怜经理正等待着批评,甚至可能遭受嘲笑。但人们的反应却是赞扬,因为他们发现了问题,并要求所有人共同帮助解决供应问题,作为一个团队共同努力。
下一个星期四,红色如海!
这就是福特开始扭转局势的时候,让人们接受问题,将问题的焦点从责备转移到一个更加成熟的方法,即专注于问题本身,而不是发现、报告甚至造成问题的个人。
福特随后看到了最戏剧性的转变,这是商业历史上最大的转变之一,从即将破产和巨额亏损到短短几年内扭亏为盈。
这与bug有什么关系?
很简单,一个志愿者组织需要像福特这样的组织一样更加团结一致。艾伦·穆拉利的4个原则之一是团队应该享受乐趣,工作应该是有趣的。让人们在旁边冷嘲热讽,指责试图做工作的个人,而不是卷起袖子参与其中,这会打击团队的士气,并阻止潜在的新的成员加入。
这正在剥夺所有的乐趣。
这浪费了时间,争执不休,并分散了对真正需要的注意力。
如果团队内外的人们真的希望Joomla成功,希望它能达到最佳状态,希望它能成为最好的,那么当出现问题时,成熟和有益的做法是尽可能详细地报告问题,但不要夸大其词,不要立即作出审判。专注于问题,而不是个人,因为专注于个人,指责他人会使你成为问题的一部分。
负面评论和友好的态度会阻止保留,消沉,意味着在代码上线之前,检查的代码更少,测试也更少,捕捉到的bug也更少。
观察发布后团队以专注和专业的方式处理问题,结合事后诸葛,时间流逝,天空并未因此而坠落,这表明了哪种方法是正确的,哪种方法将有助于迅速、完全地停止bug。
我敦促你们观看这次与艾伦·穆拉利的访谈
https://www.youtube.com/watch?v=2tOWvdWSZzk
并听听他父亲的名言。
“重要是好事,但更重要的要善良。”
正是这些原则帮助他转型公司,它们不是软弱的,而是强大的,并且会产生影响。
如果我们在对抗bug的斗争中,在使Joomla比现在更好的旅程中,能够拥抱这样的理想,那将是令人难以置信的。
《Joomla社区杂志》上的一些文章代表了作者对特定主题的个人观点或经验,可能并不与Joomla项目官方立场一致。
通过接受,您将访问由https://magazine.joomla.net.cn/之外的第三方提供的服务。
评论 4
你好
感谢您抽出时间详细分析这种情况。
感谢所有抽出时间志愿帮忙的人
是的,更多的乐趣 :) 和更少的争端 :-(
这并不会阻止有建设性的批判性交流!
问候
真的为那些遇到这个问题的人感到难过,并衷心感谢 Joomla 团队为我们提供了最好的 CMS!
这里有几个教训,无论你使用什么 CMS
1. 在对实时网站进行任何更新之前,先进行备份(免费 Akeeba Backup)
—— 如果出了问题,你可以快速恢复你的网站。
2. 在对实时网站进行任何更新之前,始终在本地或同一服务器的实时网站副本上测试任何(即使是微小的插件更新),这些副本具有类似/相同的设置(PHP 等...)
—— 这提供了额外的安全层
3. 你需要保持最新,我有一个 Joomla 1.5 网站。现在它是一块脆弱的砖块,很快就会化为乌有。当软件过时,你将非常无助。
感谢您阅读并回复。是的,确切地说,我们绝对不是在说人们应该避免批评或持有不同观点,而是指他们传达的方式。意图是否是伤害或激怒,是否有一种表达观点的方式,而不会贬低接收方?我甚至可以说,在一个社区中,我们应尽力以友好的态度回应,我们不必喜欢某人才能礼貌友好。
好建议。总有备选方案。
你提到了测试,Joomla 4.3 Beta 3今天下午刚刚发布,我们真的很需要测试人员。
https://developer.joomla.net.cn/news/895-joomla-4-3-beta-3-feature-freeze-see-what-made-it.html