Monthly Archives: 四月 2015

程序员的职业修养

墨菲定律说的是,如果可能出错,那么就一定会出错。

斐波那契数列:

  • 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,…
  • F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)
  • 特别指出:第0项是0,第1项是第一个1

规划扑克:0、1、3、5、10

那一天我幡然醒悟了。我停止了长时间疯狂工作的状态,改变了高强度的生活方式。我不再愤怒地砸笔,不再写3000行的C函数代码。我决心通过卓越工作而非愚蠢工作来享受自己的职业生涯
我把工作交接妥帖之后就离职了,成为了一名咨询顾问。自那天起,我成了自己的“老板”。

有时有人会代我们作出承诺。比如业务人员可能在没有事先咨询我们的情况下就向客户做出了承诺。发生这种事情时,出于责任感我们必须主动帮助业务方找到方法来兑现这些承诺,但是一定不能接受这些承诺。
其中的差别至关重要。专业人士总会千方百计地帮助业务方找到达成目标的方法,但并不一定要接受业务方代为做出的承诺。最终,如果我们无法兑现业务方做出的承诺,那么该由当时做出承诺的人来承担责任。
这说来容易。但是如果因为没能兑现承诺而导致业务失败了,你也将无法按时拿到薪水,这种情况下不可能感受不到压力。但是,如果此前你已经表现得十分专业,那么至少在找新工作时可以昂首挺胸问心无愧。

快速前进确保最后期限的方法,便是保持整洁。专业人士不会为了快点前进而乱来。他们明白“快速但脏乱”是自相矛盾的说法。脏乱只会导致缓慢!
让系统、代码和设计尽可能整洁,就可以避免压力。这并非是说我们要花无穷无尽的时间去清理代码,而只是说不要容忍混乱。混乱会降低速度,导致工期延误,承诺失信。因此,要尽力保持输出成果整洁干净。

让你的团队和主管知道你正身处困境之中。告诉他们你所制定的走出困境的最佳计划。请求他们的支援和指引。避免制造意料之外的诧异。没有东西比诧异更令人愤怒和失去理性的。诧异会让你的压力增大十倍。

我们并非是因为喜欢和人们在一起工作才选择做程序员的。人际关系一团糟,而且不可预见。编程用的机器则整洁,行为也可预见。如果可以一个人呆在房间里数个小时沉浸在一些真正有趣的问题上,那将会是最开心的时光。
好吧,我这么说可能有点儿以偏概全了,确实也有不少例外。有许多程序员很善于和别人共事合作,享受其中的挑战。但是整个群体的平均状况还是朝我所描述的方向发展的。我们,程序员们,还是最享受面无表情的沉思,把自己像蚕茧一样裹起来,沉浸于问题思考中。

 

弟子规·作业稿

交给培训部的文章题目叫做《无题》,具体内容就是下面的内容。

像《弟子规》这样的一个文本,从出现到现在可谓历史非常短,但是它为什么如今还能这么热,有这么多的人去关注它,说明它是有非常大的价值的。

不知道这是什么逻辑——明明体现的更可能是我们的懒于思考和喜欢盲从。这种思考上的懒惰,衍生出了许许多多的笑话,比如烂大街的各种鸡汤文里的各种逻辑硬伤,它们有个共同特点:企图用个例来证明某个观点。通常个例只在否定某个观点的时候才有用,用个例来证明某个观点多数情况下都是毫无意义的。但是这些鸡汤文,依然每天都有大量的转载量。

《弟子规》就是一部经典的误导性的文本。有人说《弟子规》要辩证的来学,取其精华,去其糟粕。《弟子规》里面都是三字三字来写的,基本上每六个字表达一个观点。要想用六个字来严谨地表达观点,痴人说梦而已。《弟子规》全文里不会有一句是对的,有什么精华好取?如果我们把里面的每一个观点都改成我们认为正确的观点,再来供他人来学习《弟子规》,笔者认为这也是很不妥的。就好像你看了一本书,感触颇深,你想写个读后感,那你就写呗,你为什么要找别人写的读后感,然后把它改成自己的读后感呢?

