亦缘小屋

小说,随感,生活故事,读书笔记。
原创作品,谢绝转载。
个人资料
亦缘 (热门博主)
  • 博客访问:
正文

【职场故事】极客(1)- 结对编程

(2022-11-13 10:49:50) 下一个

此篇取名极客,来源于英文的geek一词。相比于nerd(书呆子),geek的意义稍微正面一点。特别是IT行业兴起以来,人们对许多热爱并擅长计算机科学的人以极客称之,强化了极客一词中聪明,专业的意思,淡化了其不善言辞,不合群的意思。

这里来写一群这样的人。

那一年我因为家庭原因搬到一个城市,重新找工作。找着找着,同时来了两个Offer,一个是大公司A的合同工,一个是大学IT部门的正式工。两个职位工资差不多,但大学福利好很多,就毫不犹豫地选择了正式工。

在大学工作了一段时间,发现公司A在这个城市的影响力很大。如果碰到一个老中,说在IT行业工作,别人就会问:“在公司A工作吗?”回答不外乎这几种:(1)是的;(2)我以前在A工作过;(3)我不是,但我的先生/太太在A工作。公司A的福利非常好,本地一些博物馆的年费,旅游景点的门票,餐馆账单,健身房费用,公司A都有折扣。逢年过节,公司A会给员工家属组织活动。公司A的医疗保险也非常好。对有小孩的家庭,在公司A工作是有很多实惠和便利的。

要通过公司A正式工的面试不容易,有好几轮,哪一个环节出一点错,就被刷下来了。有些人面试弱一些,可以做合同工,一年半载地也许有机会转为正式工。还有些别的渠道,我不十分清楚。

摸清情况后,我有些后悔当初的选择。后来去公司A面试了一次正式工,失败了,需要过半年才能再面试。这期间认识了一些在公司A工作的朋友,才知道面试需要刷题。

这期间又面试了公司B。面试过程中得知B刚被公司A收购。虽然面试不出色,公司B还是给了Offer。工资只涨一点点,可见B对我不是很满意,大概有点“食之无味,弃之可惜”的味道。因为想着B被A收购了,B的员工迟早会成为A的员工,我就曲线救国,签下了Offer。

上班后,发现公司B的工作方式非常前卫,大部分组采用敏捷式(Agile)方式。那时候,敏捷式方式刚在IT行业推广起来。我们组更是采用其中难度颇高的结对编程(Pair programming)方法。

软件开发行业以前采用瀑布式(Waterfall)。软件组从用户那里取得对软件的要求,然后设计软件,开发,测试,移交。因为市场瞬息万变,软件从给出要求到移交的过程中,要求可能已经改变,导致编成的软件失去实际应用价值。

后来软件开发出现了一种新的方式,称为敏捷式(Agile),逐渐取代传统的瀑布式。敏捷式通过项目经理,不断从客户那里更新软件要求。软件组也响应需求变化作出调整。敏捷式软件开发一般采用周期制。周期可长可短。每个周期中,设计,开发,测试,演示,循环往复,逐渐完成一个个软件功能。

敏捷式软件开发有好几种方法,一般公司采用 Scrum。而我去的公司B的这个组,采用极限编程(Extreme Programming)这种方法。极限编程的一个特点是结对编程。

结对编程理论上是这样的:两个程序员面对同一台计算机一起编程, 一个人写代码(写手),而另一个人思考和检查代码(思考者)。严格意义上的结对编程,两个程序员一起编码四个小时。然后写手升为思考者,新加入的程序员成为写手。好像有研究,两个程序员一起编程若干时间达到最佳状态,然后状态开始下降,四个小时就要换对子了。

结对编程的好处有好几个。比如,新来的人容易上手,很快熟悉程序。程序在两个人的反复斟酌讨论中完成,因而程序质量高。程序员搭子达到最佳状态时,编程效率非常高。

实际工作中,结对编程往往会走样。一是两个人达到最佳状态时非常兴奋,但是脑子也很累,换了对子之后很难再达到最佳状态了。二是两个人的默契度。有些对子总是无法配合默契。三是人的趋利性。结对编程有利于资历浅的程序员迅速提升,但资历深的程序员受益不多,所以资历深的程序员喜欢找同等水平的搭子,四个小时后不会主动换对子。还有结对编程让个人的时间很不自由,除非有人监督,一般员工不愿主动结对。

我在别的公司很少看到结对编程。一般在两种情况下,程序员会短暂结对。一是让新程序员迅速上手,二是编一段很难的程序。

我的经理非常推崇结对编程,可以说痴迷到狂热。他一走出办公室,只要看到有人没结对,就会问为什么,驱使人结对编程。如果看到一对搭子很长时间结对编程,就要促使他们换对子。

经理还请来了敏捷式软件开发的创始人之一Martin Fowler到我们组,用了一周时间,一起编程,一起重构优化程序(refactory)。那段时间大家整日里就是结对,重构,重构,结对。组里像是上足了马达,拼了命地往前冲。

我到公司没多久,工作的方向是我以前从未接触过的,大家的编程水平也很高。因此结对编程时,我经常有力不从心的感觉。

本故事其他章节 -

【职场故事】极客(1)- 结对编程

【职场故事】极客(2)- 技术大牛

【职场故事】极客(3)- 怪客

【职场故事】极客(4)- 韦恩

【职场故事】极客(5)- 裁员

 

