15个编程效率杀手

会议、一无所知的经理、生产力指标——这就是威胁要扼杀下一代伟大软件的东西

实时错觉

15个编程效率杀手

产品必须在昨天发货。用户们都在抱怨缺少了一个功能。老板的老板说我们最好行动起来,否则就会被解雇。没有什么能像它能做的那样好。

每个人都希望的代码流像水从消防水带,但没有人愿意给开发者,他们需要把工作做的事情。谁愿意工作昨日结束了同一个老板不会雇佣更多的人,购买速度更快的机器,或做任何几十个东西,使它更容易为程序员来完成工作的。

下面是编程进程中的15个障碍。我们的非正式调查出奇地简单。当开发商怀疑他们在和一个同情的听众谈话时,他们就倾吐了自己的不满。

1.会议

最常见的抱怨?会议。如果程序员可以相信,他们都在黑暗的会议室链接连续数周的老板对有关细节而论道。虽然程序员通常归咎于管理者破坏了会议,他们偶尔把自己和指责另一个程序员上和去大约错误或功能或结构的策略。

虽然程序员也会如果老板让他们在黑暗中,在问题松鸡是潜水回的软件抽象世界的难度。短阶厨师也许能够兼顾不同的要求,但切换大脑进入正确的模式操作的抽象算法需要时间,而且会议可以为一个小时左右耽误工作。

2.回复所有电子邮件

如果会议很糟糕,另一种选择可能会更糟:没完没了的电子邮件到处传,让所有人都看到。费力地浏览这些回复需要几个小时,而且没有人对结果感到满意。然后,态度较差的开发人员就会带着某种奇怪的骄傲,简单地说“tl;dr”。

一些团队尝试每周禁止一天电子邮件。另一些人则完全摆脱它们。这解决了过载的问题,但以通信为代价。突然之间,人们不再一起工作了。这应该很好吧?

3.试着衡量生产力

总有一个管理团队受到这样的格言的鼓舞:“你不能管理你无法衡量的东西。”的y start counting commits or lines of software or bug fixes. They think that counting is measuring, and measuring is good.

但是程序员是游戏玩家,和生产力测量成为他们的领袖板。而不是使代码更优秀的,他们专注于编写它的线条或解决的bug或承诺无论是正在清点仓库或。测量生产力实际上可以使代码库,鼓励长期更糟文件的完整的功能丰富,过度设计的代码。

这个问题没有真正的解决办法。我们需要跟踪bug。我们需要组织我们的工作流程,协调软件的创建。高雅是无法衡量的。

4.女主角开发者

对于程序员来说,有一个同事比老板更糟糕:开发人员创建了最后一个迭代,但不再为项目工作。就像每个家庭承包商都会贬低上一个木匠的技能一样,每个程序员都能迅速识别出上一代的脑死亡行为。

这是很少那么糟糕,因为程序员使它听起来。而且它不是经常缺乏技能造成的。有不同的风格,它们随时间变化。上一代并没有我们今天所做的同一个库。他们不知道我们的新的最佳实践。

女主角的态度可能会减慢项目的进度,因为骄傲和自我利益会导致程序员为了“正确的方式”重新构建而扔掉足够的代码。

5.“以后再解决”的心态,又称“技术债务”

在项目计划中,没有足够的时间来构建我们需要构建的东西。我们抄近路,补上代码,拿出虚拟的管道胶带。一位聪明的经理曾经把这种情况称为“技术债务”,因为他们明白“债务”是必须偿还的东西。精打细算的人明白“债务”,即使他们不懂代码。

每个项目都有一些技术债务。有时候它能很快得到回报,但通常是下一代出现后发现它一开始就陷入了困境。他们需要建造上一代人从未建造过的东西。就像国债一样,但没有国债那么大。

6.非程序员经理

在编程项目中,总会有一些面带微笑、快乐的人,他们主修计算机科学以外的任何专业。也许他们嫁给了老板的孩子,或者是在正确的时间出现在了正确的地方。但是老板让他们当了经理,就在他们还在努力搞清楚自己的黑莓手机的时候。

一些程序员喜欢这些握手的人,因为愚弄他们很容易。如果你告诉他们,约翰逊联邦储备银行(Johnson DB)正在大举破产,他们会相信你,并把这个不祥的消息传下去。总得有人接受上级经理的批评。其他人认出这些人只是召集会议,并成为阻碍。他们提供的指导很少,他们提供的最好的是一些质量测试。

7.程序员经理

虽然程序员可能会抱怨必须与非程序员经理打交道,但他们通常会私下说,有编程才能的经理可能更糟糕——有时更糟糕。

前天才们可能会决定对项目进行微观管理,并删除大量代码,因为他们有了一个新的愿景。或者他们会喋喋不休地说他们是如何用8080汇编程序或C或Java的一半代码完成同样的事情的。在任何情况下,他们可能更关注技术细节,而不是全局,尽管他们受雇是为了关注后者。