就算是要“提高道德水平”,现如今比《弟子规》好的文本多了去了,为什么我们还要捧起《弟子规》来学“道德”。说到这里,你可能知道笔者想说什么了。笔者想回过头来谈谈本文第一段的内容。你现在觉得为什么《弟子规》会热起来了吗?笔者觉得比“《弟子规》具有极大的研究价值”更可能的理由也许是这样的:

中华民族是个礼仪之邦,是崇尚道德的国度。那怎么崇尚道德呢——学习讲道德的书籍。可是笔者看书少怎么办,除了网路上的各种鸡汤文外似乎没看过什么像样的讲道德的书籍——那就只好找些出名的经典道德书籍来学了。不外乎我们学来学去基本都在学那些死了三位数或四位数年份的人写的文本了。

如果我们是死人的书也学,活人的书也学,笔者也暂时不写什么微词。但我们几乎是只学死人的书,笔者觉得,如果这真是因为死人的书比活人的书好太多了,那可真是我们这些活人对自己的莫大讽刺。

笔者前面说《弟子规》全文里不会有一句是对的。会有人有不同意见。限于篇幅有限,不可能每句都谈及。如果笔者说笔者现在打算谈“尊敬长辈”是不正确的。你很可能就会觉得下面出来的文字应该主要是辩证地将如下两个观点的:

  1. 长辈值得尊敬的情况下,我们……
  2. 长辈不值得尊敬的情况下,我们……

笔者如果这么写,笔者自己也觉得自己只不过是在制造文字垃圾罢了。所以笔者就不这么写了。我想谈谈什么是道德。

笔者觉得道德被我们错误地冠上了高尚的帽子。我们所说的道德,通常情况下,指的都是被包装了的爱与公平。而且这些爱与公平在被包装之后可能已经不再是爱与公平原本的样子了。我们默认的道德用下面这个公式表达,可能不会有太大问题:

道德≈道德规范≈思想规范+行为规范

注:思想规范的例子有:热爱祖国、尊敬长辈……;行为规范的例子有:公交车上给老人让座、捡到钱交给警察叔叔……。

我们这些年轻人,如果说总体上是道德缺失的,那么,其实不仅说明上面几代人对我们的道德教育总体上是失败的,也说明了他们自身总体上也是道德缺失的。虽然似乎因为脑袋长在我们自己身上,道德这个问题就主要在于个人自身了。但无论怎么说,前辈们创造的环境的影响也不会小到可以忽略的程度。笔者主观地认为,也许一个人的道德水平取决于其自身,但一个群体的道德水平,是取决于整个环境的,说得直接点——我跟你的想法可能差别挺大,但我们跟你们的想法其实是差不多的。集体无意识是一代代传下来的,某个程度上来说或,我们就是你们的镜子,当你们觉得我们“道德缺失”的时候,你们也应明白你们也“道德缺失”了。

但是,我们先别忙着说谁谁谁“道德缺失”。你有没有想过也许可能如果我们所谓的道德不是个正确的东西呢?

如果一个东西本来就不是正确的,我们怎么可以去奢望多数人都去学习它遵守它呢?想要让大家把不对的当成是理所当然得对的,这不是愚民是什么?

这些思想规范和行为规范,很多都是教条一样的东西,虽然主观上人们在强调道德,但实际上他们强调的是规范。这些披上了道德外衣的规范,其实跟那些法律条文很像,也是需要不断完善的。

假设你急着去赶车,路上看到地上有一张面值为一元的纸币,虽然你工资不高,但也不至于让一元钱显得对你多么得具有诱惑。你会把这一元钱捡起来然后交给警察叔叔或者站在看到纸币的地方等待失主回来吗(失主基本上也不会回来找纸币的吧)?你估计是不会的。你可能会忽略这张纸币的存在,接着赶车。但我不觉得,把那纸币捡起来自己用的人就品行低下、道德缺失了,相反,我觉得看到了不理它让它风吹雨打被毁坏的反而还要不妥些。可能相应的行为规范可以改成低于当地最低工资水平1%以下的钱,拾到后可视为自己所得,除非失主就在边上(请勿严格推敲合理性,笔者这里只是随便举个例子,笔者并未就如何修订这些规范进行过深入的思考)。

