两个程序员的故事

从前,有两家互不知晓的公司,一家叫做“自动会计应用协会”,另外一家叫做“统一计算资本公司”。他们同时决定开发一种提供相同功能的程序。

“自动”雇佣了一位分析程序员,艾伦,来解决这个问题。

而“统一”决定试一下新来的初级程序员查尔斯,看看他是否有真本事。

艾伦做过一些复杂项目,有着丰富的经验,决定采用PQR结构化方法来开发这个程序。于是他找到部门经理,要求增派3名程序员组成一个项目小组。这个小组于是开始工作,捣鼓出初步的项目分析报告。

“统一”这边,查尔斯抽了点时间想了一下需要解决的问题。同事们常常看到查尔斯把脚翘在办公桌上喝咖啡。偶尔见到他坐在电脑前,但是那有节奏的键盘声告诉别人他其实在玩小蜜蜂。

不久,“自动”的小组开始编写代码了。程序员们一半的时间用来编写编译代码,另一半的时间待在会议室里,讨论模块间的接口设计。

查尔斯的同事发现他终于不再玩小蜜蜂,而是一半的时间把脚翘到办公桌上喝咖啡,另一半时间在纸片上涂写着什么。他好像不是在纸上玩“井字过三关”,但看起来不像是在写有用的东西。

两个月过去了。“自动”的小组终于发布了项目时间表。计划再过两个月,他们就会发布程序的测试版本。然后再经过两个月的测试和改进,就可以发布完成版了。

此刻,对于查尔斯的游手好闲,他的经理再也看不下去了,他决定批评查尔斯一下。但当经理走进查尔斯的办公室时,他却惊讶地发现查尔斯在电脑前正埋头写代码。于是他决定把批评先放一放,随便跟查尔斯聊了一下就离开了。然而从此他更加注意观察查尔斯的表现,想借机批评查尔斯。不过不愉快的对话并没有发生,他很高兴地发现查尔斯一直在写代码。人们偶尔发现查尔斯推迟了午餐,且一周还主动加2、3次班。

第三个月的月底,查尔斯宣布他已经完成了这个项目。他提交了500行的程序。程序清晰可读,测试中符合所有的功能要求,甚至具备了一些更加便利的功能,极大地提高了程序的易用性。测试后,程序除了有一处疏忽外,表现得非常好。

“自动”的项目小组到此时已经将4个主要模块中的2个开发出来了。在这些模块被测试的同时,小组继续开发其余的模块。

又过了3周,艾伦宣布提前一周完成了程序的初级版。他提交了一份清单,列举了尚需解决的一些缺陷。测试中,客户发现了一些清单上没有的错误和缺陷。艾伦解释说这是意料之中的,毕竟这只是一个初级的版本,有错误很正常。

又过了两个月,项目小组完成了程序的正式版,包含了2500行代码。测试中发现,这个版本完成绝大部分的最初需求。程序功能上有一两处遗漏,且对于数据输入的格式要求非常严格。但公司最终决定使用这个程序,他们可以训练打字员严格按照要求输入数据。对于那些遗漏的功能,交由维护程序员去添加。

后记:

一开始经理对查尔斯的能力印象深刻。可当他阅读源代码的时候,发现原来问题比自己开始想象的要简单得多。现在看来,这种难度哪怕对于初级程序员来说也明显太低了。

的确,查尔斯平均每天产出了5行代码,这略高于平均水平。但是考虑到项目复杂度是如此的低,略高的生产率也不足为奇。而且经理对他头两个月的游手好闲记忆犹新。

业绩评估中,查尔斯薪水的涨幅大概是同期货币通货膨胀率的一半,他也没被提升。又过了一年,他感到沮丧而离开了“统一”。

“自动”这边,艾伦因为按时完成这个项目而受到表扬。他的主管翻了几页源代码,发现代码符合公司的结构化编程规范。但他很快便放弃了阅读代码的想法,因为它看起来相当深奥。他现在意识到项目的复杂度远比当初自己设想的高,于是他再一次夸赞艾伦的成就。

项目小组平均每人每天写3行代码,刚好是平均水平。但考虑到问题的复杂度,有平均水平就非常不错了。艾伦被大幅加薪,作为奖励,他被提升为系统分析员。

来源:51CTO

时间: 2024-09-20 00:06:27

两个程序员的故事的相关文章

两个程序员(Chris和Steve)的故事

译文链接:两个程序员的故事

野生程序员的故事

野生程序员是指仅凭对计算机开发的兴趣进入这个行业,从前端到后台一手包揽,但各方面能力都不精通的人.野生程序员有很强大的单兵作战能力,但是在编入"正规军"之后,可能会不适应新的做事方法. 遭遇"野生程序员" 腾讯公司内部的团队很多,在团队管理上有项目和专业两个维度.也就是说,有些团队是项目维度的,整个团队共同维护一个产品,成员来自不同的职业岗位:有些团队是专业维度的,比如一个组都是前端工程师,维护不同的产品. 因为前端组是设计部最接近后台技术的团队,所以团队平时的工作

