“周五不部署”和另外三个潜规则

过去的每一天都重新变得新。 有时候,即使是经验丰富的程序员也步履维艰。 不可能列出任何学科的所有“未成文规则”,部分原因是其中许多甚至都不是规则 。 这通常是重新表述抽象和永恒真理的方法。

玛丽·近藤(Marie Kondo)通过将效率,清洁和美观的普遍原则应用到家务劳动中而成为事业。 事实证明,许多人只需要在永恒的智慧和日常生活之间进行翻译,即可真正“理解”周围发生的事情的含义(另请参见“禅宗和摩托车维修的艺术” )。 我们衷心希望您喜欢我们为编程所做的同样尝试。

1.没有周五存款


即使您有一个连续的部署系统。 星期五是最不适合开始学习大师的一天,原因很明显:仅剩半天时间来解决可能存在的问题。 通常,在更新之后,会发现技术支持票证激增,尤其是在发布新功能以及不可避免地出现新错误之后。 星期五的人们困倦,注意力不集中,倾向于推迟一切,直到以后……你知道这是怎么发生的。

没有人能幸免于总是选择星期五为虫子的超凡脱俗的力量! 因此,请遵循最佳做法,如果不确定,请注意行业领导者。 例如,苹果应该在星期二发布 ,在诸如Deploy:Mo​​nday这样的关键事件的两侧都留有足够的时间来测试和捕获最新的错误,而从周三到周五则进行紧急更改。 有了Apple的收益,您就会意识到他们的部署模型被血汗淋漓。

2.定期备份


很难高估定期备份的重要性。 我们整个行业都建立在抽象的渐进式备份系统上。 当然,我在谈论Git,但这还不够。 您的数据库,加密密钥,配置文件,VM映像,图像/视频...甚至导入的程序包也应安全地存储在紧急情况下始终可用的位置。 如果您没有自动化系统,请至少让几个员工定期归档工作文件夹并将其复制到外部驱动器。 是的,只有一对-冗余并不是多余的。

可能您将永远不需要10个备份中的9个。 但是,就像我今天一样,有一天,您将要回到过去,找出我们何时犯下了这一没人见过的不起眼但完全致命的错误? 然后,您将很高兴花时间进行备份。 或者,您知道,当新员工意外删除100,000行代码时。 它发生了。 我们不怀怨恨人,而是要从错误中学习。 即使很难也要备份!

3.开始开发前获取完整的规格


我经常患有“过早开始”综合症。 我不得不多次重写大量的代码片段,因为在与客户的第一次会面中,他没有概述足够的问题,在那儿他概述了任务的轮廓。 我们的大脑真的很小,并且讨厌准确性,特别是当准确性复杂且昂贵时(请阅读:对于客户而言是必需的)。 他发现自己甚至没有接近的相似之处。 在程序设计中尤其如此-在一个相当复杂的应用程序中,十个类似的按钮执行许多完全不同的任务。 在开始编码之前,如果您想最大程度地利用自己的时间和客户的时间,就应该掌握这些技巧。 不要像我或我的大脑。 将所有内容绘制在纸上,确保所有内容都清晰无误,如果有必要,您可以从头开始重新绘制系统(考虑到足够的准备时间-我们都是人)。

在这一过程中,没有人能做到完美。 我仍然过于依赖猜测。 但是自从我意识到这个问题以来,毫无根据的假设就变得越来越少了。 应该将其视为一台计算机:在逻辑上毫不含糊地考虑。 在系统设计的概念中,研究边界情况,成为“测试者的拥护者”-您可能会发现一种设计可以立即消除在考虑周全的设计中允许的所有错误类别。

4.如果您看到无关紧要的废话,那就说


讨论失控之前,请尝试轻轻地停止或阻止无效的讨论 。 我们的办公时间几乎与每天晚上昏迷3-8个小时一样宝贵-也就是说,这非常重要! 从业务的角度来看,会议的人数越多,会议就越有效,因为在一个房间/会议室等中,按小时薪水乘以20-500个开发人员。这真是疯狂的钱,尤其是在阳光明媚的加利福尼亚州,其薪水很高。 时间就是金钱! 我们正在通过在触角隐藏的怪物周围发明智力技巧来算出这笔钱,这些触角被隐藏在每个代码库的后面,只是等待通过残酷的错误和崩溃打破无辜的期望。

但是,我们并不总是在火炬发抖,额头满是汗水的情况下,在被遗忘的代码地下墓穴中徘徊。 有时我们坐在会议上或在正式会议之外讨论一些紧张的事情。 Slack以提高团队凝聚力而闻名,但要付出什么代价(每月的费用除外)? 以我的经验,Slack极大地增加了大脑的“无意义的时间”,即当您尝试执行公司为您支付的费用时,用于过滤另一组(通常是不适当的)声音警报的时间。 即开发和修复有用的代码。 人们很容易陷入不必要的纠纷。

可以要求结束讨论是否花费太多时间。 如今,孩子们喜欢说“当下就是当下”:真正做事的人,为客户,用户和整个世界提供帮助的人们,他们将很高兴地请您结束有关新冰箱是否应为黑色的讨论。或镀铬。 “是的,你扔硬币,有什么区别……我们还有更严重的问题。” 许多关注您的人都来自领导。

感谢您加入我的旅程。 希望您能看到与那些先于我们撰写这些技巧的人相同的智慧。 而且,如果您以您的经验学到了其他一些潜规则,请写下来并告诉我们!

Source: https://habr.com/ru/post/zh-CN444832/


All Articles