Writer is a tool made by Microsoft for FREE!!!
2006-12-28
2006-12-17
民族文化保护
今天看了一段CCTV的记录片,介绍原生态歌曲的保护问题。所谓原生态歌曲也就是各个民族的民歌,没有经过加工的原始音乐。其中介绍了两个被带出山村的侗族青年,上过在CCTV唱歌,出去见过世面,出了名,于是村民们很羡慕他们,开始捡起即将完全丢掉的侗歌。看到这里好像侗歌有救了。然而,镜头拍摄他们带着孩子离开村子外出到城里表演时,他们说他们想靠侗歌让村里人生活好起来,他们向往城市的生活,希望孩子在城里成长,将来在城里生活。我相信他们的这些话像他们唱的歌一样,是原生态的话,没有经过修饰、改编的大实话。
也许这些话让一开始发现他们并带他们下山的、本意是保护民族歌曲的人失望了,但这不能怪他们,他们没有错,每个人都有追求更好生活的权利,不能因为我们希望保存文化的多样性而强迫别人保持原始的生活。但能否如他们所愿呢?他们也很迷惑,用他们的话来说就是“我们的村庄、牦牛和城市有矛盾,但具体我们也说不清楚”。如何能让他们的歌曲和他们的追求达成一致,是个问题。
于是有人开始想办法了。片中还介绍了另一个名族,好像是彝族,也有动听的、但正在消亡的民歌,同样有“好事者”将善歌者引出,参加青歌赛,并且夺得原生态歌曲类第一,于是也出名了,当地政府便将那个村开发成旅游点,组团演出。希望能以歌养歌,以经济利益驱动村民们学习、传承民歌。
看似一箭双雕,既让村民们改善了生活又保护了民歌。但感觉总是不对劲。这些民歌本来是在自发的、没有功利目的的情况下歌唱的,有的还是在情人间单独歌唱的,而现在却为了把游客吸引过来并且把钱掏出来而歌唱,唱这些歌曲的人还会像以前那样快乐地歌唱吗?会不会刻意迎合游客的口味而使原本纯朴的民歌庸俗化?唱出来的还能叫原生态歌曲吗?对此比较悲观。
另外,在游客散尽、夜深人静的时候,歌唱者会不会因为因金钱驱动而为远道来猎奇的游客强颜欢笑、歌唱而感到自尊受伤害?游客所猎奇的对象不是别的东西,正是他们。很多游客来的目的并不是为了听他们的优美歌曲,而仅仅是满足一下好奇心。大部分人对人文旅游有两种心态,对强大的国家或民族是抱着仰视态度的,而对弱小者是抱着居高临下或让人不舒服的怜悯态度的。或者就不把被参观者当成和自己一样的人来看待,而仅仅作为参观的对象,和雕像、山水、动物一样。
这不同于单个歌手在娱乐场所演唱,那是个人的表演,在工作场所,是一种职业,在这个时代一般不会有自尊的问题,往往还会博得他人的崇拜,作为明星而存在。但作为一个集体就不一样了,一个村庄或民族都靠为外人唱歌而生存,这会让人瞧不起。尤其是是整个生活空间被外人闯入,使他们的一切暴露于闯入者面前,一切都在展览,失去了真正的生活空间。
那如何保护这些正在消失的民族歌曲呢?在保护任何东西之前,需要知道这个东西存在的原因,否则存在的原因都没有了,怎能保证其存在呢?很多民歌都是民俗仪式上歌唱的,在古代,信息不畅,对外交流少,因此其风俗能几千年传承,而现在,对外交流频繁,很多年轻人都外出打工,并且他们羡慕外面世界的繁华,模仿外面世界的生活方式,很自然,他们逐渐抛弃旧的生活方式,拥抱新世界,旧风俗开始瓦解、消失。比如,以前男女表达爱慕需要用歌唱,现在见过世面之后,他们变得大胆、直接,三个字搞定,无须繁文缛节。
可见民歌之所以消失,是因为其赖以生存的土壤消失了。能怎么办?最现实的是赶紧用录影/音设备将能保存的保存下来,供以后研究和回忆。如果能让其与时俱进,在新的生活方式下找到生存土壤,那是再好不过的了,但那也已经不是当初的民歌了,而是新时代的民歌,录影存档还是必要的:)
也许,只能顺其自然,该消失的总会消失。即使看着其消失,也不能因为要强迫保护它而让歌唱它的人放弃新生活过着原始的生活,这是不公平的。就和不能因为要保护四合院而让北京人不住高楼大厦一样。很多东西已经消失了,这是没有办法的事。
小时候,没有电,自然也没有电视、电扇,夏天的晚上,庄子上的人都到谷场去乘凉,大人们聊天,孩子们一起玩耍,并且有时候大人们会给我们讲牛郎织女之类的故事。等到有了电,家家有电视、电扇的时候,没有人出来乘凉了,自己在家扇着电扇看电视。现在,对于我来说,我对乘凉有很多回忆,认为这一习惯的消失是一个损失,甚至希望大家放弃电视电扇,重新聚到谷场,但这只能是希望而已,不可能强迫大家放弃电扇电视而回到手摇扇子的生活中。
2006-12-15
开好车的就是好人吗?!
也许是妒嫉心理开始控制我的思维,开始想一个问题“为什么海龟创业就能有优惠政策呢?”
据此人透露优惠政策其实是诱饵,用来钓更多的海龟,理解了:)
可是为什么要钓更多的海龟,而不是饲养更多的土鳖呢?现今可是有很多土鳖刚养成出栏就被活埋了啊?!
可能和外来的和尚会念经一样,海上的海龟比土鳖更有营养。
只要从海上来的海龟就很有营养吗?从越南、巴西来的海龟和从美国来的海龟一样营养吗?
~!@#$%^&*..........
话归正题,想到最后,就一个问题:海龟就一定意味着人才吗?
显然不一定,地球人都知道!能出海和人才之间没有因果关系,两者只有关联关系。即并不是因为能出海所以是人才,也不是因为是人才所以能出海,而是能出海和人才这两者之间有可能有共同的“因”,比如求学的意愿、智商高、情商高......由于这些“因”在一个人身上不容易直接测量,因此只好借助关联表现来判定是否是人才。地球人都知道的问题,这种关联测量到底是准确率不高。为什么不去寻找更好的关联项来测量?不得而知。
考试成绩好是工作好的“因”吗?不是。同样的道理,成绩好和工作好是关联关系。成绩好可能是因为智商高、学习效率高、有顽强的品质......这些也是某些工作所需要的。比如在一定时间内,通过合理的时间计划,并且很好地执行,得到理想的成绩,这种能力应用于工程项目中也是很有用的。很显然这种关联不是在任何情况下都有用,并且不是最准确的。谁见过通过考试成绩选CEO的?CEO需要的很多品质是考试所体现不出来的,即两者不存在共同的“因”。
一脸茫然的保安还在寻思自己为什么被训斥,自己的想法到底哪儿错了?“开好车都是有钱人,即:开好车=有钱人,有钱人无需做小偷,所以开好车的不会去偷车,是好人......”
2006-12-13
游击项目组
婚庆是每家每户、从古至今办下来的,因此形成了成熟的Process,当然各个地方、各个时代,这个Process会稍有不同,但在一定的地域和一定的时间内,这种Process可以认为是标准和固定的,并且生活在其中的人们耳熟能详(世代相传及左邻右舍互相学习,无意中的培训工作做的好)。
操办者一般都是父母(喜东家),婚庆的主要目标是迎娶儿媳进门,为了达成这个目标,需要做一系列事情。同时,还要招待到家中庆贺的客人,让客人满意。在农村,办事都是讲排场的,否则会被人笑话,因此招待这些客人虽然不是最终目标,但是招待的好不好却是最终成功与否的一个重要标准,因为一般情况下儿媳进门这个目标是没有什么悬念的。
在农村,所有的事都在家里进行,而做这些事情光靠家里人肯定是不够的,并且有些事需要“专业”人士办理。因此,需要找人帮忙(招聘)。在前一个月左右会定下主要人员,如厨师、支客等,厨师、支客一般是比较专业的,不是每个人都能做的,因此很多人家的事都请相同的人。而其他打杂的人,比如端茶倒水、上菜、放鞭炮等的人是无需太多技能,随便人都可以做的,提前几天找一下关系好的亲戚或邻居就可以了,在乡土农村,主要靠人情,大家有事互相帮忙,所以若以金钱衡量,这是非常低成本的。
在婚庆的前两天,和厨师一起讨论筵席用什么菜,要准备多少等等(resource),都筹备好。等到婚庆当天,大家各司其职,由支客协调大家运作,比如每一轮要开多少桌饭菜,什么时候开等等,而喜东家这天只需要招呼客人,也听候支客的安排。
整个过程在我看来是忙而不乱,从做项目的角度来看是成功的。立项(定婚期)、组织人员、选Process(风俗)、执行依次展开。其中人员组织是比较有意思的,所有人都是临时组织在一起的,其中,支客扮演了PM的角色,在婚庆当天执行的过程中协调大家的工作。而老板(喜东家)在前期准备过后,到真正执行时把执行权力交给PM,也颇符合现代组织执行方式。
为什么一群临时召集的人可以有条不紊地完成这件事,而很多公司养了那么多人却做不成事?可能是以下原因:
1. Process成熟,所有人都耳濡目染,对其比较了解,连打杂的人都知道。
2. 有专门的PM,协调大家工作。
3. 分工明确,每个人的工作很清晰。
4. 工作复杂度低,大家都能胜任。
5. 不需要太多的交流与协作。
软件项目可以这样做吗?从事软件开发的人从在公司上班到在家等待临时聘用。公司从养一批人到只养小部分人,大部分人等项目启动时临时招聘。从目前看是不可行的,没有统一的Process,工作复杂度大,不是随便选人就能胜任的。所以有两个问题:
1. 如何能有一个统一的Process?
相对容易,基本上软件开发的Process大同小异,找一个组织,出一个规范,一开始强迫参与者遵从这个规范,慢慢就推广开了。
2. 如何能使工作复杂度降低,或者如何提高参与者的技能,或者如何迅速找到合适的人?
这个相对困难,由于工作本身的特性,工作复杂程度降低可能性不大。提高参与者的技能得靠学校的教育和参与者自身的修炼,也不是能随便提高的,如果还需要临时培训,又偏离了本意。最有可能突破的是迅速找到合适的人,但目前看来也很难,很多人都有各式各样的证书,但更发达的是到处是办假证的小广告:(。况且,即使是真正考下来的证书,也不完全代表实际的工作能力,虽然没有比考试更有效的评判手段,但靠考试远远不够。用考试成绩来衡量人只能是管中窥豹或瞎子摸象。
TopCoder好像正在按照这个游击组织的模式在做,他们有自己统一的Process。通过各种活动如竞赛等聚集软件开发者,记录开发者的历史表现。把软件分解成独立模块,发布出去,让设计者竞标,即大家都提交自己的方案,方案选定后再发布,让开发者竞标,开发者提交自己的代码,从中选取。
这种打游击的项目组织方式对单个组织来说的效率,还是颇有吸引力的。
2006-12-09
简约设计
在不断地按遥控器选台中,偶然看到CCTV2的2006创新盛典节目,正在颁奖,啥奖项没看到,只看到一个评委给三款最终获奖的数码产品做的评价,每个产品只有寥寥几句,但是却都包含一个词——“简约”。不禁想到这几天看的ALAN COOPER的《交互设计之路》,难道评委也正在读这本书?呵呵,这不重要,不过他们的思想或者说人们对产品的评价标准是一样的:功能简约,使用简单。
这本书看了一半了,颇受启发。其副标题是——让高科技产品回归人性,因此其主体是很容易理解的。书的开篇当然是描述问题:目前高科技产品,尤其是软件产品的普遍问题——难用,操作复杂,让普通人用起来倍感沮丧。对这些产品作者用了一个比喻“跳舞的熊”,即产品的确能用——能跳舞,但很难用——熊跳的很难看,更甭说优雅了。为什么会产生这样的结果呢,作者给出的诊断就是大家都让程序员来设计产品,而程序员恰恰是比较奇怪的一群人,对技术痴迷,但不通“人”道,因此自然而然用逻辑人的思路、技术理解力来设计产品,结果是设计出来的产品让普通用户感觉头痛沮丧(好比是让疯子来管理疯人院)。缺乏真正的产品设计阶段。接下来开的药方是:在开发前作专门的产品设计,还没有读完,不知还有什么秘笈。
书中有几个观点是比较有启发性的:
1. 认知摩擦:当人类智力遭遇随问题变化而变化的复杂系统规则时遇到的阻力。软件交互的认知摩擦度很高,因为根据输入,有很多可能的结果,难以预测,面临难以预测的东西当然让人郁闷。
2. 编写软件的成本不是变动成本(开发出来后可以有无数拷贝),因此降低变动成本增加利润的方法没有效。只能增加固定成本投资以提高产品质量和销售价格来增加利润。新经济的本质是需要增加在制造所有产品上的整体费用,而不是降低单个产品上的个体费用。
3. 功能多未必好,每一项可能有用的功能都会淡化那些真正有用的功能。
4. 推迟交付比交付一个滥产品好。
5. 三品质概念模型:可能性(技术),可行性(商务),期望性(设计)。前两者目标不同(技术人员希望功能更强,商务人员希望拥有更多市场份额),需要期望性来平衡。
6. 产品满足需求是最低要求,更高的要求是满足用户的期望。满足用户期望的产品才能拥有用户忠诚度。
...........
回想到前几天在公司报销时遭受的折磨:由于出差三个月,中间没有报销,工资全部投资于发票中还不够,欠了好几屁股债,债主们现在嗷嗷待哺,于是回到公司就怀着急切的心情报销,由于是三个月的积压一起报销,填的项目比较多,习惯于填几项就保存一下(对这个系统实在是不放心),填到一百多项后就保存不了了,一点击按钮就没有反应了,来回填了几次都保存不了,只得硬着头皮一口气填下去,期望到最后一步提交能成功就不用保存了。终于如履薄冰地填到最后一项,祷告一番后点击提交按钮,弹出一个窗口,上书“Validating....”,怀着惴惴不安的心等待结果,左等不出来,右等也不出来,忍无可忍的情况下终止了“Validating”,页面出错了,按任何按钮都不反应,知道努力白费了,只能使用绝招:关窗口,重新登陆,重做。由于不知道什么原因做不下去,所以反复尝试,反复失败,前后浪费了两天时间,最终不得不分成两次报销上去。过程中强烈感觉愤怒、沮丧、绝望,如果做这个系统的人在旁边,肯定上去揍他两拳解恨,当然做这个系统的人肯定不在旁边,只看到这个系统上面毫无惭愧地写着:Oracle Application.......
手机?绳链?
对《手机》中严守一最终将手机扔到火中,颇有感触。身上带着手机总像一条狗被拴上了一根无形绳链,无论时间空间,时刻被人牵引着,尤其在有事有压力的时候。
以前一个项目实施后,总是通过手机上来各种远程求助或投诉,不堪其扰。某一日,忘记带手机上班,倍感轻松。
最近关于手机的压力体验更加强烈,每次通宵割接之后,想白天睡一会儿,每次都是刚一闭眼就有电话,还不能关机,郁闷至极。这两天由于短信网关给的连接数不够,导致系统对外提供的连接数也不够,屡有人“找上门”来,尤其今天下午达到顶峰,从2点开始两个项目联系手机此起彼伏,几乎没有间歇,大家像对待烫手的山芋一样,不愿接,但又不能不接,只能硬着头皮接,解释问题,让大家稍安勿躁。几人濒于崩溃。
自己身上拴着绳链当然不爽,可是别人身上拴的绳链牵在自己手里就是相反的感觉了:爽!一边接别人“找麻烦”的电话,我们也在不停地找网关的麻烦,不停地打相关人员手机,虽然人家很明显很烦我们,基本能不接我们的手机就不接,无奈我们也被逼上绝路了,豁出去了,一遍遍锲而不舍地拨打骚扰,不达目的不罢休,终于把问题搞定。别人的绳链帮了我们的忙:)
看来找人帮忙脸皮要厚,要坚持,要用好对方的绳链,把其想象成被捕,克服联系恐惧感(和很多不友好的人联系会有潜在或明显的压力和恐惧感,恰恰有很多人,尤其是甲方是不友好的)。
(成功)+ ——>失败 定律?
大意了,大意了
乘了这么多次飞机,都是在机场苦苦地等飞机,没想到今天早上(12/6)居然被飞机给甩了。
昨天订票的时候为了替公司省点钱,又确定今天早上肯定走,所以要了4折票,票务特意提醒我不要迟到,因为打折票不能和全价票一样随意改航班。当时回答人家肯定不会迟到,一则9:40根本不算早,再者,从来没有误过航班,只有航班误我。
因为觉得9:40的航班,时间很充裕,所以今天早上听到闹钟后没有赶紧起床,而是想咪一会儿再起,哪知再次睁眼的时候便发现8点了,赶紧起来,此时还没有觉得时间不够了,当时还是抱着时间多的想法,觉得无论如何时间还是够的,于是吃了早饭才走,出门的时候看了一下表,感觉不对了,立即启动数学思维,8:40了,一个小时,从家到机场就得半个小时,而在飞机起飞半个小时前停止换票,看来有点玄了,不过又安慰自己,凭以往经验,飞机能正点起飞的是比较罕见的,只要晚点就没有问题了。于是由以往害怕飞机晚点到盼着飞机晚点。
最终事实再次验证了墨菲定律的正确性,想要的一般得不到,不想要的总会来到,晚了5分钟,不得登机。于是只能求助票务,退掉手中的机票,重买了另一张,钱没有省,反而赔了。
被上了一课,一开始每次都早早去机场,发现去得太早,于是一次比一次晚,没有败绩,于是大意了,甚至都懒得算时间。多次连续成功,放松了警惕性,于是某一天惨败,(成功)+ ——>失败 定律?历史上辉煌的文明总是被野蛮人手持棍棒摧毁,同理?
2006-11-26
谁是敌人?
很傻的问题,岂能不辨敌我?然而在特定情况下知道敌我之分和真正用相应行动来回应敌我是不一致的。近几年的新闻报道的科索沃、阿富汗与伊拉克战争中,给我最大的感觉就是战争中(尤其是美国及其盟友方面)死人越来越少了。从强大的一方来看,其打击的目的是摧毁对方的反击能力,现代战争中,摧毁运输通道与大规模杀伤性武器即可达到目的。而读史记等书就有不同的感觉,好像中国自古以来一大特色就是人多,命贱,像蚂蚁一样,不起眼的战争也是万人级的伤亡,时不时就“坑**万”。其实目的是一样的,摧毁对方的反击能力,因为古代打仗的决定性因素就是人,而现代战争的决定性因素变成了武器系统。然而即使进化到现在,战争中一个小问题还没有解决,即误伤自己人,古代打仗,大家一起往前冲,挥刀狂砍,相信死在自己人刀下的冤死鬼不少,现在新闻中也经常报道美国与其盟友内部互相误伤的事例。可见,真正能明辨敌我不容易啊。
近日在site工作也遇到了这种尴尬,如果把调测与解决问题看成战争,显然tester与developer是盟友,共同的敌人是存在的问题,tester发现问题,developer解决问题,互相配合赢得战争。而实际的情况并不如此完美,往往在内部展开了暗斗,tester发现问题,developer想掩盖问题,于是tester想扩大问题以引起注意,developer更想掩盖并反击,其结果是双方文明地“剑拔弩张”。比较尴尬,不过也还算不坏,至少在争吵中还是能解决问题,大方向上不至于在和和气气中输掉战争。也许tester和developer之间的现实关系就是这样,在和共同的敌人斗争的同时内部打打闹闹,不值得奇怪。但理想的情况应该不是这样的,盟友之间应该“狼狈为奸”才对。问题出在哪儿呢?
首先是沟通。
沟通应该是个普遍问题,由于表达能力及方式的有限,不可能完全表达清楚思想及感受,人与人之间总会产生误解,因此一方的话传到另一方可能意思就反了。本来好意提醒错误的存在,会被认为是挑衅、找麻烦;本来仅想描述错误,却被理解为对其的指责,于是“仇恨”的种子便生根发芽,茁壮成长。
避免这种情况需要双方做到就事论事,不带强烈的感情色彩,尤其tester在找到问题时不能太过得意,以免产生误解,找到愚蠢错误时也不要过于愤怒,人总会犯错误。
从辩证法上来看,双方也有不可调和的矛盾,立场不同,tester的本职就是找错误,错误找的越多越有成绩,而developer虽然解决问题多也有其成绩,而往往由于其解决的问题就是其先前留下的,便成了其污点,问题越多,污点越多,越会被人指责,于是不可避免想掩盖错误,质疑与模糊tester的战果,有责任心的tester是不能允许这样的,于是会更加努力证明developer的确存在问题,矛盾的双方的人民内部斗争便开始升级。
从辩证法的观点看,双方也应该是统一的,共同为了同一个终极目标而奋斗:消灭bug。为什么往往会忘记这点呢?developer难道不知道掩盖问题无异于给自己埋炸弹吗?不知道故意抵赖与狡辩是不职业的行为吗?否也,这些理放在平时谁都懂,但是一到参与其中,便很少有人能做到恰到好处。为什么会这样?是什么使正常情况下的正常人变成非理智人?
是压力!
如果没有各种限制,比如时间限制,完全在理想情况下,放松的状态下,双方心平气和,相信都是谦谦君子,互相谅解、礼让,好好就问题论事、解决问题。但是实际情况不可能是这样的,每个项目都不可能没有时间限制,总是时间不够用,受各种条件制约。于是,对于tester找出的问题,developer必须在限定时间解决,找的越多压力越大,而往往问题多的地方正是前期质量较差的地方,需要修复的时间越多,带来压力更大,developer不堪重负,于是设法掩盖问题。尤其是再有从上层来的压力的时候,developer更会崩溃。同时,tester在site上遇到的问题多,也会倍感压力,更多来自客户,一般很多问题都不便向客户坦白,而是寻求内部尽快解决,于是把受到的压力也传递到developer那儿。由此可见,tester和developer都会很有压力,压力倾向于汇聚于developer,但developer也会通过抵赖的方法来自卫并反击tester,并且可能会通过各种解释使上层相信tester报告的问题不准确或不存在,使上层challenge tester,让tester做更多的测试来证明的确是问题,加重了tester的压力,于是“怨恨”在双方之间传开,不加控制会造成不合作状态。
在压力情况下,不光tester和developer会失去理智,manager也同样会失去理智。人总是偏向于听好消息,对坏消息有拒斥心理,于是developer很容易使manager相信问题不大,能很快找到“银弹”,而tester专报告问题,并且有时会夸大问题,显得很讨厌,便有可能受到无理惩罚。至此也明白为什么历史上在皇帝身边出了那么多得势的花言巧语的奸臣,而又冤死了那么秉言直书的忠臣:(
事态至此,如果不加控制,恐走向毁灭的深渊。如下方面入手:
1. Developer从被问题导向变为主动解决问题,当tester发现一个问题时,应在解决这个问题的同时,举一反三,解决相关可能的问题,而不是仅解决这个问题,然后把脑袋埋进沙子里,等待tester发现另一个问题再解决,这样会很被动,并且会让tester很恼火,类似问题重复出现是很令人沮丧的一件事。如果在某一模块发现问题较多,则不待tester发现问题,主动重新review 设计和代码,提前发现和解决问题,不至于被报告问题时手忙脚乱,这样也会减轻tester的工作量,否则每提交一个版本都要做回归测试,很累的。
2. Tester描述问题尽量客观,不带情绪与成见。记录更多的问题相关发生环境,帮助developer定位问题的原因,让developer强烈感觉到是盟军,而不是敌人。
3. Manager控制自己情绪,听取客观情况,协调developer与tester之间的沟通,必要的时候为双方减压而不是一直加压,直到崩溃。重要的职责是指导相关人员有条不紊地解决问题,而不是责骂,否则会使developer和tester都向其隐瞒问题,直到无可隐瞒,彻底崩溃。
其实,如上的努力只是没有办法的办法,项目已经进行到测试的阶段。如果项目正在设计或编码,还是奉劝developer多做努力,通过design、review、UT等把容易发现或可以预见的问题尽早发现和解决,带入到最后阶段的问题越多就越被动,直至失去理智把盟友当成敌人斗,岂不缪哉?!
2006-11-12
世界是否需要超人?
在《超人归来》电影里,当超人重返地球时,发现地球上的人们已经习惯了没有超人的生活,连以前的“地下”恋人也发表文章《世界不需要超人》,说明地球上已经不需要超人的存在,当然这里存在着爱恨交织的因素,但至少说明人们接受了没有超人的现实。习惯了接受崇拜的超人同志也不免有些失落。不过超人就是超人,依然怀着普济众生的理想与信念,“准时”在灾难的第一时刻出现在现场,救落难的地球人于水深火热中,继续扮演灾难救世主的角色。从此,人们知道超人又回来了,代表正义的力量和邪恶做斗争,除暴安良。直到影片结束,都说明了一个问题,那就是地球还需要超人,需要超人的力量来战胜邪恶。
看这个电影,突然想到一个问题,既然地球毫无疑问需要超人,但一个超人够用吗?需要多少个超人才能满足需求呢?地球上同一时间出现问题的地方绝不止一个地方,超人如果不能像孙悟空一样能分身,只能救一处,舍弃其他地方,就会产生不公,凭啥厚此薄彼?!因此需要多个超人,到底需要多少呢?这需要知道地球上的灾难事故数据模型,再给出超人的事故处理速度、移动速度,可以算出总共需要多少超人才够用。
超人只是电影中的美丽幻想,至少在目前还没有这样一个外星人来地球学雷锋做好事。要地球稳定还得靠自己,也就是地球本土的正义化身--警察。当然,从性能上比,警察和超人是没有可比性的,但从功能上说,二者的目标是一致的。二者都是代表正义救死扶伤、除暴安良。为了能及时赶到事故现场,超人使用超人类的本领--飞,警察则使用警车。为了打击犯罪分子,超人还是使用超人类的力量,警察则使用武器。因此,超人更准确地说应该是超警。
由于人类警察的性能局限性,需要很多的警察来完成同样的事情,在技术落后的情况下,只好使用人海战术。即以数量来弥补质量。既然完成同样功能,没有超人的情况下,我们可以用土产的警察,我们为什么还需要超人呢?由于没有超人能力,警察有很多事无能为力。于是,倍受邪恶力量折磨的地球人幻想能有超人来解救自己。
可是这个答案并不令人满意。我们需要超人首先是因为地球上存在邪恶力量,没有邪恶力量或灾难的存在,就不需要警察,更不需要超人。没有人会在路不拾遗、也不闭户的安定社会里装笨重的防盗门,同样,没有人在没有邪恶、没有苦难的安乐社会中幻想超人的救助。因此,超人是伴随邪恶存在的,正如乱世出英雄,是乱世造就了英雄,给了英雄成为英雄的机遇,太平盛世是很难出现让人崇拜的英雄的,即使有也是向外开疆拓土、对抗外敌的英雄。
既然英雄总是伴随苦难而出现,我们为什么还需要他们?他们的存在不是目的。如果能够以他们换来大众的幸福安定,当然不需要他们存在。没有人会为了崇拜英雄而树立英雄,除非英雄的定义已经改变。同样的道理我们不需要超人,不需要在灾难中拯救人的超人。我们需要的是没有灾难,天下太平。超人的出现,说明了我们地球还有很多灾难,远离太平。如同医院,医院能把人从病痛中解救出来,但没有人会盼望去医院。
普通大众追求的是生活的幸福,希望生活在太平盛世,而非英雄辈出的乱世,即使爱看英雄们的故事,但不愿意回到那个时代等待英雄的解救。我们需要的是治世能臣,而非乱世英雄。治世能臣能预知灾难,提前准备或化解灾难,而非当灾难发生时凭借一己之力泼水救火。虽然少了那份惊心动魄的刺激,但防患于未然能最小化灾难带来的影响。
世界不需要灾难营救的超人,套用到软件开发团队就是:团队不需要解决bug的大牛。真正需要的是能提前预知、防备bug出现的大牛,此大牛应从Design, coding, review, UT等过程中尽量杀bug于未形中,而不是等bug被发现再发力去修补。当然,总有捕捉不尽的bug,还能在关键时刻解决bug的大牛是更理想的牛:)
预知、防备问题需要的更多的是经验、机智,而超人式解决问题靠的更多的是力量。软件开发亦然。
2006-10-31
2006-10-21
潜规则
曾几何时,潜规则这个词流传开来,于是乎很多陋习都有了一个看似冠冕堂皇的说法:潜规则。官场上卖官鬻爵是潜规则,生意上吃喝玩乐是潜规则,借过节送礼是潜规则,单位上晋升按资排辈是潜规则................................
所有不能在阳光下光明正大地运作的规则都用潜规则称之。和潜规则向对应的写在纸上贴在墙上的我想称之为明规则。我们从来不缺乏明规则,正式场合大家口口声声的也是明规则,而低下盛行的却是潜规则。为什么?! 我们是不正直的民族?I don't know. 怎么解决? I don't know.
行贿受贿大家人人喊打,可是依然在潜规则地运行着。轮到自己又如何呢?打破之?相信有人能做到。有几人?I don't know.
集体受贿的时候,有几人能不被潜规则地拖下水?I don't know.
谁知道,请告诉我。
2006-10-17
2006-10-16
根本问题
有人说好的问题是解决问题的一半,即能提出正确、关键的问题,对解决问题有很大的帮助。好的问题让被提问人往正确的思路思考回答,而有误导性的问题则会使被提问人误入歧途,回答的东西离问者想问的东西十万八千里。
往往提问者会对问题进行思考分析,排除自认为不可能的答案或可能性,进入到更加具体的问题,以便能更快得到答案。大多数情况下,这是有效的。但也有很多时候,提问者会误把可能的情况排除出去了,产生无效的问题,离原始问题越来越远。
今天就有一例:早上去site发现无论如何试上不了外网了,于是断定或者上面改网络配置了,或者网线坏了,因为我们是通过引一根网线到上层管理中心路由器连接到外网的。于是上去换了网口,不行,又问管理中心的人是否改网络配置了,得到的答案是没有,于是便认为是网线坏了。下午又有人试图重新试一下,上去换了网口还是不能连上网,于是又去问人家是否改了网络配置,得到的答案还是没有,于是更加认定是网线坏了。为了确认是网线坏了,拿了一根确认是好的网线,抱着笔记本上楼去直接连到路由器上试试,结果还是连不上,正觉得奇怪的时候,那个两次回答我们没有改网络配置的人说了一句:“我们也是从早上开始就上不了网......”听此言差点晕倒,从早上就开始折腾分析,反复询问,根据得到的回答推论出是网线的问题,并且抱怨人家网线做的差没用几天就坏.......被这一句话推倒。
我们分析来分析去,自认为只要问一个问题就能判定原因,哪知被这个问题引到了牛角尖,忘记了路由器上面还得连到其他网上去,整个路由器也可能就连不上网。其实,拿最原始的问题“我们为什么上不了网?”去问,别人肯定很快就会说出那句话,而我们却拿另一个自认为更精确而却并不是真正问题的问题去问,结果自然得到了不是答案的答案。
看来,在问问题前,自己捉摸的太多并不总是最有效的。尤其看似简单的问题,会有思维定势,往往得不到创新的答案,需要从最原始的根本问题开始问起,进行头脑风暴。
2006-10-14
执行力
今天去和客户谈事,最后要找他们的一个人执行,这位领导就带着我到他们组其中一人座位面前问能不能做这事,这人回答有事。又到另一个座位问另一人,又有事,问了三四个人都是有事,直到最后一个人才答应做这事。当时顿感悲哀,不为别的,只为这个领导。此人乃老电信技术四大金刚之一,技术上有相当功底,很多想法也颇为新颖。掌握几国语言,据说汉语在其中算是最差。一起吃过饭,聊天,发现其文史功底也不差,可以说相当有才华。只可惜过于耿直,在人事上不太擅长,在这种企业里不太合适,于是仕途上不顺。颇感惋惜,有虎落平原之感。
就这件事来说,不算大事,但说明了一些问题,也颇有教育意义。
1. 如果手下员工的确忙。那说明其事先没有考虑过谁忙谁不忙,谁应该做,谁适合做。在分派任务的时候这些因素是要事先考虑的。或者其根本不知道低下人整天在做什么,这应该是做领导的失误。
2. 如果手下员工不忙,而仅仅是推托不想去做。除了说明其没有事先考虑上诉因素外,还说明了其对下执行力不够,平时没有培养到足够的威信,于是有事分派不下去。
前段时间非常流行执行力的书,没有看过。也不知道这地方用执行力这个词是否合适,但没有更合适的词了,暂且这么用吧,如果用错了就算通假词:)
关于执行力我认为:第一步是对要执行任务的分析,搞清楚要执行什么;第二步是分析执行时需要的资源;第三步是执行的时间期限;第四步是执行的反馈与检查。听起来都是废话,真正做的时候好像不太容易,否则就没有那么多扯皮的事了。今天这事在第两步就出问题了,没有分析出做这件事谁最适合,导致一个个问,一次次被拒绝。这也是损伤威信的事,尤其在所有人面前,有人会想:***拒得我就拒不得?于是便拒了。如此,非集体讨论分派任务的情况下何不把人叫到办公室去分派?
威信没有建立起来,我想这和第四步有关。每一次执行结果及对其的反馈,都会对下一次执行造成影响。比如做一件事情成功了,会对下一次做类似的事情增加信心,对责任人的奖励会激励所有人;做一件事失败了,对经验的总结会对为下一件事做“前车之鉴”,对责任人的惩罚会对其他人形成警告。还是那个蹂躏定律:先蹂躏一番,以后就老实了。
威信的建立不是很简单的事,每个人性格不同,有人用怀柔之法(胡萝卜),有人用强硬态度(大棒),还有人采取中庸之道(胡萝卜加大棒)。
用胡萝卜的就是通过经常的奖励来激励他人,或者给大家描绘一个美妙的愿景,鼓动大家朝那个方向奔跑,曹操的望梅止渴就是这个方法。在这个共同方向下,大家有一定程度的自由与民主。
大棒就是经常用惩罚或命令的方式,常见于军队式的管理,令下必行,不管命令正确与否都要执行。否则惩罚。诸葛亮的挥泪斩马谡就是一例。大棒听起来挺吓人,抡出去必然使对方受伤。但是很多情况下,作为中国人,和和气气惯了,真正能毫不犹豫抡大棒的人有几个呢?
胡萝卜加大棒就是两种方式的灵活使用。说着简单做时难。
作为管理的一个环节,执行是不可或缺的。缺乏执行力的管理必然失败,导致管理者的痛苦。
路漫漫其修远兮.............
2006-10-11
你感觉幸福吗?
前几天有个纪录片介绍德国一个社会调查机构从二战结束开始调查有幸福感的人群比例,一直到现在,结果发现随着物质生活的提高,人们的幸福感非但没有提高,反而降低了。一开始觉得奇怪,想想也很正常。小时候家里除了过年很少吃肉,所以每次吃肉都感到满足与幸福,家里也不是很穷,因此隔段时间就能吃上一顿,所以就经常有幸福感。而现在只要想吃,每天都可以吃到肉(不要鄙视我:)),但是却没有那种盼望吃肉的欲望了,反而会因为担心腰上的游泳圈而控制自己口腹之快,完全没有了那种因物质生活贫乏而产生的幸福感。
和很多人聊天都有一个感觉,那就是小时候都玩得很快乐,很幸福,小时候吃的东西也很好吃,现在吃同样的东西总是没有同样的感觉,也许东西还没有变,但是感觉变了,因此留下很多遗憾。也许小孩子容易满足,也许是其他的原因。初中的时候,春天下午放学后经常拿着网,到附近的河里去捞河虾,那段时间特别专注,几乎成了每天的工作,每次都能捞不少的河虾,晚上家里就吃河虾鸡蛋汤,感觉好极了,甚至骄傲地可怜城里人“他们能吃到这些新鲜的河虾吗?”,颇有“日喝河虾汤一碗,不辞长住小河湾”之感。今日也成了当初被自己可怜的人,真的少了这份幸福感。每次看到超市卖的虾皮,只能回忆自己下河拖网捞虾的快感。
因此,幸福是一种感觉,不能说和物质生活无关,但至少不和物质生活成正比。幸福感是主观的,不能由外在的可量化的东西来度量。比如不能通过在身上装置一个仪器来测量,也不能以一个人拥有的财富来测量,而只能通过问“你感觉幸福吗?什么时候感觉幸福?.......”等问题来调查。
对于“你感觉幸福吗?”这个问题,问不同的人当然答案不同。即使问各种外在条件相当的人,得到的答案也可能不同,因为人的内在欲望是不同的,也就是感觉幸福的阀值每个人是不同的。阀值低的自然就容易感到幸福,知足常乐嘛。
上个月刚来长春出差的时候,前一个星期呆在机房里工作,每天坐在地上,笔记本架在弓起的腿上,或前面放一个纸箱,把笔记本放在上面,然后盘腿而坐,一天下来腰酸腿麻,差点去买哈腰六厂的盖中盖。一周后,终于临时办公室弄好了,搬到里面工作,有桌子、椅子,虽然和在北京的办公室相比天壤之别,但和机房相比又是天壤之别,以致一个兄弟幸福地晚上不想走了。而后来出差的同事一开始总会抱怨办公环境的恶劣,而我们这些老同志就会语重心长地对这些新兵痛陈革命家史,描述那一周的艰苦岁月。同样的办公环境,老同志会感到幸福,而新兵会觉得不满,这就是内在欲望的不同。前一周的痛苦,已经把我们的欲望阀值降到很低的水平,条件一提高便感到幸福。因此,一个兄弟总结出蹂躏定律:对于新兵先蹂躏一番,以后就老实了(好像军队里也是这么做的)。看来人真是很溅的动物:(
虽说这个蹂躏定律很简单,但很少有人愿意被蹂躏。想要幸福真的不容易,因为人的欲望是会水涨船高的,在条件低于期望的时候拼命想达到这个条件就幸福了,往往等真的达到这个条件后未等喘息内在的期望又提高了,于是又拼命追逐,条件渐好,欲望更高,到最后在他人眼里本该幸福的人只能望幸福兴叹。小学、中学、大学、工作、房子、车子、儿子.......何时是尽头?:(
欲望之所以会升级,是因为比较,往往是横向比较,每达到一个台阶,就会不自觉地和同一台阶上的人比较,而每一台阶上都会有很多人,于是不断爬高,不断和不同的人赛跑,忘记了休息,忘记了感觉幸福。直到跑进坟墓,不知到另一个世界会不会继续这个过程。因此很多人提出享受过程,而不是山顶,因为总是这山望着那山高。很多时候需要“灭人欲”,由于能力有限,又想幸福,这不失一个好方法。降低欲望,简单生活,体验幸福,不亦乐乎?
大多数人还有一个共性,那就是看别人总是幸福的,而看自己总是不如意的,殊不知在别人眼里却是相反。不知这是什么原因。也许是因为对自己自视太高,而对别人太轻视,总认为自己应该更XX,而别人就那条件,应该满足了,所以已经够幸福了。这种意识应该是潜意识的,所以看起来会像发自内心地一样羡慕别人的幸福,同时对自己的不幸感到沮丧。正所谓“人莫知其子之恶,莫知其苗之硕!”
对于“什么时候感觉幸福?”这个问题,那个节目里介绍一个专家研究的结果表明人在专注地做一件事情的时候最有可能感到幸福,只要专注,而不在于做什么。其中一个例证就是伦敦的一个松饼店里两国肯尼亚工人,十几年来没有休过一天假,一直做同一件事情:烤松饼。他们工作时感到很幸福,很专注,主动不休假。他们在专注工作中找到了幸福,找到了自信,自信他们做的松饼是全伦敦最好吃的松饼。很显然,这是一个良性循环,正反馈。
比较认同这个看法,当人能专注地做一件事情的时候,内心和行动是和谐一致的,在这个状态的人是快乐的。如何才能做事专注呢?当然不能强求,否则只是表面的专注,好比在老师眼皮底下读书,往往只是看起来很专注。同样,在老板眼皮底下工作,也有很多人是看起来很专注。能真正专注于做某件事情,一定是自己喜爱做的或者认为值得做的事。
就工作来说,选择一个自己内心喜爱的工作当然是很好的开始。这里指的喜爱是真正的爱好,而不是由于这个工作能带来高薪水、高社会地位而喜爱。一个爱数钱的人,而不是一个爱钱的人应该去做银行前台职员。大部分公司招聘的时候都会看重应聘者是否真的喜欢这个工作和行业也就是这个道理。
但一个喜欢这个工作的人招进来是否就一定能专注地工作了呢?不尽然。有很多公司行为会破坏这种专注。如下面情况:
1)努力做的东西(产品)没有价值,没有一个美好的愿景。虽然工作是自己喜爱的,但是没有人愿意做一个没有前途、没有价值的东西,即使做这个可以带来不错的薪水。
2)公司没有前途,导致员工没有安全感。在社会上没有好的声誉,在朋友和他人面前没有认同感和自豪感。
3)个人在组织内没有前途,提升机会渺茫。任何人都是有上进心的。上进不一定行政职位上的升迁,还可以是级别上的提升。管理者没有给员工清晰的职业规划,导致员工对前途感到迷茫。
4)长期做重复劳动,当然这条有人例外,比如上面提到的两个肯尼亚工人。大部分人还是希望在一段时间的重复工作后尝试其他的工作岗位。很多公司里会有岗位轮换制度,避免一个人对重复工作感到厌倦。
5)工作职责不清晰,导致每个人同时做很多事,并且都是没有预期的事,不能专注于特定工作。
6)薪水、福利不够,员工总是因为经济或其他的事情分心(比如房贷:( )。或者和同行业相比太低,让员工感到不平衡并采取用脚投票的方式抗议。
2006-10-02
Exception
看了一天的code,发现以前code inspection的目的还是没有完全达到,很多code还是写得很难理解。当时只是指出问题所在,并没有在事后检查是否修改。并且,当时由于很多新员工,这些code inspection meeting更多是编程教学,希望能够举一反三,现在看来没有完全达到目标,以后得继续努力。
例如:有人在一个方法中想返回两个返回值,一个返回值是对象,另一个是整型,于是便将整型设置到对象的某个域中,粗鲁地修改了该域的本意,以后会让维护的人以头戗键盘。
另外一个普遍的问题是方法的返回值代表了太多的含义,如查询价格的方法返回值定义了“该业务不存在”、“数据库操作错误”等的异常情况返回值。导致方法调用处理复杂。这地方应该直接抛出Exception,后继处理Exception就直观多了。项目开始没有明确定义什么时候用Exception,什么时候用返回值,下次得定个明确的规则:
1)正常情况用返回值,如价格查询只返回价格,只要能返回,一定是合法的价格。
2)异常情况抛异常,如业务不存在,抛业务不存在的异常。
2006-10-01
“工欲善其事,必先利其器”与2x
公司从今年开始2x运动,简单理解就是相同时间内一个人完成两个人的工作。
工作成果 = 工作效率* 工作时间工作成果*2 = (工作效率*2)* 工作时间 = 工作效率*(工作时间*2) = (工作效率*m)*(工作时间*n)
所以,要达到目标,方法是:
1)工作效率提高一倍。
2)工作时间延长一倍。但总工期要求不变,必然经常加班。
3)工作时间,工作效率同时提高。
最痛苦的是2),工作时间延长一倍,经常加班,导致很累,疲劳,进而导致工作效率下降,工作成果减少,进入恶性循环。
理想的情况当然是1),工作效率提高一倍,工作时间不必增加,不必加班,对公司来说达到了利润增加,对员工也不会造成利益损伤。效率提高也就是“聪明”地工作,而非一味“勤奋”地工作。
最近就有一个例子:上个月一边出差一边用几个晚上完成了一个数据迁移工具,具体功能就是把旧系统数据文件转换成能导入到新系统数据库的数据文件,要做的是从旧文件中抽出特定的几列,加上一些新的固定数据列,构成新文件。为了实现这个需求,用java实现了一个数据转换器,其读取用xml定义的配置文件,从而能从任意从数据表中导出的数据文件转换到新的数据文件格式。写完代码并测试后,甚是自鸣得意了一番,认为自己实现了一个功能强大、配置灵活的数据迁移通用工具,不光能在这个项目中用,也可以在以后的其他项目中使用,减少以后重复开发的花销,达到了2x。然而,今天偶然在网上看到介绍solaris系统命令的资料,发现awk命令就可以实现我写的那个工具的功能,例如:
awk '{printf ("%s\t%s\t%s\n", $2, $1, $3) }' checkbook.orig > checkbook.new
顿感高兴而又郁闷,高兴的是学到了一个功能强大的命令,郁闷的是自己闭门几日造出了早已存在的车,白白浪费了精力。
还有,也是那几天,为了把windows传到unix系统上的文件格式从Dos格式转换成Unix格式,也写了一个小工具,代码不多,就20来行,但今天在同一个网页中发现了另外一个命令du,又是一辆存在已久的车。
前天晚上,为了解决一个系统性能问题,想出了一个比较复杂的方案,应该能够很大提高操作性能。第二天和同事讨论的时候,发现他们用一个更简单的方法,利用的也是现成的Unix命令,用sort + uniq实现了我的复杂方案所具有的功能,并且效率应该更高。
这些例子都说明了一点:我对Unix了解的太少了:( 以至于做了很多重复无用劳动,这违背了2x的原则与目标。
工欲善其事,必先利其器!要达到2x的目标,此理不可不查。
2006-09-21
记录
可能是由于懒惰的原因,上学的时候很少记笔记,即使随潮流记了,也很少看。这个习惯到现在就是很少记电话记录、讨论记录、会议记录,总是用大脑记。偶尔,过一两个月会想不起来当初做的某个决定,比较糟糕。
今天又因为这个被“揍”了。客户改变了主意,让我们改方案,我们想找他们的负责人协调这件事,负责人说只有拿出以前的讨论结果记录才能去据“录”力争。搜遍了相关email也没有找到相关的记录,郁闷至极。而这个负责人会因为我们的某些改变而翻出某年某月某日的电话记录或email等等,质问我们当初那么说为什么现在又这么说,让人不得不服。
一定要养成良好习惯,工作中和人打交道一定要留下文字记录。
1)当面或通过电话讨论的问题,事后一定及时记录,并且通过email发送给对方确认,留存。
2)会议一定要有会议记录,包括各种讨论会,review meeting。
Team内应该有一个集中的记录blog或wiki,各成员不断添加,经常阅读。讨论结果留在大脑中只有特定人知道,放在公共的地方就可以大家共享,不至于经常出现:“不能怨我,那个会议(讨论)我没有参加,我不知道。”。
秋后算账得有账本,空口无凭!
2006-09-19
第六感? or 乌鸦嘴?
今天晚上从机房回来的时候,另外三个同事打了一辆车,我和另一个同事打一辆车,由于只有两个人,所以我们俩都坐在后排座上,而空出了平常是我专座的副驾驶座。
上车的一霎那,想起这个同事说的他一般不坐副驾驶座,因为如果出事故,那个座位最危险,顿时有种想法:如果今天出事故,我在后排应该没事,那多凑巧啊!
不知是巧合,还是我的意念起作用了,半路上真出事了,在过一个红绿灯的时候,车速较快,从十字路口的横向突然冒出了另一辆车,我们乘的车一下子就撞到那辆车的后侧面了,把那辆车撞到路边的人行横道上,幸好晚上路上没有人,否则又有人会遭受这“撞”来横祸。我们乘的车保险杠完全被撞掉了,那辆车的后部也瘪了。
之前我们在车内聊天,也没有注意红绿灯,更没有意识到会有突发事件,所以毫无准备,同事的鼻子被前面坐椅背撞了一下,看了看没有流血,问题不大,我的膝盖也撞到了椅背,下来走走啥事没有,只擦破了点皮。赶紧庆幸今天没有坐在副驾驶座上,要是在那个位置,这样的撞击,脑袋估计会撞到前面的挡风玻璃上,估计得开个“小花”,明天就得在脑门上“戴手表”了。
真得应验了上车时的怪想,典型的乌鸦嘴,抑或是神秘的第六感。Who knows?!
其实这也不是第一次和事故车打交道了,还有更惊险的一次。
很小的时候,怕路上的车,每次车一来就远远躲开。一次和大人们在路上走,他们推着东西,我就在路边走,远远地就看见后方(大概一公里外)一辆很大的拖拉机驶来,赶紧靠路边走。可是当拖拉机很接近的时候,可能是由于紧张,有点晕头转向,稀里糊涂,不知怎地就窜到路中间去了,由于拖拉机已离我很近,为了躲开我,司机狠打方向盘,拖拉机一下子就翻倒在路边的水沟里。幸亏这个司机,捡回了一条命:)。很幸运的是,那个司机也没有受伤。
心有余悸,同时为了运动一下,吃完饭我们就没有打车回来,花了半个小时走到宾馆:)
决定以后两个人打一辆车,把副驾驶空出来。长春的出租车司机开车实在太猛了 :(
2006-09-17
完美主义
昨天吃饭聊起人的性格类型,有人分析说我是完美主义者,我自己倒没有意识到,应该是他们看错了。毕业找工作前做过学校的一套性格测试,我只记得内向方面得分很高,是个超级内向的人,至于是否完美主义倒不记得了,应该得分不高,否则肯定能记住。
这么一说,倒想起两件事。
大概四五岁的时候,有件事情很困惑,就是湿毛巾怎么也拧不干,怎么拧都还是有水,于是要拧很多下,还是认为拧得不干。而看大人们一下就拧干挂起来了。这事很是烦恼了一阵子,某天和一个大我一岁的表姐一块洗脸,看她也和大人们一样拧一下子就挂起来了,于是便问她怎样才能拧干,她说她以前也有同样的烦恼,具体说怎么学会的忘了,记得最后说我再大一岁就会了。于是这个问题便放下了。随着慢慢长大,这个问题也不成为问题了,慢慢地也和其他人一样拧一下就算干了。也逐渐明白,没有人会因为毛巾还有点水就不停地拧,除了那个傻小子:( 如果说现在的我是完美主义者,那四五岁的我便是完美主义者中的完美主义者了。
本科的时候有一个学期利用周末在外面做专利申请文档翻译,找这个工作当然是为了挣钱,敢找这个工作是自认为自己的英语还不错,但是在翻译的过程中还是比较痛苦的,痛苦的不在于累,而在于老怀疑自己翻译的不正确,因为专利文档为了描述上的严密,一句话写的很长,往往一段就是一句,中间嵌套了好几个which、that,所以翻译起来很痛苦,很怕断错位置,把意思翻译错了。另外就是读英文容易理解,但是要翻译过来,用合适的词汇表达出来又困难了,总是不确信用词是否恰当。当然我翻译过后还有人校验,每次的结果都不错,没有啥问题。但自我怀疑的痛苦始终没有去除。
其实现在工作,偶尔还是有这个痛苦,不确信设计的构架是否考虑了所有情况,程序里的异常是否都捕捉完了,等等......好在有review机制,可以缓解一下这个压力与痛苦。
上面所说的这些烦恼有一个共同的特点,那就是这些事没有一个完成的标准,准确地说烦恼的我不知道完成的标准,因此总是怀疑自己是否完成,希望做得更好。极端一点,就变成完美主义了。自我怀疑、多疑也是他们判断我是完美主义的一个证据。其实,毛巾是否拧干了、用词是否准确、断句是否正确、设计是否考虑了所有情况、程序是否清除了所有bug等等都不可能有彻底的完成,所有的只是完成到什么程度。定义下这个完成的标准,判断是否完成就相对简单了,痛苦也会减轻。
有可能我没有意识到我潜意识里还是完美主义者,但是我认为完美主义是要不得的。尤其在软件开发中,永远做不到零bug,所能做到的就是控制bug的多少、影响程度等。软件开发的复杂性决定了bug的存在,需求的不断变化决定了enhancement的存在,资源(时间、人员、人员的技能)的有限决定了不可能清除完所有的bug、实现所有的功能。因此,完美主义者做软件是痛苦的,在产品设计的时候会因为需要抛弃很多功能而痛苦,在方案设计的时候会因为没有一个解决所有问题的完美方案而痛苦,在编码的时候会因为无穷无尽的exception、bug而痛苦,在准备发布的时候会因为系统还存在bug而痛苦。而现实是残酷的,从来就没有人开发过完美的软件。事实上也不需要完美的软件,需要的仅仅是好用的软件,在特点用户群中使用的软件,由于针对的是不同的用户群,软件的完成标准自然也不同(Five Worlds)。因此,软件开发不需要完美主义者。
不需要完美主义者,不代表我们可以没有目标,相反,需要的是明确的目标,为了达到目标,需要在各种因素中做平衡,即balance & trade off。目标明确了,才能在需要的时候迅速作决策,不至于等到“黄花菜都凉了”。比如写一个只自己用一次的工具,则可读性、可维护性这些重要指标是可以放弃的,用来换时间。
但是,作为一个合格的职业程序员,即使是做一个只自己用一次的工具,也不会在可读性、可维护性上差到哪儿去,因为这些已经成为习惯、成为品质,是很自然的事,而不是通过完美主义者的追求才能得到的。
因此,对单独的软件开发来说,不能追求完美。但是作为软件开发者,可以把完美作为一种持续的追求,以便沉积为内在的品质。就像手艺好的工匠一样,手艺是平时练成的,而完成一件作品时需要考虑这件作品的用途,再决定怎么做。
Review & Inspection
这周进展相当不顺利。让我上火的两件事:
1. Web service接口代码不可用,测试发现走不通,在公司根本没有测试过。一开始发布不出去,折腾一天终于可以发布出去,用模拟的客户端一调用发现代码代码根本走不下去,于是逐行单步调试修改,几乎每两三行就有错误,居然有的逻辑表都查错了,需求没有处理的地方也很多。费了一天的功夫调通了一个case,把实现的方法作为例子,发回北京修改,直到今天他们还在修改测试,通过这两天的交流,发现他们已经清楚问题所在并且解决了,下周一拿到这测一下应该没有大问题了。
2. 第三方开发Web portal页面逻辑性不够,对用户不够友好。逻辑层有些代码更是不堪入目。定购部分代码if...else...层层嵌套,没有140的智商休想快速读懂,这样的代码当然漏洞百出。今天把他们的人叫过来,花了半天时间进行页面检查、重构代码。当场演示如何重构代码,把那些垃圾代码逐步重构成可读代码,在重构过程中修改了逻辑上的很多bug。再次证实了:复杂的代码不是必须的、通常是有问题的。复杂的处理过程不代表一定要有复杂的代码实现,只有简单的代码结构才能正确地实现复杂的处理过程。在重构的过程中,结构一简化就能发现很多隐藏的bug,在复杂的结构下面,理解每行代码都很困难,不要说一眼就看见bug了。
有那些绝佳的反面代码,加上对这段关键代码的重视,相信放在课堂上这是一个精彩的重构讲解课,但不知他们能领悟多少,下次提交的代码是否能更接近可用代码一点?!
这两个问题几乎同时发现,倍感压力,一个是内部问题,另一个是合作方问题。对于合作方的问题原因这里先不说了,这里的“妖”事太多。对于内部的问题,细想下来,还是我的错误,一时疏漏,工作没有到位,导致大乱。
没有到位的工作现在看来是 review & inspection.
项目前期的review & inspection做的还是挺好的,后期由于各种压力太大,没有能够很好地坚持下去,导致失误。
由于采取的是整个team一起review,到最后代码越来越多,review占用的时间越来越长,逐渐负担不起,于是有的马虎,追求速度。另外,项目中由于人员有限,没有人专门写test case,代码过后的UT几乎没有做,直接feature test,test case就由代码的开发者进行写出,写出后我看了几个人的,都太简单,没有真正意义上的test case,于是发email发comments给全组,没有大家一起review,只是让大家重写。事后又由于其他事太忙,没有好好重新全部重新review,相信大家都能认真对待自己的工作。这样最后一关也丢失了。于是出现一点问题也就不算奇怪了。
学费就这样付了,总得学点东西,总结如下:
1. Review & Inspection 很重要。
2. 开发过程中需要Review 和 Inspection的有:requirement、HLD&LLD、Code、Test case、Schedule & Plan
3. 每种Review都要有开发流程的上下家,以保证没有遗漏需求、任务等。
4. Review 有三个目的:
1)相互学习
2)找问题
3)加强交流,沟通
team成员不仅要了解自己手中的一亩三分地,也要对项目有通盘理解,以便做到整体系统的可能,同时降低项目由于某些人离去或其他情况带来的risk.
5. Review人员尽量多元化,保证各种人关注各个方面,没有盲点。
6. 对于一个新项目组而言,代码的风格,组员的习惯各不相同,需要统一,可以利用Code Inspection。
需要在code的第一周就进行code inspection,无论大家是否完成了多少完整功能的代码,只要有足够的代码进行共同学习即可。因此需要全体参加,当作讨论学习课,确定以后的统一风格标准。第二周需要继续进行,以检验代码是否按照上周inspection结构进行修改,巩固风格标准。由于全体参加,review全体代码,会花费相当多时间,造成效率低下,形成时间压力。
如果两轮过后目标基本达到,则可进行部分人员参加的inspection,inspection的间隔也不一定是一周,每个人可以选择合适的时间进行,最好完成一定的完整功能代码后进行inspection。
7. 保证所有需要review的内容都进行review,而不能由于时间等压力就在review上省时间。
8. Review 可以先做homework,在meeting上讨论review的结果。如果时间比较紧张,也可以不homework,大家直接在代码的讲解过程中进行review & discussion。这种review需要参加者精力高度集中,作者要按照scenario进行walkthrough。
9. Review结果一定要指定人验证是否按照结构进行修改。
10. 要让参加者积极参与、贡献自己的智慧,可以分为普通reviewer,critical reviewer,critical reviewer必须给出review结果。
2006-09-12
Axis Server.userException NullPointerException
Exception in thread "main" AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.NullPointerException
faultActor:
faultNode:
faultDetail:
java.lang.NullPointerException
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder
.java:260)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.
java:169)
at org.apache.axis.encoding.DeserializationContextImpl.endElement(Deseri
alizationContextImpl.java:1015)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source
)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknow
n Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContent
Dispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un
known Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContextImpl.parse(Deserializa
tionContextImpl.java:242)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
at org.apache.axis.client.Call.invoke(Call.java:2553)
at org.apache.axis.client.Call.invoke(Call.java:2248)
at org.apache.axis.client.Call.invoke(Call.java:2171)
at org.apache.axis.client.Call.invoke(Call.java:1691)
Googled. Thousands of matched pages returned. Checked the previous pages, nothing helpful.
Finally, through debugging server side codes, found the root cause, it's just common Exception. Just because used third party framework or tools, it hides the low level exceptions, it makes debug painful :(
Google can really help in work, but it's not enough. It returned too many results and not accurate. It wasted a lot of time.
Where can I found such a search engine, it purely collect all kinds of problems and it's accurate solutions?
I think the knowledge search engine should have three features:
1) Understand questions.
One question have many kinds of expressions. Different people have different expression method, the search engine should understand what people really wanna ask.
2) It should return as few results as possible.
Too many results will drown people. It will waste too much time to find the useful answer.
3) It should accurate.
The results should answer the questions, not just match the words of questions. It should be tested by many of users. That is, it have been proved to be real solution.
4) It should be dynamic.
The results should be ordered in some extends by human beings. People find the useful answer will have an easy way to mark it. Then the result will have bigger weight in searched result order.
2006-09-09
2006-09-07
2006-09-03
总有坏汤的鼠粪
正沉浸在刚才遇到大胡子司机的喜悦中,怀着对长春出租车司机的美好印象,乘坐一辆出租车返回,却不料遇上了“坏汤的鼠粪”。
车刚要到的时候,此司机看到前面一个女孩要打车的样子,便把车开到女孩面前,催促我们下车。我把钱给他,还没等找钱给我,又催我下车,我下车他把钱递给我,我要发票,却态度很恶劣地说没有,着急去拦那个女孩,那架势看着不是像去拉人,倒像要去驾车撞人复仇。我和他吵了几句,同行的人说长春这样的人多的是,劝我算了,想想也就几块钱的车票,便算了,把车门狠狠地一甩,让他走了。
人和人的差别咋这样大呢?!正反两面的基地都让我来回碰到了,物极必反?让位高兴之时也气愤一下。和气生财,为了争取一个顾客而在其面前和上个顾客吵架,能让人敢坐或乐坐他的车吗?!
在停车的过程中,女孩就走了,其实,我如果要打车,看车里如果有人要下,都会等到人下完再上,而不会因为看人没有下完就叫另一辆车。
所谓:命里有时终须有,命里无时莫强求!
2006-09-02
大胡子司机
前段时间网上流传一个MBA司机的故事(出租司机给我上的MBA课),读后颇感受教,没想到今天在长春遇到了同样令人惊叹的出租车司机。赶紧把经过写下来,与诸君共赏。
晚上从乐府酒店出来,上了停在酒店门口的一辆出租车,一上车便看到司机一尺多长的花白大胡子,光头,挺有个性。
车启动后问了我们到哪儿,便说:“大概12块的车费,我这是酒店门前的车,讲究的是诚信,不宰人,一般住这酒店都是外地人,对长春不熟悉,都会有被宰的担心,我一开始就告诉您多少钱,剩下路怎么走您就放心了。”觉得这个司机很特别,乘过这么多次出租车,除了黑车或不打表的,还没遇上一开始就主动告诉大概要多少车费的司机。
接着便热情地和我们聊天,问我们有没有注意到旁边的建筑的特别之处,我们回答没有,便给我们介绍说是省委,特别之处在于是伪满时期的关东军司令部。聊着聊着就聊到了脸上的大胡子。我们问留了多长时间,他说十年了,从开出租车那天开始留的。这时又买了个关子,让我们猜他留胡子的原因,并且说出了四个首先排除的答案:纪念某事、迷信、爱好(最后一个忘记了),让我们猜他留胡子的三个原因。想了一会儿,除了这四个原因,还真想不到还有什么原因要留这么长的胡子,于是让他公布答案,下面便是他说的大概内容:
第一,让人记住我,一般坐我车的人再坐我的车都能认出我,大胡子显眼,容易记,全长春没有出租车司机留这么长的胡子,全国也少有,所以一年以后您再坐我的车也会记得我拉过您。
第二,乘客绝大多数不会看车牌号码(长春的出租车票为手撕票,没有车牌号),万一丢了东西很难找到司机,我这大胡子在这,您一上车,不用记车号,等发现东西落下之后,只要往交通队打个电话说乘的是大胡子司机的车,他们就知道是我,给您联系方式,这么就解决问题了。我不是想要争取什么学雷锋的名声,只是这是基本的诚信问题。
第三,对你们也适用,做人要有自己的个性,不要管别人怎么说,俗话说自己脸上的嘴有时候都控制不了,怎能控制别人的呢?!要活出自己的个性,别人想怎么说就怎么说吧。你们要是去年(前年?)这时候坐我的车,还会看到我的长发。为啥把头发剃了呢?是因为那时候萨达姆被抓,人都说我太像被抓时的萨达姆了,有乘客还说要举报。那时候一等红绿灯,人都瞅我了,比大姑娘走在街上的回头率都高。(边说边找出了驾驶证,上面的照片真得酷似萨达姆!)
太精彩了,如果上上海的那个司机很成功地应用了数字管理与对顾客的细分,这位长春大胡子司机就是成功地应用了品牌战略,树立了易记、诚信的品牌形象。让顾客主动记住他,而不是他来记住或分析每个顾客。
我们很自然地问了一个很俗的问题,每月能挣多少钱。大胡子很自豪地说:
4900左右,在长春这地方也算很好的了。主要是顾客认识我,相信我,北京、上海的乘客往往再来上海的时候都提前告诉我什么时候的飞机,我就去机场接。只要告诉我什么时候的飞机,我一定提前去等,我的原则:只有我等您的,没有让您等我的。等一出机场,一眼就能看见我,大胡子,不需要您来回寻找。
乐府门前有18台车,其他17台都印有名片,我就不印,得乘客自己记,我的号码也不好记,得记在手机上,并且我不告诉我姓什么,记姓名过不了几天就忘了,直接记大胡子,永远忘不了。(我想起了很多司机递给我的名片,往往是往口袋一放就没有下文了)
等我们把号码记完,目的地也到了,计价器上不多不少,正好12块!
(以上为真事,相信有很多人还记得这个大胡子,他说的话也许记得不是十分准确,我尽了最大努力来回忆。为了保持连贯性,中间我们的插话也没有记录)
2006-08-29
好而知其恶,恶而知其美者,天下鲜矣!
很容易理解的话,大实话。
书店里充满了名为《金牌**法》《万能**》《反***》《驳**》等的书,各种培训的课上讲师们也不谴余力地鼓吹各种“神术”,同时痛批同此“神术”竞争的“巫术”。
所谓爱的盲目,恨的入骨。对软件开发来说,“神术”即通常所谓的“银弹”。遭受软件开发“折磨”的工程师或管理者都在不停地寻找“银弹”,以便早日脱离苦海。在此过程中,时不时地有人宣称找到或发明了“银弹”,于是大家一哄而上,争先恐后地按照“银弹宝典”的指导炮制使用“银弹”。有人满意,有人失望,满意的人奉之为“神术”,失望的人视之为“巫术”。时间过的越长,满意的人越少,失望的人越多。于是又有人站出来宣称找到或发明了另一种“银弹”,新的轮回开始了......(Life Cycle of a Silver Bullet)
对于“环境”(软件类型、需求、技术要求、客户、管理者、员工等因素)依赖太多、不可重复的软件开发,何来标准化的“银弹”?所以我宁愿相信没有“银弹”就是“银弹”,也不相信有同一标准的“银弹”。开始一个项目前,不可能选定一个公开的、标准化的开发方法。而只能针对项目情况,针对目标设计方法。具体的方法很少能完全clone到另一个项目中,具体方法而只能随需而变。不变的是一些准则。
等目前的项目结束后再对此进行总结。先打一个欠条:)
2006-08-27
手术减肥法与系统论
中午看CCTV10的人物节目,其中介绍了一个海外华人外科医生(名字忘了),发明了一种新的手术减肥法。对我来说还真是很新奇的方法,以往关于手术减肥只听说过吸脂,其它的就没有听说过了。而今天的节目介绍的手术减肥是在源头上动手:在胃上作文章。
其中介绍:以往的手术减肥中使用的方法是切除一部分胃,这样胃里能装的食物就减少了,人体吸收的营养也相应减少了,营养过剩的问题自然就解决了。可是胃是人体器官,为了减肥而切除一部分终归是不好的,短时间的确能达到手术目的,长时间却显示了副作用,对手术对象产生伤害。而此医生的新方法是使用一种简单装置,在胃的外面某个位置套上,具体位置得看想达到的效果而定,这样就限制胃的容量扩张,有效容量下降,也同样可以控制进食量,达到目的。
从未想过如此手术方法,听起来感觉有点疯狂,居然为了减肥要对胃动手术。可是节目结束时那个医生的一句话却给人以启发:中国同行的手术技巧没有问题,缺少的是对系统的掌握。
也许这句话的本意不是我所理解的,但的确帮助了我的理解。
的确,人体是一个系统,从进食这个过程来讲,有外部输入、内部处理、输出。减肥是输出过剩的问题,很显然问题的解决可以在各个环节进行。
1. 外部输入
外部输入包括食物的获取,通过口腔进入人体储藏室:胃,作为储藏食物功能的胃应该还算作外部输入部分。这部分的控制最常见的就是节食,有意识的控制进食量。对胃动手术的方法今天是第一次听说(孤陋寡闻了:( )。
把进食量控制在正常范围应该是很好的预防肥胖方法。
能否把食物中加入一种调料,减少口腔感觉到美味,自然降低进食量?当然应该是可以的,不过谁能忍受难吃的食物呢?如果吃的都是难吃的食物自然不会有肥胖的问题。人的本性是爱吃美味的,“食色,性也!”,不可违背。除非在困难的时期,食物供应不足,这也就是社会经济发展到一定程度之后才有广泛的肥胖问题的原因。
2. 内部处理
就是肠胃对食物的消化。
其实切去一部分胃也在消化上起了作用,对营养的吸收面积变小了,当然营养吸收的也少了。不知道有没有切除一部分肠子的,应该也能达到减肥的目的。
除了对肠胃进行“裁员”之外,有意识地降低其效率也是手段之一,一些减肥药应该就是减少肠胃的吸收效率。
由于身体系统异常复杂,各单元的功能不是单一的,所以对单元的功能改造或控制往往会产生意想不到的后果,会影响系统其它部分,例如切除部分胃虽然达到减肥目的,但是也会引起其它问题。
最终吸收的营养一部分被立即消耗掉,另一部分变成脂肪被存储起来。所以这里也可用加以控制,即提高第一部分的比例,也就是常见的运动减肥(适度运动)。
3. 输出
最终产生的脂肪就是输出,也就是肥胖问题的表现,脂肪堆积过多。处理方法也很直接:消耗之。方法也是形形色色:
饥饿法:摄入的食物少于人体需求,则人体会调用战略储备--脂肪。这种方法短期有效,但如果一旦停止饥饿,身体会进行疯狂储备,因为饥饿时对储备的使用增强了储备机能的能力,好比经常打仗的国家的军队机构的能力不会太弱一样(在和平年代,各个国家也会经常进行军事演习,以保持战斗力)。于是体重立即反弹,减肥宣告失败。
大量运动法:通过超出正常量的运动以消耗多余的脂肪。缺点和饥饿法一样,容易反弹。但是运动会增强身体系统其他单元机能,即使减肥不成功,对系统总体还是有好处的。
抽脂:直接物理去除脂肪,只耳闻,不知长期效果如何。
还有就是前段时间电视里广告狂轰乱炸的仪器“燃脂”,现在都不让上电视做广告了,看来是骗人的。
有些减肥药也是号称能排出脂肪,不知是否骗人的,宁可相信其是骗人的。
总之,一旦积累过多脂肪,想清除之就难了。并且开了个头之后,还有继续加重的动力,因为越是肥胖,行动越不变,运动量减少,导致更加肥胖,恶性循环。(又曾听一较胖的朋友在吃饭的时候深情地盯着红烧肉说道:“越胖我是越想吃肥肉”)
看似简单的减肥实不简单啊,因为人体是复杂的系统,动一发牵全身。从上面分析来看,在输入进行控制最有效;内部处理处进行手术控制可减肥,但引起的后果不可接受;输出处已经没有啥好方法了。
鉴于本人已轻微超重,一定要从现在开始做到:
控制饮食,加强运动
2006-08-25
反击->人之其所亲爱而辟焉
鉴于“奸商”借此“大规模杀伤性武器”(人之其所亲爱而辟焉,之其所贱恶而辟焉,之其所畏敬而辟焉,之其所哀矜而辟焉,之其所敖惰而辟焉)对人民群众犯下滔天罪行,我院决定“替天行道,为民除害”!现免费公布我院镇院秘籍《葵花宝典》之《多情大法》:
人之其所亲爱而辟焉,击之以多情,继之以分析,敌可退也!
既然无法去除因为主观情感而对人、物、事产生偏见,那么可以以毒攻毒:多情,对更多的人、物、事都“亲爱”、“贱恶”、“畏敬”、“哀矜”、“敖惰”,那么从对特定对象的偏见,扩展到对多个对象的偏见,当受偏见的事物多到一定程度,偏见也就不成为偏见了:)
低档过敌人的第一轮进攻,再轮起冷静“分析”之刀,岂有不胜之理?试看如何破敌:
1. 名人广告
多爱几个同类名人,这些名人很大可能会代言竞争产品。于是对名人的偏爱效应相互抵消,这样选择的机会就多了,继而会进行分析比较,这时候往往会去关注最本质的方面:产品的功效。进而会考虑更多的产品,而不仅仅是所喜爱的名人代言的几个产品。
2. 儿童、女人市场
暂无解法,切勿轻用《多情大法》,否则后果自负:)
3. 恐吓式推销保险
爱安全,更爱现金。没有免费的午餐,也不会有免费的保险。所谓的保险只是以固定损失代替随机损失,保险公司公司要赚钱,所以从概率上计算,办保险之会使人更“险”。所以不要被这些别有用心的推销员所吓倒。要仔细考虑、选择,再理性地决定是否办理此保险。(必要的保险还是要办理的,这里要反击的是这种恐吓式推销方式)。
4. 对比推销
对于特意安排的极端对比物,要以正常心看待,不合适就屏蔽之,相信有很多合适的对象在等待自己(真多情也,呵呵),不要匆匆做决定。货比三家嘛。
如何?敌人逃跑了吧?:)
敌人逃跑了,可谁来维护治安呢?“奸商”跑了,谁来提供生活必需品啊?
只能靠自己了,大家自救吧,成为有品行的商人,为大家提供服务。
既然众人皆有“人之其所亲爱而辟”的特性,良商也可用之,只是不能像“奸商”那样投机取巧。
1. 供应商
对待供应商,要分财、双赢。只有让供应商有利可图,有生存的空间,让其产生“亲爱”之感,才可能源源不断地提供高质量的原材料。
2. 内部员工
对员工的管理要体现人性,体现关怀,让大家对企业产生认同感,认为在其中做事是为自己做事,而不仅仅是用时间和劳动换钱。唯有让员工的心理和行动一致,才能真正发挥最大生产力,否则一切管理技术手段都会被有意破坏,尤其对软件开发等知识性生产更是如此。(Identity Management)
3. 顾客
要让顾客“亲爱”的不是某个花钱请来的所谓名人,而是企业本身的形象、本身的特质。企业存在的本质应该是服务社会,赚钱只是手段而已。所以,可以通过加强产品质量等真功夫取得大众喜爱。另外,也可以通过多参加社会公益活动来提升企业形象。总之,要让人爱上的是企业本身和其产品而不是其它。
要之,无它,惟诚其意也!
BTW: 您爱上本院了吗?:)
2006-08-21
人之其所亲爱而辟焉
人之其所亲爱而辟焉,之其所贱恶而辟焉,之其所畏敬而辟焉,之其所哀矜而辟焉,之其所敖惰而辟焉。故好而知其恶,恶而知其美者,天下鲜矣!
朱子注曰:人,谓众人。之,犹于也。辟,犹偏也。五者,在人本有当然之则;然常人之情惟其所向而不加审焉,则必陷于一偏而身不修矣。
也就是众人会因为自己的主观情感而对人、物、事产生偏见。所以要齐家平天下就必须去除这些主观情感,认清事物在本质。这样当然是必要的,总不能带着有色眼镜去观察化学实验吧。尤其是偏见会导致有选择地观察,而这个观察结果又反过来支持偏见,由此导致正反馈循环,走向两个极端。
所以君子的逻辑得出,同志们得修身正心,去除偏见。奈何同志是越来越少,不是我军太弱,实乃偏见太强!于是,土匪的“奸商”们乘机摘取胜利果实,纷纷抢占领地,所犯罪行罄竹难书,简列几条:
1. 名人广告
绑架众人所喜爱的名人为期代言产品,诱使众人相信自己喜爱的名人喜爱其产品,于是“人之其所亲爱而辟焉”,爱屋及乌嘛,我崇拜的***让我用(做)**,岂有不买(做)之理!
2. 儿童、女人市场
同理,“人之其所亲爱而辟焉”,岂有不掏空腰包的道理?!
3. 恐吓式推销保险
此等敌人深知“之其所畏敬而辟焉”,首先就告诉你发生意外的结果有多么地惨,吓得你赶紧求他/她帮你脱险,于是你就入了保险(保险者:保你有险也,每年都有固定的险)。
4. 对比推销
首先给你看特烂(贵)的东西,让你产生“贱恶”之感,再给你一个较正常的东西,于是你毫无防范“而辟焉”。
......
这些“奸商”的招数太多了,岂有不中招之理?中招后那个惨呐!......
不过,倒是有武林秘籍可以轻松战胜天下“奸商”,此秘籍只在我院“葵花宝典速成班”中正式传授(东方不败教授为本院客座教授,令狐冲为本院一期学员),咨询电话:012-12345678
......
2006-08-20
君子必慎其独也
诚于中,形于外,故君子必慎其独也。
大意:平时好的意念和想法也可以在行为中表现出来,所以君子要谨慎自己在独居、独处时的言行、行为。所谓慎独,就是人们在独处之际仍能保持道德的操守,独善其身。
君子的标准中有这一条,就淘汰了吾等俗人。小时候,在家长老师面前表现的老老实实,一离开就像大刑释放,各种“坏事”(如偷摘人家菜园里的瓜果、抄袭作业、打架等等)都尝了个遍;长大后,在众人面前也是做斯文状,底下朋友间出口成“脏”(相信住过高中或大学宿舍的同志们都同意这点,呵呵)。
所以成为严格意义上的君子是没有希望了:( 那就努力做个“伪”君子吧。
1. 做事相信“头上三尺有神灵”,不做违背道德的事,人民的眼睛是雪亮的!
2. 不在背后说人坏话。
3. 对于专业上的东西,不能因别人不懂而蒙骗别人获利,童叟无欺。
如此,则可意诚,可“富润屋,德润身,心广体胖”,不怕半夜鬼敲门:)
2006-08-13
人之初,性本善 vs 人之初,性本恶
到底是性本善,还是性本恶,至今也没有统一结论,相信也不会有统一结论。
儒家(孟子)提出人之初,性本善。但在人生中会被环境影响,会变恶,所以要接受教化,以避恶从善。因此,政府的主要任务也就是要教化民众,使万民止于至善。方法是以圣人为榜样,以圣人的言行为行为准则,当时公务员考试也主要考圣人之书。理想的情形是:天子圣明、大臣有德行、人民纯朴驯从,从上至下,井然有序。
由于儒家的胜利,性本恶的思想在中国是不被广泛认同的,但在西方文明中是被广泛认同的,由于认定人性是恶的,所以要用外在规则来约束,结果是他们注重法制,而不依赖于纯粹的道德约束。
人性恶,并不一定代表会对社会带来危害。比如,经济学的开端,是认同人是自利的,会努力争取最大利益,这点看似有悖于社会利益,其实不然,当人人追求利益最大化的时候,也无意中对整个社会带来了利益,善哉,善哉。相反,中国封建社会的轻商倒是对社会的进步形成了阻碍,罪过,罪过。
从实际结果来看,西方的认定“人性恶”而引发的法制观念更为成功。但儒家重教化的做法也是很有意义的,根据认知不协调理论,受教向善的人会产生决策后不协调,而为了减少这种不协调,人们就会相信行善是正确的选择。
正如书中引用的一段话:
1. 如果你希望一个人形成对某个事物的积极态度,那么就引导他,使他致力于得到这个事物。
2. 如果你希望一个人对某种错误行为的道德判断变得温和一些,那么就引诱他做出这种行为(拉人下水,可怕)。相反,如果你希望一个人对某种错误行为的道德判断更加强硬,那么就引诱他,但不足以使他做出这一行为。
如此看来,无论人性善恶,都可以引向反面,可喜可怕。
2006-08-12
难以自拔的沉没资本
江西卫视正在播出《传奇故事》,今天的故事题目是《金钱与爱情》,内容简单转述如下:
浙江的苏先生通过征婚启示结识了深圳的梁小姐,十多天后梁小姐对苏先生哭诉经济有困难,苏先生立即伸出援手,把自己的房子卖了,给了梁某18万,此后又屡屡寄钱过去。一年过后,当苏先生想提出结婚的时候,梁某却露出狐狸尾巴,提出更多的要求,并且要苏生写声明以示诚意:以前给的钱都是自愿行为,与最终是否结婚无关,任何情况下无权索回。按说苏生此时遭此当头一棒应该清醒了,可是为了证明自己的诚意,苏生写了这个“卖身契”,此后又荒唐地给梁某打了一张子虚乌有的5万元的欠条给梁某,以后的寄钱变成了还债。直到梁某看到以榨干最后一滴“心血”,亮出上书“狐狸”的身份证才追至深圳,诉诸法庭。故事结局......不重要了......
(鉴于看客中有部分强迫症患者,非得知道结局,否则睡不着觉,公布结局:通过两场官司,赢得了索回权,但是有没有最终拿到钱......我也不知道......一愣神儿结束了......)
之所以说结局不重要,是因为其过程就很有意义。
在旁观者看来,苏生中间有很多机会看到梁某的本质,赶紧“撤资”,也许有人会认为当局者迷,苏生被所谓的爱情迷住了眼睛,没有意识到梁某一直在欺骗他,似乎有理,但是从电视中介绍看来,苏生中间是清楚梁某已经不爱自己了(开始的时候爱吗?不得而知),可是为了挽回逝去或本不存在的爱情,又不得不一次次地继续投资......
这正验证了《决策与判断》中提到的“决策前不协调”理论,此理论认为:
当人们为一件事情付出越多,他们就越认为这件事有价值,而且越有压力为这件事情继续付出。这一原则不仅适用于购买商品,也适用于为了某一目标而做出的任何承诺和努力......
当苏生发现的时候,已经投入很多,于是认为这件事有价值,于是越有压力继续付出......
即使“理性人”都认为沉没资本应该不计入下次决策的依据,可是由此原则主导的人又有几人可称为“理性人”呢?
我肯定不是:(
不看不知道,心理学真奇妙:)
申明:本人非为为心理学投入了几个小时而认为读心理学很有价值,进而继续投入时间。更非为心理学做广告,因为无须我做:(
2006-08-05
有斐君子,如切如磋,如琢如磨
诗云:"有斐君子,如切如磋,如琢如磨......” 如切如磋者,道学也;如琢如磨者,自修也
朱子注: 斐,文貌。切以刀锯,琢以椎凿,皆裁物使成形质也。磋以鑢钖,磨以沙石,皆治物使其滑泽也。 治骨角者,既切而复磋之。治玉石者,既琢而复磨之。皆言其治之有绪,而益致其精也。道,言也。学,谓讲习讨论之事,自修者,省察克治之功。
看来要成为有斐君子,不容易啊!
两种学习方式:
1. 和他人切磋
今日国内学校教育缺失这部分。由于考试的压力及师资力量的不足(数量、质量),导致填鸭式教学,学习的主体为被动接受,缺少主动参与。自由时间的减少,同学间相互讨论的也不足。
从个人经验来看,切磋是很有效果的。很多东西自己以为明白掌握了,独自发现不了问题,当需要向他人阐述解释时便能发现不明了之处。同时,他人会用另外的角度看问题,由于个人的思维定势,这往往是一个人所不能自己发现的,而多人间可共享的。
由于知识和信息的分享不减损特性,共享对个人没有损失,只有更多的收益。同时,观点间的碰撞会产生新的观点,这往往是解决问题的关键。
关键点是要找到能切磋的人,不容易。
在公司中,团队内部、团队间需要有切磋的机会和环境。
2. 自己琢磨
做到这点也难,很多问题自己发现不了,所以也谈不上去琢磨。
能正确提出问题往往是解决问题的关键。很多问题如果换一种提问方式就容易找到答案。要抓住问题的根本,从本上提问,勿舍本逐末。
同时自己琢磨时也要避免太封闭自己,钻牛角尖,否则可能走火入魔,欧阳锋就是前车之鉴:)
两种境界:
1. 切、琢:知其大体,得其要点
2. 磋、磨:益致其精
由于现代社会知识的积累膨胀,专业的精细分工,在每个领域,或每项技术中都达到磋、磨的层次是不太现实的,所以要有所选择。了解的知识范围要广,同时对某些特定领域(尤其饭碗之所在)要精。
如,从事软件开发的挨踢(IT)人,需要精通至少一门编程语言,才能在工作中得心应手,能举一反三,学习新技术更快,适应工作需求。同时需要有广阔的专业知识面,能知道需要在工作中可以用什么技术解决特定问题,从而能知道需要学什么。也需要有比较广阔的非专业知识面,在工作中才能更好地理解用户需求,在生活中更有乐趣:)
2006-08-03
听讼,吾犹人也。必也使无讼乎!(我解)
“听讼,吾犹人也。必也使无讼乎!”
第一眼看到这句话我以为意思是:如果让我听诉讼审理案子,我也和别人一样。重要的是使人们没有争斗,没有诉讼!
这一误解,和本意相差不少。感慨,古文难读也!白话文让书写更接近日常话语,使识字之人即可读书,实在是功德无量!
古文的话语环境以及离我们很远了,因此理解起来困难。还有就是太简练了,把很多信息映射到寥寥几字,难免产生信息的丢失,解读时补上去的信息组合太多,让人误解也是正常的,尤其对我这样不习惯于咬文嚼字的业余读者来说:(
那为什么读这句话我会误解成这样的意思呢?
肯定和我已有的想法有关。未雨绸缪,防患未然......这些成语及其他的事例早在脑海中形成了观念,因此,看到这句话时,大脑迅速搜索已有知识(经验),其在搜索结果中排在首位,自然就先入为主,让自己相信已经知道结果,完全领会其含义,不再继续纵向搜寻下去,而朝横向发散开去,寻找更多佐证,于是便更加坚信自己的理解,形成正反馈循环。最终可能就此循环下去。如果足够幸运,会偶然发现其他地方的解释,恍然大悟(更有可能跳过,大脑总是有偏向性地选择信息,致使失去很多吸收新知或纠正的机会),比较前后所得,再细细品味,不亦乐乎?!
(上网搜索信息,使用搜索引擎也有此问题,并且排名不准确的几率大很多,不可不防!)
当初,误解此句的发散过程中,我寻找到哪些佐证了呢?如下:
1. 未雨绸缪,防患未然,御敌于国门之外......这些当然比雨中狂奔、奋力救火、英勇抵抗要高明。所以即使老夫子在断案上和常人一样水平,甚或不及,只要能教化民众,使民不争,那也不负圣人之名!
2. 如果人民争讼很多,即使法官断案如神、效率很高,也不能说政府做的很好。善战之将,必无赫赫之功嘛。
3. 做项目,如果team不断地解决问题,看起来很努力,很有成绩,这往往不是好事,恰恰证明前期准备有问题,不充分,存在很大风险。真正成功的项目应该做的过程中很平稳,甚至让人(尤其是高层)感觉不到其存在。 (假如真的作这样的项目,对team成员也许不是好事,失去了很多英雄式的表现机会,受不到老板的重视,尤其是高层。个人利益vs公司利益,难啊......赶紧打住,跑题了)
4. 写code的境界:
1. 只会写,不善于debug,初级
2. 会写,并且善于debug,中级
3. 会写,善于debug,并且能防多数bug于code,高级
4. 会写,善于debug,防多数bug于code,漏过的几个bug也会自动蹦出来,骨灰级!(Making Wrong Code Look Wrong)
5. 做team leader,如果带的是新员工,要花很大精力在培训上,以避免以后更多的麻烦,否则team leader会看起来忙得焦头烂额,实际上是耽误了项目。以前曾犯过这个错误,在Greentech的时候,没有意识到这一点,没有能很好地使team学习起来,达到应有的高度,致使项目进展没有完全发挥潜力。Gary也提醒过我两次(中间说过一次,离开前说过一次),种种原因没有引起我的重视并实行,实在遗憾。
.................
哎,这么多佐证,请告诉我:我有什么理由不相信我的理解?:(
听讼,吾犹人也。必也使无讼乎!
子曰:“听讼,吾犹人也,必也使无讼乎!”无情者不得尽其 辞。大畏民志。此谓知本。
孔子说:“听诉讼审理案子,我也和别人一样,目的在于使诉讼不再发生。”使隐瞒真实情况的人不敢花言巧语,使人心畏服,这就叫做抓住了根本。
其实老夫子是看错人了,就有人听诉讼审理案子目的不在于使诉讼不再发生,而是为了获利,而且至今仍风行于世。如很多贪官污吏吃完原告吃被告,古已有之。目前很多带有罚款条例的政策,往往执行过程中把罚款作为本,以此大力增收,曾有几万元交通罚单的例子,并不新鲜。
也许老夫子说这话的时候是知道这点的,但作为一个圣人,心胸自然不同于我辈(换作我辈,也许会说出:“听讼,吾不犹人也,必也使无讼乎!”这样的话,一则得罪了大众,二则显得自傲,自非圣人之量),虽然知道有人是恶的,也要说所有人都是善的,恶人也就不好意思作恶了,否则那就不是人了,因为恶人会在心里推理:”真理:人都是那样做的(圣人说过),条件:我不那样做,得出结论:我不是人。”可是老夫子又错了,两点:1.恶人不在乎自己是否是人, 2.此等严密推理没有授之于民(幸亏2000年后有西人传之于子孙)。
无论如何,老夫子说了这个道理,后人没有做到,总不能怨祖先,也不能因为有人没做到,就废弃老夫子之言。从今往后,后世小子谨遵祖训便好。
软件开发或管理中,也有很多地方要注意这条,比如激励和惩罚的目的是什么?看似简单,往往很多政策达不到目的。
比如很多公司要早上打卡,根据各个公司业务不同,有的公司真的需要大家一起上班,或对外有服务,必须准时上班。而很多IT企业的研发部门是不需要一起准时上班的,完全可以上班时间浮动,早来早走,晚来晚走,如此而已。可是很多公司就有政策,晚来几分钟要如何如何,比如说罚款多少等等,其实倒也并不一定为了钱,但总会让员工不痛快,导致工作效率无形中下降,偏离了打卡之本。其实,打卡是为了让员工准时上班,让员工准时上班是为了保证上班时间,保证上班时间是为了完成工作,这才是打卡之本。只要工作量能定好,何必在乎人家什么时候到公司呢?人家可以晚点下班也可以嘛,工作完成即可。即使不足八小时又何妨?期望其完成的工作完成了,应该得到奖励,剩下的时间也许被用来学习或休息,使以后工作效率更高,岂不更好? 其实关键问题在于很多公司不能很好的根据员工的能力分配相应的工作,致使以打卡自我安慰。
还有软件开发中的review,很多公司执行不下去,因为员工抵制。的确有很多公司的review导致员工间互相找缺点,互相指责,偏离了review之本。review的本在于相互学习,保证质量,加强交流。只要明确这些目标,怎么去review完全可以很好地设计、执行。
总之,管理的本在于是企业运转更有效率,使员工间合作更容易,而不在于管人。如果管理者能时时把这点作为行事准则,管理风格肯定会不一样。
解决问题时,要解决的问题为本,解决的方法为末,时时要提醒自己本是什么,勿陷于末!谨以自戒!
周虽旧邦,其命维新
诗曰:周虽旧邦,其命维新朱子注:周国虽旧,至于文王,能新其德以及于民,而始受天命也
百年老店也需要创新,才能立足于世也。老的企业或大企业往往由于官僚主义,不利于创新,从而被新的具有创新能力的企业打败或吃掉。IT届的例子比比皆是,如微软、google的兴起都是借当时市场大佬打盹的机会取而代之。同时,在IT企业中,也有很多像周一样的例子,比如IBM、Apple等,都是旧邦,但能新其德,不断创新,带动员工,以至于“大象也能跳舞”。
老企业还有一点也比较危险,就是抱着老经验,不愿接受易变的现实,学习新环境的能力下降。比如对新技术的接受。由此可见,能不能“受天命”不在于企业物理生命的新旧,而在于企业创新生命的新旧。
人亦如此,要不断学习新知,才能不被淘汰,走在前列。此处不可倚老卖老也!
苟日旧,日日旧,又日旧
"苟日新,日日新,又日新",会不会有"苟日旧,日日旧,又日旧"呢?我想应该是有的,今天不洗澡,明天不洗澡,后天不洗也没啥大不了了,往后每增加一天不洗澡的纪录都不会太难,因为不洗澡的边际效用(身上的异味)增加减少,到最后再臭也臭不到哪儿去了,达到极值,也就习惯了。
在软件开发中也有这个现象,缺少维护的代码每打一次补丁就朝着深渊前进一步,变得更加难以维护,于是往后再打补丁,只能往深渊更进一步,如此恶性循环,直到寿终正寝,或维护人员无法忍受,重写整个代码,开始新的深渊之旅:(
解决这个问题的方法就是目下流行的软件重构,即在软件开发过程中时时对已有代码进行维护,使其保持良好的气味。一旦发现有异味就重构之。否则积重难返,难免坠入臭味深渊。
看来汤是有远见的,早就料到后世小子会有此痛苦,遂开一方解药,留之于后世。今日用澡盆的少了,大家还是把显示器刻上:苟日新,日日新,又日新 吧:)
苟日新,日日新,又日新
“汤之盘铭曰:苟日新,日日新,又日新”
商汤在洗澡盆上刻上:如果今天洗干净了,明天也会洗干净,那么后天也会洗干净,这样就能天天洗干净。看来这位老大是不愿洗澡的,所以要写上这句话告诫自己。呵呵,虽然无意中透露出了不愿让人知道的秘密,但总算让我辈也欣慰了一下:伟人也不是从一生下来就能有好习惯的,也要后天培养嘛:)那么培养好习惯难不难呢?至少商汤给我们留下了一个见解:如果能迈出一步,就有可能接着做,前两天都做了,第三天岂有放弃之理?况且前两天的效果已有显现:身上不再有异味,秀发更出众!身边的人不再捂着鼻子避开了,甚至有几个人主动接近,这可是大进步啊!兄弟多,一统江湖指日可待也......好习惯就这样形成了,好像不难:)
(嗯,今天我写博客,明天我还写,后天访问的人多了,就更有动力了,写的更多了,看的人老多了,眼球经济就产生了,我就有钱了,就可以不看着表上网了,就能写更更多了......好像死循环了......)
如此看来,只要改变现状的动力大到足以开始新的作为,加以即时的正反馈,好习惯的形成是不太费劲的。果真如此吗?
两个条件:改变现状的动力;即时的正反馈。
第一个条件较容易满足,人生不如意十之八九,总有需要改变的地方:(因此我们会常立志。但立常志的不多,如有人幽默:一年戒了好几十次烟。可见第二个条件比较难以满足,很少事情能有即时的正反馈,如戒烟对健康的维护可不是一两天、一两个月能看出来的。而往往短期来看,老毛病能给我们带来短暂的快乐,迎合我们的需要,比如抽烟、不洗澡(省下洗澡的时间来玩游戏,不亦乐乎!)。如此便破坏了改变的决心,使立常志变成了常立志。各种上瘾行为的难以剔除应该也有此原因。
看来要养成好习惯往往还得坚持,一直坚持到初有成效。另外就是釜底抽薪,把对短暂快乐的需求抽掉,这点比较难,比如抽烟,我还没有想到好的办法,能想到的也就是快乐替换法,比如见人用过的不停磕瓜子,直至舌头起泡,痛苦啊,呵呵。
如果是环境给我们造成的痛苦,以至于要用短暂的快乐来缓解,造成上瘾,则可以对环境因素进行改变。做软件项目最痛苦的就是时间紧、资源少,往往会使团队放弃质量检查,放弃原则,加速开发。到最后阶段会发现bug太多,于是时间更紧,团队更有压力,更没有时间进行质量控制,造成恶性循环。这里的环境因素就是时间紧,任务相当于资源太重,导致放弃质量上瘾。
打破这个恶性循环的方法就可以是:
1.放松环境因素的限制:对时间进行适当延长
2.树立好习惯:开始进行有效的质量控制
3.坚持到效果初显。如bug少了,客户满意度提高,不再追着老板导致老板咆哮,团队压力减轻,效率提高,质量提高......如是则良性循环成矣:)