我是程序员:你只加了两行代码,为什么用了两天时间

帮助我写一个电商网站,像淘宝一样,3000预算还不够吗?但可以再加一点。”帮助我写一个像百度一样的搜索引擎,一个输入框应该不会花多少时间吧?"我这方面的需求有点复杂,帮我写一本随手机主题颜色变化的智能后盖,钱不成问题。"

无论你是一家正规的网络公司,还是一名兼职的开发人员,你都会或多或少地遇到各种各样的产品需求,客户需求,老板需求,他们都同意:这个需求很简单。

这是不是真的呢?

"只要两行代码,为什么要花两天时间?"

这个问题看起来是有道理的,但是在其背后有几个荒谬的想法:

 

代码行数=工作量代码行数=价值代码行之间没有什么差别,相互等价很明显,以上三个都是废话。

开发人员面对这样的指责,翻白眼之余却也不免怨天尤人,软件开发是将现实世界映射到虚拟世界的魔术,回顾我们所做的改变,有太多的理由可以解释为什么两行代码要花上两天。

由于问题报告对再现方法的描述不够清晰。

有时我们要花费数小时才能可靠地重现某些问题。遇上这样的情况,一些开发人员会立刻联系问题报案者,要求对方提供更多的细节。但是有些开发人员不喜欢修复 Bug,因此缺乏信息就成了甩锅的好方法。

由于所报告的问题是关于功能的,所以我并不熟悉这些功能。

 

这可能涉及一些功能,一些开发人员很少使用,因此并不十分熟悉相关细节。在这种情况下,开发人员需要花费更多时间来了解如何使用功能,尤其是这种功能 bug与软件交互的具体过程。

这是因为我花了时间研究问题产生的真正原因,而不仅仅是流于形式的症状。

如果一些代码产生错误,直接将其封装到 try… catch语句中,这样可以有效地抑制错误。没有错,没有问题,对不对?肯定不行对于负责的开发人员来说,掩盖问题和解决问题是两回事。隐藏错误很容易引起其它意想不到的副作用。在未来的一个紧要关头,我不想再为同样的错误而烦恼。

这是因为,除了报告的复制步骤外,我还研究了其他可能引起相同问题的情况。

尽管可以很容易地使错误重现,但一组重复步骤往往不足以揭示引发错误的深层原因。在找出这种根源因素的同时,研究一切可行的解决办法,才是真正有价值的分析洞见。它可能涉及到代码的实际工作方式,可能是在其他位置有其他需要解决的问题,也可能是某些代码不一致的状况(导致某个代码路径发生错误,而其他路径没有发生错误)等等。

由于我花了一些时间来验证其他代码是否受到类似问题的影响。

假如这个错误是由一个 bug引起的,那么同样的错误应该出现在代码库的其他地方。现在有了用户报告,最好是彻底检查一下。

由于找到了错误的根源,我想用最简单的方法来解决问题,保证副作用被控制到最低的风险。

由于我完全测试了这个变化,并确保它在不同的代码路径下解决了相同的问题。

我不想让别人对修复测试感到麻烦事。在此之前,我不希望再有类似的错误发生,因此我竭尽全力确保问题得到彻底解决。环境转换既复杂又乏味,我希望自己的工作能够使全职测试人员不再需要做本质上“完全相同”的更改。

有什么比修复 bug更麻烦的事情吗?这意味着重复修复相同的 Bug。您看到的只是我添加的两行代码,而没有看到我在背后分析为什么要添加这两行代码,以及为什么这两行代码会这样实现。

每天只写几行代码,这是怎么回事?

 

很多团队的绩效考核指标都曾经爆出过“代码行数”的问题,部分测试人员以查“Bug”数为依据,各大因特网大厂也曾将团队中动辄上亿行代码作为品宣卖点。

它让外界产生一种错觉,认为代码行的数量就是衡量程序员的技术能力、工作成果的万金标准。能写的多了,就代表写的好了?莫非是那种浓密的 if… else冲击波,还能像写文章时那样用排比句式来形容?

林克斯看着想打人。

实际上,程序员的工作产出与代码行的数量并没有很大的关系,而且程序员的工作时间并不局限于写代码。

去年,外国研究机构 ActiveStates进行了一项调查,结果显示,80多个国家的开发者中,有数千人来自美国和中国。

开发人员平均每天编写程序的时间不到4小时。

 

有38.8%的人在1250个调查样本中每天只花费2-4个小时来编程。这个结果和2018的调查相似,37%的人每天花2-4个小时来编程。与此相比,27.92%的人每天花5-7小时来编程,而在2018年的调查中有31%的人每天花5-7小时来编程。

更令人吃惊的是,在2019年,61.52%的受访者花费4小时或更少的时间进行编程,而在2018年,只有51%的人花费4小时或更少的时间进行编程。另有10.56%的人花费8小时或更多的时间进行编程,比2018年的19%下降了近一半。

开发人员编写代码所花费的时间越来越少了,那么时间都到哪里去了?

 

百分之四十四的人说他们必须把时间用在各种活动上,包括会议,测试,维护,甚至是社会交往。一个最耗时的活动是软件设计/体系结构,占11.36%,然后是参加 standups/会议,占8.24%。

这些开发人员可能还要花很多时间写日志,写周报,在中国:

这些代码体现了我的社会情怀,包含了我的哪些精髓技术和商业思维,最大程度地实现了客户价值,满足了用户需求,为团队留下了宝贵的技术财富,为实现数字化经济增添了一份力量,拉通了团队,对齐了目标,解决了痛点,赋予了行业,赋予了生命。这是一个非常棒的程序员!

花上两天的时间,你会不会觉得我很高效?

点击了解更多资料,更有免费开源项目和课程等你观看哦!

猜你喜欢

转载自blog.csdn.net/weixin_45713725/article/details/109209346
今日推荐