[ 打印 ]
阅读 ()评论 (21)
评论
亦缘 回复 悄悄话 回复 'HBW' 的评论 : 多谢解释,明白了。最好是设计师自己也是绘图员,并且能用绘图软件。
程序员因为要学算法,也要会写程序,所以是同时拥有这两种能力的。结对编程的两个程序员虽然有分工,但两个人的两种能力是同时发挥的。写手要考虑思考者的算法,思考者要监督程序的正确性和效率,就像一个人在同时做multiple tasks, 所以人会比较累。
换作你们专业,如果同时用两个设计师兼绘图员做同一个设计,中间如有不同,需要随时讨论出最佳方案,最后设计的图纸应该质量很高。
HBW 回复 悄悄话 回复 '亦缘' 的评论 :

我是做IT的但不是搞软件。以前是做机械设计的。最早是徒手绘图。后来机械软件出来了,2D到3D。特别是3D,很多软件不容易上手,结果人脑设计与电脑表达之间就有了隔阂。最早的时候好的机械设计师都配有3D绘图员的。设计师出草图和参数,绘图员在3D软件上实现,测试并优化。这和现在软件设计是类似的。后来的大学生从大学开始就上手3D软件,这种隔阂小多了。但是最好的设计思路还来自人脑,电脑就是个高级工具。如果二者能合二为一就最好了。
亦缘 回复 悄悄话 回复 'HBW' 的评论 : 多谢HBW新朋友到访留言!
你的解读好专业啊!应该是IT大牛吧。
我那时候结对编程时觉得很累,如果一直focus两三个小时,就非得休息一下了。
可能水平不够,无法在两者之间自由切换。
祝HBW周末愉快!
HBW 回复 悄悄话 我对结对编程的理解:编程的过程是人脑逻辑的思维转换到机器逻辑的过程,人脑思维的结果是逻辑框图及手写的参数,编程就是用特定的软件写到电脑上并测试调试。一般人只能专注于其中一项。所以结对编程可以让人脑更轻松。大牛就是两项能同时专注。
亦缘 回复 悄悄话 回复 '南山松' 的评论 : 多谢松松留言!
帅哥的帅让第一眼惊艳,成了同事,看习惯了也就习以为常了。
另外也像你说的,帅哥阴郁的气质让他不可爱,也就让帅失去魅力了
亦缘 回复 悄悄话 回复 'goodmum' 的评论 : 多谢goodmum留言!
帅哥情绪化可能有另外的原因,以后会写道。不过我只是推测,当时没敢问
亦缘 回复 悄悄话 回复 '菲儿天地' 的评论 : 多谢菲儿留言!
帅哥前妻多,感觉每一种程序可以对应一个前妻:)
南山松 回复 悄悄话 真是很专业的职场故事。有时候人是因为可爱才美丽。若是觉得一个人不可爱了,那即使美丽也失去了吸引力。估计卡文若干不尽人意的地方让他的外貌美在你心中失去了原有的美感了。亦缘写得好,期待后面的好故事:)
goodmum 回复 悄悄话 帅哥在编程类的强脑力工作不及琐男,因为外界诱惑多。琐男没人理,容易专心致志集中思想,所以帅哥经常恼火情绪化
菲儿天地 回复 悄悄话 回复 '悉采心' 的评论 : +1

很专业,很多术语不知道。“卡文看到一段程序,搞懂之后发现这段程序毫无用处。他就说:“删了吧。这段程序就像我的第二任妻子,看似漂亮,毫无用处。”,这个形容,太有意思了,哈哈。亦缘好文!
亦缘 回复 悄悄话 回复 '海风随意吹' 的评论 : 多谢海风留言!
多谢鼓励!都是工作中经常提到的方式方法,写成英文会比较容易,写成中文就累一些,因为翻译的缘故
亦缘 回复 悄悄话 回复 '歲月沈香' 的评论 : 多谢沈香留言!
你说的没错,我想了想以后要写的关于卡文的几件事,他确实没啥心计。人帅嘛,总有人捧着,比较随心所欲
亦缘 回复 悄悄话 回复 '平等性' 的评论 : 多谢平等鼓励!
你的癌症文很专业呢,要向你学习
亦缘 回复 悄悄话 回复 '水沫' 的评论 : 多谢沫沫留言!
是的,工作中的合拍太重要了!默契的身心愉快,不默契影响心情。跟合拍的人工作也是享受
亦缘 回复 悄悄话 回复 '悉采心' 的评论 : 多谢采心留言!
这些专业词中文翻译找不到,或者很牵强,查英文就会解释得清楚很多。
发现用中文写作还得练翻译水平,一些工作中的日常用语,写成中文怪怪的:)
多谢采心鼓励!
海风随意吹 回复 悄悄话 亦缘好文,技术含量很高啊!
歲月沈香 回复 悄悄话 赞亦缘好文!计算机的专业知识我虽然一窍不通,但也读懂了,长知识,亦缘写得很清楚!原来帅哥是个情绪化的人,合作起来的确沟通有障碍。不过,话又说回来,情绪化的人比较单纯,比阴险,当面一套,背后一套的人好一些。继续跟读亦缘的职场故事。
平等性 回复 悄悄话 亦缘好文,赞!
悉采心 回复 悄悄话 waterfall,Agile,Scrum。Extreme Programming...边看边学。。。那么难的概念在缘妹这里深入浅出,让我这个电脑外行“接受能力” 大幅提高啊。

后半部的故事性很强。人不但是职场的人,还是社会中的人,婚姻中的人。。。缘妹把各个侧面都描绘出来,故事便越来越好看。期待,加油!

水沫 回复 悄悄话 跟采心挤挤:)亦缘的职场文很专业呢,帅哥性格不好,再帅也没用,同事还是要工作合拍更重要~~
悉采心 回复 悄悄话
沙发沙发!
登录后才可评论.