一个女程序员的故事

        从哪里说起呢,我的程序员之路.有些话只是自己心里想的很明白,还从没说过.希望你有耐心看完,因为我的故事不精彩,也算不上奋斗史.我的文笔和叙事能力也很差.        高中报志愿的时候坚定的报了计算机技术及应用,当时对计算机的认识只是机房里的苹果机,和老师教的用basic 输出一个正方形之类的. 我当时觉得我对计算机一无所知,我想了解他,就选择了这个专业,当然当时程序员的收入也是可观的. :)        大学四年下来,我的成绩不好,基础也不好,没拿过奖学金.大学的课程很多不喜

编程没有捷径:奇葩冒牌程序员的故事

在讲述这个故事之前,我有一句话要说:编程是一件特别难的事情! 成为优秀的编程人员没有捷径,你要拥有高智商,要保持谦逊,还要不断的努力,犯错,在错误中成长,深刻理解你所学习的材料. 但是有些人就是一定要寻找捷径,而其中之一,就是使用欺诈的手段. 这篇文章讲述的就是我所遇到的一个冒牌程序员. 几年前,我认识了一个 30 多岁的人,我们姑且给他起名叫 Bryan 吧. Bryan 想要成为一名程序员,在我认识他之前的一年时间里,他一直都在有一搭无一搭的学习 Ruby,他还参加了一个为期 12 周的编程

编程没有捷径 奇葩冒牌程序员的故事

在讲述这个故事之前,我有一句话要说:编程是一件特别难的事情! 成为优秀的编程人员没有捷径,你要拥有高智商,要保持谦逊,还要不断的努力,犯错,在错误中成长,深刻理解你所学习的材料. 但是有些人就是一定要寻找捷径,而其中之一,就是使用欺诈的手段. 这篇文章讲述的就是我所遇到的一个冒牌程序员. 几年前,我认识了一个 30 多岁的人,我们姑且给他起名叫 Bryan 吧. Bryan 想要成为一名程序员,在我认识他之前的一年时间里,他一直都在有一搭无一搭的学习 Ruby,他还参加了一个为期 12 周的编程

失业66天:一位入行两年程序员的真实写照

作为年轻人,我们苦心经营的无非两样--爱情和事业,拥有一份甜蜜的爱情能够为发展事业提供动力;而具有良好的事业更能为爱情提供保障,又或是成为追求爱情的资本. 我们渴望着自己心仪的事业,或收入丰硕,或工作轻松,或增长见识,或结交人际.但是在很多时候,我们起初选择的工作并不是自己希望的,它们可能是走错的岔路,也可能是通往最终目标的阶梯.而在结束一份工作到选择一份新的工作的阶段这个必经过程就是失业. 有些人的失业不过是预料之中的短暂过程:"下家我都找好了,这面完事简单准备下我就过那头入职了--"

我的程序员之路:一个女程序员的奋斗经历

因为有人在酷壳里评论里说我给一个女程序员的建议不靠谱,我不服,因为我的工作经历中的一些女程序员都很不错,比那些男程序员都强,所以,我在新浪微博和twitter上征集女程序员的故事和想法,这两天来,我收到了好几封邮件,让我很感动.其中,有一个故事让我回味很久,在脑海里挥之不去,可能是因为她的经历和我很相似,她的想法和我很有共鸣. 本来,我想通过收到的这些故事然后编辑成一篇关于女程序员的文章,但是我觉得这个故事已经足够好了,任何的编辑都是对这个故事的不尊重,所以,我原封不动,一字不改地把这个故事转到

敢问路在何方?程序员转行应该卖水果还是卖烧饼

最近有两个关于程序员的新闻让不少IT人都欢乐了一把,微博上有人晒出了两个程序员转行之前和转行之后的对比照,这两位程序员哥哥转行前后的变化简直像是"脱胎换骨"一样,甚至连"地中海"的头发也变得浓黑茂密了,难道程序员这个行业就这么"摧残"人么?转行之后就能成为高富帅迎娶白富美?其实也未必,但是现在很多三十而立的程序员需要面对"职业转型"这个人生的有一大命题了,这个命题恐怕是我们走出大学校门选择了职业之后有一大人生抉择,"

我读经典(7):读《程序员生存定律》有感

        一提到程序员,大家的脑海中会想到什么呢?码农.软件.研发.加班.辛苦.沉闷.呆头呆脑.理工男.编程.屌丝等等.确实,程序员是一个很特殊的群体,网上有关"程序员"的话题可谓是无处不在.         也许是上天的安排,本人"很不幸"地加入了程序员的大军,经历了各种艰酸苦楚之后,对这个职业有了更加清楚的认识.         最近,我阅读了李智勇老师免费提供给大家的<程序员生存定律>这本电子书,颇有感触.本书由作者的CSDN博客上的文章整理