8.马乔程序员,又名“brogrammers”

程序员也承认,一些问题在哪里与自己。

程序员通常不善于沟通,也不善于思考感情或自我。他们可以抓住一些技术上的争论,就像斗牛犬抓住腿骨一样。客户是否想要不同的东西并不重要;程序员们被技术上的争论所困扰。

程序员通常可以过滤掉彼此的特性,但如果程序员碰头,团队可能会失败。如果两个人对动态语言或语言有不同的看法,这是很常见的NoSQL结束了在同一支球队。决定成为一切这些程序员们所珍视的公民投票。没有得到实现。一切都在100年的战争的下一场战斗绑起来。

9.自私或牛仔的程序员

你从他的代码中得到了一个空指针吗?你的工作就是抓住它。在传入0时最好三思,因为自吸收式编码器不会检查0除以1的错误。这是你的工作。

自恋者编码器的工作超级酷,超级快,但只是因为它留给你很多防弹和测试。你的工作就是处理日常琐事,这样它才不会崩溃。

很多球队结束了为时已晚发现了这一点。代码做工精细在早期的测试块,但有人开始通过将他们推向真正的数据后,每个人都意识到,没有人检查的问题。哎呀。

10.可怜的文档

写作文档需要时间。但是,我们支付给写代码。我们经常用的代码,我们将生成线测量。你想要的结果。我们只是做你想要什么。别担心,我们会记住这一切,它最终写下来。

有时候,有大量的文档,但它是一个版本是几个月或几年的老代码。难道我说,这种方法存储在富表中的数据?我的错。这是两代人以前,我们还没有通过代码有时间工作,并解决这些旧钞。但我们会得到它 - 诚实。

11.对文档的盲目投入

虽然我们都经历过没有文档的项目,但是项目因为太多的废话和太少的编码而失败是很常见的。有几个人给我看了一个装满装订物的架子,然后说:“他们的文档是按英镑支付的。”Reading it all would take a year.

程序员通常处理的要求就像他们处理写评论在讨论“太空堡垒卡拉狄加”或“谁博士。”他们写满了无数页的细节,没有总结或直奔主题。当文档没有提供太多的抽象或理解,只是重复代码所做的事情时,这可能是致命的。他们不是照明;他们只是把代码音译成英语。

12.丰富分心的环境

一个客户坚持要我去他们的办公室用他们的电脑,一个星期都无法定制。他们没有任何办公空间,所以我和6名实习生被扔进了一间改装过的会议室,他们花了半天时间谈论前一天晚上发生的事情,另一半时间思考当天晚上要做什么。很有趣,但我几乎没有完成什么工作。

程序员通常需要像图书馆一样的安静。闲聊、敲击声或手机铃声让程序员迅速走出抽象的工作区域,进入现实。然后需要几分钟的时间才能让大脑到达它需要的位置。

许多企业给程序员提供了像乒乓球桌这样的动态玩具,却忘记了开发人员需要安静才能集中精力。

13.“文化适应”

如果人们有相似的风格,每个团队都会工作得更好。无法找到共同点的团队很快失败。沟通从来没有发生过,而且他们的工作目标也不一致。

人们很容易归纳出最好的工作环境是什么,但最好还是让团队来决定。有时候,当你在做大量的低等级维护和建设基础设施时,让每个人都能听到你的声音会有所帮助。当你在等待构建完成的时候,如果有人喊出了一个问题,这并不会对你造成很大的干扰。给每个人打个电话会很有效率。

但是,如果你创建具有可移动零件,中断,说话,甚至键盘敲击可以敲你偏离轨道的复杂算法。这时候,你希望自己的办公室。

14.固守传统科技

在Dice.com上有680个职位标题中的Cobol在7万多套房源中。仍然接近1%。辩护者会说,这是一项伟大的技术,可以完成这项工作。为什么要重写那满是灰尘的甲板?

他们有一定的道理,但是他们经常忘记保存古老代码的成本。所有东西都需要翻译,通常使用定制代码。有些代码是在ASCII之前编写的,这意味着转换输入和输出。旧的系统常常通过计算空白字符来计算数据库中的内容。这是更大的转变。

程序员可以在屏幕抓取、重新格式化和临时操纵系统方面做得很好,但是一段时间后,他们会花更多的时间刷新粘合逻辑,而花更少的时间编写新的逻辑。

15.渴望最新和最好的

我们都和这个家伙开过会。他把Java称为“我的祖父写的”。node . js如此如此的2012给他。

最新的工具是好玩,但他们不能在一个体面的开发工作室不重新编码时间你上星期做了什么来使用。切削刃上的人总是在折腾掉了API的整个章节和重写他们,迫使那些下游重写代码了。

在许多情况下,这些新工具并没有经过实战考验。js可以非常快,但前提是要重新学习导致人们首先创建线程的死锁。通常,最前沿的技术可以通过走捷径来产生美妙的结果,而这些捷径却会一直困扰着我们。

版权©2013Raybet2