为什么要孝敬父母(这里假设是值得孝敬的父母)?

笔者可以想到,会有很多人说,因为他们是父母。

这就是道德教育的硕果。而且现在很多人还认为这种道德教育还不够深入人心,当所有人都说“因为他们是父母”的时候,这道德教育才叫成功,他们说孝敬父母是天经地义的,说得好像他们都洞察了天机一般。

我觉得不是因为他们是父母,而是因为他们爱我们。虽然结论都是要孝敬父母,但原因应该是爱,而不是“父母”这个身份。如果有人像父母一样爱我们,我们也会像爱父母一样去爱他们的。几千年的道德教育,已经让我们很多人潜意思里将“父母”、“老师”、“老人”等身份作为我们某些行为的理由所在了。其实要孝顺父母的理由很单纯的,因为他们对我们付出的爱比一般人对我们付出的爱要多得多。假使有另外一个人比我们的父母还爱我们,我们不见得仍会将最多的爱回馈给我们的父母。

父母对子女,多有伟大的。感受着父母近乎无条件的爱的时候,我也会感到非常幸福。

子女对父母,亦不乏伟大的。

但他们不至于去写一本《父亲规》、《母亲规》、《老师规》之类的书,然后再拿去让他们的父母、老师去研读学习的吧?

假使我的父母会写一本《儿子规》给我看,笔者想其中的内容一定不会是叫我要孝顺他们,叫笔者在他们生病的时候要给他们买药,里面的内容应该会是不要晚睡,少吃零食之类的,因为他们是爱我的。爱是要靠感受来体会的,不是你写了个“爱”字,它就是爱了。

所以,笔者总觉得写《弟子规》的人对读《弟子规》的人也许是缺少那份关爱的。

我们为何要从少爱之人那里去学爱这件事?

但是,另外一方面,似乎这世上的不平等也都是由爱造成的。所以爱,也未必是个什么好东西。父母爱孩子,和孩子爱父母,也许只是一种物种为了繁衍下去而产生的行为罢了。

所以,假使你听闻有地方还有人吃人的事情的时候,没什么好惊讶的,不一定是我们这些不吃人的人的道德有多好,很可能的原因只是你不吃人你也饿不死,吃个鸡比吃个人容易多了,毕竟鸡应该打不过你。

笔者以前也看点历史,后来就很少看了。因为有一次笔者同时找了一本美籍人写中国人权的书和一本中国的人权白皮书看(看完一本再看另一本),看完前者和看完后者的感觉很不一样。因为这些书里所举得例子都不是我们这种道德缺失的年轻人经历过的,所以我在阅读的过程中都是假设它们都是事情的情况下去看的,因为这种文本里大都采用“摆事实讲道理”的方式来展开论述,一旦认为“事实”是事实,那么大部分“道理”也就是道理了。可毕竟这些东西都不是我们这种道德缺失的年轻人经历过的,所以我就很迷茫这些东西读起来有什么意义吗?讲历史的文本很多也是这样。
张三小时候为了钓龙虾,会左手拿着活的蚯蚓,右手拿着铁钩从蚯蚓身上穿过去,来钓龙虾,后来张三发现虾更喜欢癞蛤蟆/青蛙的肉,就把活的癞蛤蟆/青蛙往地上砸,然后拿起来用手剥去它外面的一层皮,再用铁 钩把癞蛤蟆/青蛙串起来,来钓龙虾。李四养过鸡(字面意思),不是当牲畜养,也不是当宠物养,是父亲在菜市场买了活鸡回家想烧了吃,李四也不是爱上了这只鸡,只是不想它死,就让父亲别杀它,结果后来这鸡虽然没被人烧了吃,却被老鼠弄死了,李四伤心得哭了很久,同样的故事重复上演了几次之后父亲就都是在菜市场直接杀了鸡再带回家烧。王五大学毕业的第一年,自己组建了一个羽毛球团队,后来因为有段时间去公司包的场地打羽毛球的人太多,长辈们有时候都没打球的地方了,因为客观上这是自己造成的,所以后来对于羽毛球团队的建设就基本停滞了,但与此同时,靠着不俗的打酱油水平,他也拿到了气排球团体第一、篮球团体第二和羽球团体第二的成绩,还参加了集团年会上的一个团体表演。赵六不喜欢说话,喜欢看书码字敲代码,经常独来独往,大家对他的印象就是内向老实不活跃。

