会议,什么都不懂的经理,生产效率指标--这就是你和下一个伟大软件之间的天堑.

昨天必须得发布产品.用户争闹和咆哮某个缺失的功能.老板的老板说,我们最好迅速行动起来否则就炒我们的鱿鱼.感觉一切都有心无力.
没有人满意开发人员这种已经"竭尽全力"改变世界的速度,每个人都希望代码像消防水管里的水一样能够源源不断地流出来,但没有人愿意提供给开发人员更好地完成工作的条件.正如那个想要我们昨天就完成工作的老板,他不愿意雇佣更多的人,不愿意购买速度更快的机器,也不愿意做任何其他可以让程序员专注于编程的事情,又想马儿跑,又不给马儿吃草.
潍坊达内培训就来说说现实世界中的15个编程障碍.
编程效率障碍No.8:善于社交的程序员,又名"brogrammer"
虽然程序员可以将每个问题和任何中断的责任归咎于巧言令色的销售团队,但编程人员也必须承认,有一些问题在于他们自己.程序员被聘请的目的在于他们的计算机技术,而不是他们的人际交往能力.
程序员通常不善于沟通,不知道如何表达他们的感受和思维.他们可以准确抓住技术参数,就像庖丁解牛一样迎刃有余.无论客户想要改变什么都不要紧:程序员总是时刻思索着技术参数,即使是在公司野餐上也不外如是.
尽管程序员通常可以过滤掉对方的特质,但当程序员之间发生磕磕绊绊时也会让团队失败.当同一个团队中两个人有着不同的政治观点,比方说,动态语言或NoSQL,那么团队就会永无宁日.一切都像是在战场一样,战火纷飞,硝烟弥漫.
编程效率障碍No.9:自私或牛仔程序员
你从他的代码里发现一个空指针?捕捉空指针于是成为了你的工作.你最好多想一遍要不要传递一个零,因为自私的程序员不会检查除以零错误.这也成为了你的工作.
牛仔程序员的工作又酷又快,但这是因为他的代码中遗留了许多漏洞,并且没有经过测试.于是这也成为了你的工作,因为如果你不处理这些琐事的话,代码就会崩溃.
很多团队在最终认识到这一点的时候已经为时已晚.代码块在早期测试中运行良好,但当输入真正的数据之后,各种问题就开始暴露出来.真是一场灾难.
编程效率障碍No.10:可怜的文档
写文档需要时间.但由于老板雇我们来是来写代码的,并且通常通过我们写的代码行数来衡量我们的效率.因此既然你想要结果,那么我们就只做你想要的那部分.当然最终我们还是会写文档的,但质量的好坏就不论了.
有时候,文档虽然很多,但却是几个月或几年前老代码的版本.我们只是还没来得及修改这些旧文档而已,但是,以后我们会同步的--相信我.
编程效率障碍No.11:成为文档的奴隶
虽然我们都经历过没有文档的项目,但是空话太多、编码太少反而导致项目失败也很常见.曾有几个人指着满满一书架的文件夹,向我炫耀说:"我专门请人来写文档."然而要读完这么多文档需要一年的时间.
程序员通常在处理需求时,会写一些评论和注释,之后充作文档.因此这样的文档,都是一些微小的细节,没有经过认真地总结或没有说到要点上.这在文档中将可能是致命的,当他们没有提供太多的抽象和理解,就只写代码流水账的时候.这样的文档并不具启发性,只是翻译下代码而已.
编程效率障碍No.12:很容易导致分心的环境
有一个客户坚持要我每天去他们的办公室,坚持要我使用他们的电脑.然后,他们没有提供任何的办公空间,所以我只能和六个实习生在会议室写代码,此外,这些实习生还需要我用半天的时间回答他们前一天晚上碰到的问题.另外半天的时间则用来指示今天晚上做什么.于是,我基本上做不来自己的工作.
虽然销售和营销团队可以在背景噪音的环境下茁壮成长,但程序员通常需要图书馆般安静的背景.闲聊,令人心烦意乱的敲击声,或铃声将驱逐程序员的思维走出抽象的工作区,回到现实中.然后,需要几分钟的时间才能重新沉浸于工作区.
有一位开发人员告诉我,他恨他的新办公桌,因为它靠拢空调出风口,噪音令人难以置信的响,使得他真的很难集中注意力.这可能略有夸张,但的确是一个事实.
虽然许多企业会提供程序员类似乒乓球桌的娱乐活动,但他们往往忘记了开发人员需要在安静的氛围中集中精神.甚至,他们还将程序员转移到大房间,认为这可以促进合作,殊不知却会导致一有风吹草动,整个房间的程序员都受到干扰.
编程效率障碍No.13:"文化契合"
你想拥有自己的办公室?或者你更喜欢团队化的办公室,这样你就可以直接喊出你的问题?你喜欢在清晨开始工作,亦或是你更喜欢熬夜?
如果团队成员之间的风格相似.那么这支团队往往才能更好地工作.无法找到共同点的团队很快就会失败.没有沟通,最后只会南辕北辙,不知所谓.潍坊达内培训采用TTS教学辅助系统提供全面的教学保障.
编程效率障碍No.14:死守传统技术
很多扞卫者认为古老的技术依然很伟大,依然能够完成任务.因此对于为什么要重写代码表示疑虑重重.
他们想得没错,但他们忘记了保持这些古老代码的成本.所有一切通常都需要用自定义代码进行翻译.某些代码甚至写在ASCII之前,这意味着需要转换输入和输出.旧系统经常会计数空格字符只是为了在数据库中指出这是什么.这就更加需要转换了.
当然程序员可以通过屏幕抓取,重新格式化,临时构建系统来做大量的工作,但一段时间以后,他们往往需要花费更多的工作来清理混沌的逻辑,以致于腾不出时间来写新的逻辑.
编程效率障碍No.15:对最新的渴望
最新的工具自然有意思,但却在没有经过大量时间再次编码以往的工作之前,是不会被开发工作室采用的.走在时代尖端的人总是会扔掉API的整个部分,并重新编写,从而迫使我们这些下游的程序员不得不跟着一起改写代码.我厌烦过,当我不得尽力用Python 2.7的代码对付Python 3.0的代码时,因为依现在的情况,Python已经是一种相对稳定的代码库.
在许多情况下,新的工具并没有战斗化.例如,Node.js,虽然说相当快,但是只有当你重新学习所有关于死锁的经验教训之后,知道线程优先的时候才能发挥作用.世上没有免费的午餐,工具虽好但都是有代价的.
更多潍坊达内培训相关资讯,请扫描下方二维码
