当前位置: 首页 > 科技观察

程序员不是瓦工,他们是作家_0

时间:2023-03-21 11:06:45 科技观察

为什么上面的想法很可笑?因为我们没有一种简单有效的方法来衡量程序员的生产力。一旦遇到无法衡量的事情,我们就会忽略它。让我问你:你愿意让两个新手照顾你的孩子,修你的车,给你做腰椎穿刺,还是你愿意让一个老手?相关研究表明,最好的程序员的工作效率是最差程序员的28倍。但是这些最好的程序员的成本肯定不会那么多,所以他们是软件领域性价比最高的“特产”。ROBERTGLASS,《FACTS AND FALLACIES OF SOFTWARE ENGINEERING》如果非要比较的话,程序员更像是作家。有些作家写的东西能卖出数百万,而另一些作家写的东西太无聊了,最终被用来烧了!然而,他们都出书了,所以他们都是作家。但除非你读过他们的书,否则你不会知道两者之间的区别。编程经理早就认识到好程序员和坏程序员之间的生产力差异。但实际实测数据结果还是让我们都感到意外。在他们的研究中,Sackman、Erickson和Grant想要衡量一组有经验的程序员的表现。结果表明,最佳与最差生产力之比平均约为10:1,尤其是编程速度之比更是惊人地高达5:1!FREDBROOKS,《THE MYTHICAL MAN-MONTH》让我告诉你一个真实的故事。(名称已更改。)一家软件公司需要在其徽标产品中实施一个新模块。Lousy先生(Mr.Poor)刚好有空,我就把这个任务交给了他,让他马上开工!经过四个月的修修补补,穷先生终于完成了。QA团队发现了大量错误和不一致之处,并向普尔先生报告。穷先生根据报告又花了2周时间修复了这些bug,终于给了一个新版本!那些该死的烦人的虫子真是让普尔先生绞尽脑汁。测试和修复,两到三次。用户已经在期待这个新模块。销售人员还签下了一些新客户。把这个模块弄出来,集成到下一个版本中,压力可想而知。但是,幸运的是,它奏效了!开香槟庆祝吧!是的,不,新模块仍然充满错误。群众的眼睛总是雪亮的,客户总是很善于发现一些以前没有发现的bug。所以他们联系了技术支持。技术支持团队去找问题出在哪里,是客户不知道怎么操作这个功能,还是他们自己弄错了,或者只是一个bug,一个可以重现的bug。...然后技术支持团队提交了错误报告。于是,柴先生就悲剧了——我的意思是,即使他在做另一个项目,此时他也只能放下手头的所有工作来解决这些麻烦事。(这里不涉及代码的维护、逻辑和文档——因为以后肯定会有其他人改进代码)但是,唉,怎么说呢……好像有一些BUG是Mr.巴德的能力范围,他根本无法修复。另外,新的bug也在不断的出现,不知道是新的还是以前存在只是没有被发现。技术支持很烦人。而销售也越来越恼火,因为有新客户说这个模块太不靠谱了,要解约!最后老板只好请MrRockstar(好先生)看一下代码。好先生不想为坏先生收拾烂摊子。许多结构在他眼中毫无意义。他建议重写代码,预计需要一个月左右的时间。然后他开始工作,完成模块的时间比原先估计的只多了几天(他是Nice先生,而不是Perfect先生)。除了QA团队发现的一些小错误外,一切都按预期进行。QA组默默担心:如果所有的程序员都像他一样,就没用了。坏先生认为好先生在狂妄地嘲笑他,但他的意见与好先生无关。改进的模块很快就发布了。每个人都很高兴,因为它终于开始工作了。长命!现在是开香槟庆祝的时候了!但此时,大家似乎忘记了,古德先生只用了一个月左右的时间,就顺利完成了穷先生七八个月都无法完成的任务。这表明这两个开发人员的生产力水平存在巨大差异——他们执行完全相同的任务。通过编写更精简但更实用的代码,通过编写更少错误和更易于维护的代码,一个好的开发人员可以减轻QA人员、同事和管理人员的工作压力,并提高他们周围每个人的生产力。这就是为什么这些研究得出了28倍生产力这样的数字是可能的,如果从大局来看,甚至可能被低估了。PHILHAACK,?那么,这个故事中可能发生的最糟糕的事情是什么?好先生终于注意到他比坏先生更有效率:他可以很容易地发现错误代码。不过即便如此,他也很确定自己的薪水和坏先生差不多。他表示不满,甚至毅然离开。所以你的开发团队失去了一个高效的力量支柱。即使他不走,面对整个团队因发布/项目延误而加班,他又会作何感想?离开是必然的,只是时间问题。而且,如果你真的倒霉,选择了另一个人来代替好人,可惜又是一个可怜的人,那我也只能默默地为你点上一根蜡烛。那么,为什么我们如此习惯于忽视这个事实呢?因为忽略问题比纠正问题容易得多——至少在某种程度上是这样。而没有人愿意做告发同事的小人,也成为他丢掉工作的原因:也许坏先生家境殷实,孩子要养活;也许他刚买了一栋新房子,每个月都必须偿还贷款——最重要的是,除非你让他们都做同样的任务来进行比较,否则很难衡量开发人员的生产力,就像上面的故事一样。所以我一直在思考这个问题:如何衡量开发人员的生产力。我嫉妒销售人员,因为他们的报酬是按业绩计算的。我有一些想法(不成熟的)可以让你从糟粕中提取最好的。对于如何识别、吸引和留住优秀的开发人员,我也有一些想法。我是谁,为什么我要告诉你真相我作为一名全职开发人员工作了10多年。早在1989年,我就制作了我的第一个商业产品(游戏)。它并没有给我带来很多钱,但感觉真的很好(当时我16岁)。几年后,我卖掉了其中一个游戏创意,它最终在任天堂游戏机上发布(以及其他格式)!根据我的经验,我可以告诉你,当你看到你想出的东西(包括名字)最终出现在商店里时,感觉不太好。2008年,我申请了一家技术驱动型公司的非技术职位。我想了解业务的总体运行方式,业务中发生的所有非技术流程,包括销售。虽然,我的技术技能对我的求职有帮助,但它们不再是工作的重要组成部分。我不再以编程为生(确切地说,那时候),但我经常在业余项目中修补新技术。对我来说,读一本好书既令人兴奋又让人放松。在我目前的角色中,我经常遇到概念误解或缺乏开发基础知识的人。在他们所处的角色(通??常是那些CxO)中,这些基础知识可以产生巨大的差异。许多CxO将开发人员视为瓦工,并严格计算他们的生产率。但是,在这里,我想再次重申一下这个“作家论”,开发者是脑力劳动者好吗?