张三是不是很残忍?李四是不是很有我佛慈悲之心?王五是不是活跃阳光还会替他人着想?赵六书生气很重很内向,也许看着还傻傻的?
很多历史相关的文本都是这个思路来的吧?

但是,张三、李四、王五、赵六都是同一个人——这个人笔者非常熟悉。而且李四最喜欢吃的东西就是鸡。

虽然也有很多讲历史的书会相对辩证的来解读人物,从他们做的各种事情来进行各种解读,但是我还是觉得很不靠谱,因为历史资料就算全是事实,一个人的“历史资 料”也是非常有限的,不管怎么“摆事实讲道理”,我觉得根本上,也还是在根据“个例”进行片面解读。事实上,我们对自身的认知存在很大的偏差,对我们周围 熟悉的人的认知也存在很大的偏差。对于历史文本里的东西,我不知道是不是还是将其视为故事更妥些。

《弟子规》比这些讲历史的文本更荒诞,“事实”都不摆,直接讲“道理”。

《弟子规》的文本里,几个字就要表达一个观点,很吓人的。用这么少的字所表达出的观点一定是不严密、漏洞百出甚至是错误的。所以我觉得,《弟子规》不是当教条来学习的,最多也就是取其中某句话作为话题来讨论更适合的,但是话题又何必要从《弟子规》里找呢,不看《弟子规》就找不出来“孝敬父母”的话题来了?

以上。

滕运锋,最后更新于2015年4月22日,于浙江横店。

注:

1、本文谢绝转载。

2、文中虽有吐槽《弟子规》之意,但绝对没有吐槽老师选择这本书来教的意思,请知悉。笔者知道《弟子规》的培训只是因为古已有之。

Silent in Front of You

I do not like talking, but I enjoy talking.

Yeah, there is no mistake in the previous sentence. Most likely, you will find me silent, because I do not like small talks with most people. But if you find me making a presentation whose topic is determined by myself not by others, to audience who are young i.e. not old, on a platform, you may have another kind of opinion of me.

Small talks are boring and a waste of time.

If I meet you on the road, I know you would perhaps ask whether I have meals already or where I am going, and You Do This.

If I meet you in my dorm, I know you would perhaps talk about my three dispaly screens and my papaer materials, I know it would be not polite if I do not give replies to satisfy your curiosity, and I know after my aswsers you would perhaps ask what kinds of book I usually read ad why I use so many display screens, …  (the talking will be continued, and I know how will the talking be continued because there are so many people talking about them with me and their talkings are similar), and You Do This….

Content of small talks as above are boring and seems to be a waster of time. However, small talks sometimes brings warm to you, and let you feel not lonely. So I need small talks, but I do not need so many small talks, except those from young girls, haha. So when I say that small talks is boring and a waste of time, I mean the majority of them, not all of them.

I do not like to talk to the old

Most of the old will consider my expression of pride as a saying of arrogancy. And conversely, I think most of the old are too arrogant to understand young persons.

In China, it was taugt that the young should be polite to the old, because they are the old. It is beyond all reasons! Does it mean that we should be not polite to the young? It mayabe right that we should be polite, but it is not because they are old or young. I mean the conclusion “we should be polite to the old” may be right, but the reason “because they are the old” seems to be not so reasonable.

