scout 安装_始终让代码比您发现的要好-Boy Scout Engineering 101

scout 安装

大多数工程师都听说过“童子军规则”:“总是让代码比您发现的要好。” 人们通常把它称为解决技术债务的灵丹妙药。 如果只有所有软件工程师都表现得很好,那么我们的软件就不会因此而持续恶化。

但是,如果这么简单,为什么不是每个人都这样做,一劳永逸地遏制科技债务呢?

您猜对了,这不是那么简单。 因此,让我们找出原因,以及我们可以采取的措施。

童子军的规则-它到底是哪里来的?

1941年,侦察员罗伯特·斯蒂芬森·史密斯·巴登·鲍威尔(Robert Stephenson Smyth Baden-Powell)的创始人说:“尝试离开这个世界,要比发现的世界好一点。” 随着时间的流逝,这可能会演变成“总是离开营地,比您发现的要干净”,但这种情绪或多或少都是一样的。

关键是为了保持营地清洁而进行的少量但持续的努力可以避免大规模的清理作业。

罗伯特·C·马丁(鲍勃叔叔)将这一规则应用于软件工程:“总是让代码比您发现的要好。” 换句话说,工程师应该不断清理少量的技术债务,这样他们就在过于接近技术破产的情况下就不必进行庞大的重构项目。 很简单。

那么,为什么在实践中它永远不会像这样工作?

什么阻碍了童军规则

业务压力通常迫使工程师将新代码附加到现有代码上,而可用的时间有限,以确保结果合理且可维护。

对短期结果的关注会造成未来的生产力瓶颈或技术债务: 昨天编写的代码使您今天放慢了脚步

恶性循环出现:

  • 我们希望快速发货,因此我们附加了一些新代码。
  • 这使将来的工作更加困难,但是我们仍然希望尽快交付,因此我们没有花时间清理代码,而是花更多的时间编写新的代码。
  • 对代码库的那部分进行有贡献的贡献变得更加困难,但是清理工作现在太大了,因此我们不去理会它,而是继续做出更多的短期贡献。
  • 直到我们别无选择,只能进行大量清理工作才能继续发货之前,该代码的运行状况一直在恶化。

所有这些都是由于错误的假设,即投资软件质量不值得付出代价,并且会减慢我们的投放速度。 但是, 正如Martin Fowler解释的那样 ,这种假设是有缺陷的,因为干净的代码实际上使我们可以更快地交付。

如果您应用boyscout规则并让营地清洁得比您发现的要干净,则可以中断循环。 但是在实践中应用它并不容易。

为了更清楚地了解问题,让我们暂时穿上男孩/女童子军工程师的鞋子。

童子军工程师的困境

我被分配了票。 我必须在特定的时间范围内发货,因为我已承诺在计划期间进行估算。 我想实现目标并准时交付业务价值,但我也想让营地清洁得比我发现的要干净得多,这将使我和我的同事日后更轻松地处理代码,业务将受益,因为我们能够更快地交付将来的工作并且质量更高。

但是我怎么知道我有多少清洁能力? 如何确定最值得清洁的物品? 我无法清理公司的整个代码库。

这些是很难回答的问题。 我的清洁能力会根据我完成新工作的速度而有所不同,如果有很多选择,那么很难确定最值得我清洁的几件事。

鉴于以上情况,我应该采取什么行动?

  • 我可能会过度清洁并最终延迟发货。
  • 我可能会整理一些东西,但不是最重要的。

这是我的困境。

童子军工程师的发布

为了准时交货并在最重要的事情上花费我的清理能力,我需要:

  • 注意我可以清理的所有东西。
  • 找出最值得我注意的那些东西。
  • 根据我的能力,跟踪该列表并关注最重要的项目。

实际上,每当打开代码编辑器时,男童子军工程师都需要清楚地定义他们的营地。 他们需要调查景观中可能要清理的事物,按重要性顺序对其进行排序,并在努力争取运输时间时跟踪其清理进度。 我们构建了一个免费的VSCode扩展,可以为您完成这一工作!

这就是为什么做男孩/女孩侦探会很困难的原因,以及您可以做些什么。

成长Swift的软件公司的侦察员工程师很难做到。 该业务的增长和发展是如此之快,以至于感觉就像一夜之间积累的技术债务一样。 好吧,那是因为确实如此。

使用正确的工具方法 ,关心代码质量的工程师可以识别值得清理的技术债务-这是清理后的技术债务,将使您真正掌握业务指标,例如错误数量,回归,运输节奏,用户参与度等等。

要成为一名有效的男孩/女童子军工程师,您还需要了解技术债务的法律,可以采取的形式以及如何与之抗衡。 我们在关于技术债务定律的两部分系列中以及对不同类型的技术债务进行分类的文章中 ,对这些问题进行了广泛的调查。 认识你的敌人。

有什么好处?

支持童军规则的人,例如罗伯特·C·马丁(Robert C. Martin,鲍勃叔叔) ,是正确的-如果始终如一地遵循并正确应用,它将成为管理技术债务的最有效工具。 我们称其为持续技术债务管理

但是,此规则不仅仅满足您的要求,而且强项显然是一致性 。 童子军工程师需要了解使他们难以发挥作用的法律和激励措施,但他们还需要掌握正确的工具和技能,以真正对他们的代码库的健康产生持久的影响。

代码质量将加快整个工程团队的速度,从而加快整个公司的速度。请参阅我们的文章, 了解技术债务如何影响公司中的每个人

代码质量值得付出代价

用罗伯特·马丁(Robert C. Martin)的话说,正如凯夫林·汉尼(Kevlin Henney)的书中所述,“ 每个程序员都应该知道的97件事”

我认为,如果我们都遵循这个简单的规则,我们将看到我们软件系统不断恶化的终结。 取而代之的是,我们的系统将随着它们的发展逐渐变得越来越好。 我们还将看到团队关心整个系统,而不仅仅是个人关心自己的一小部分。

成为童子军可能比您想像的要难,但是您可以做到,它实际上可以节省您的时间-因此 ,不要失望并做好准备!

翻译自: https://hackernoon.com/how-to-be-an-effective-boygirl-scout-engineer-q7r3z9e

scout 安装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值