Now you will explain that some old are so weak, we should not be inpolite or even violent to the old. Yes, this is right that we should not be inpolite or even violent to the old, but in the sentence “some old are so weak, we should not be inpolite or even violent to the old” the reason for the conclusion “we should not be inpolite or even violent to the old” is “some old are so weak” which seems to be reasonable, at least more reasonable than the reason “because they are the old” to the conclusion “we should be polite to the old”. However in most cases, we are polite just because we are polite, not becase who they are. If they are weak, we may express sympathy. But most likely, the old which you are talking to are not weak, and may even be stronger than you. So I think this expalination is neither logical nor reasaonable.

If there is a person you do not know, and he tells you that you should respect him for he is he, what would you think? Wouldn’t you think he is too arrogant? But why you feel it reasonable when the old tell you that you should respect them because they are the old?

This is one of the reason that I think most of the old are too arrogant. Another case is as below:

Sometimes you express an idea or choose to do some things, the old may tell you that the idea you expressed is wrong or the things you choose to do are not right, sometimes the old are right, but sometime they are not right. For example, when you are in a face-to-face interview, the HR may require you to give a carrer planning. But you know, a person who indeed makes a carrer planning is usually ambitious, and I do not think he will plan to stay in the company where the HR is in for all his life. But an ambitious person is like everyone else, he needs a job, and he has no choice but to cheat the HR. There are so many cheats like this, which are made not due to the kindness or because we really want to make these cheats. It sounds like that the old tell us that they can give us something as long as we cheat them, and they also decalre that they will not give us any opportunity if we do not cheat them. Sounds ridiculous, right?

To be continued.

Oh, sorry, maybe this post will not be continued for the time being.

April 4, 2014, Written by Yakima Teng in Jinhua City, Zhejiang Province, China.

IT项目管理那些事儿

 

第8章:IT项目经理的修炼

很多公司在建立了基本项目管理制度后,项目普遍是需求按时完成,开发按时完成,只是到了测试阶段长时间拖延。那是不是说明这些公司都是测试出了问题呢?实际是需求文档的质量不能达到预期(或者根本就没有预期),开发过程的质量也缺乏控制,最后所有的问题都体现在了测试阶段。

……

测试是提高产品质量的必要条件,也是提高质量最直接、最快捷的手段,但绝不是一种根本手段。IT项目经理必须熟悉测试的规律,以及如何开展测试以保证项目或产品的质量,需要知道项目开发的每个阶段都需要测试人员的参与,方能有效开展测试。

……

测试不能表明软件中不存在错误,它只能说明软件中存在错误。

……

测试方法上涉及白盒测试技术(逻辑覆盖和基本路劲测试)和黑盒测试技术(包括等价类划分、边界值分析、错误推测和因果图等)。测试又分单元测试、功能测试、集成测试、确认测试和系统测试,以及性能测试、接口测试、可用性测试、兼容性测试、安全测试、代码合法性测试等。

……

其实我们身边很多案例里,公司和项目经理制定了绩效考核与激励措施,结果反而适得其反。要不就是考核指标过于复杂,要不就是反而严重打击了积极性。

……

一个优秀的组织在项目管理方面需要有三个层次的建设,即组织级、过程级和个人级。组织级是指公司的监控体系,解决“如何管理多个项目”的问题。过程级是指公司的过程规范,解决“如何做好一个项目”的问题。人员级是指公司的培训体系,解决“如何提高人员效率”等问题。其中,人是最核心的因素,成功的项目往往都源于一个优秀的项目经理

……

通常来讲,项目的目标有下面几类。

  • 建立标杆客户。这类项目的特点是公司往往不惜成本,以建立长久的客户关系为目标,不计当期收益。那么,面对此类项目时,IT项目经理级项目团队就要清楚提升客户满意度、完成项目需求是项目的核心。此时,项目在遇到资源等风险或挑战时可以向公司申请,公司通常会支持项目组。
  • 盈利型。这类项目的特点是公司追求项目利润最大化。此时,IT项目经理要严格控制需求,尽量降低人力资源投入,保证项目进度计划,以实现项目利益最大化。
  • 锻炼队伍。这类项目的特点是公司要求项目的成本持平即可,打造有战斗力的正规化项目团队是公司更看重的。此时,IT项目经理要做好技术积累、团队建设,严格执行项目管理的相关流程。