`

杂谈:人与软件

阅读更多
长期以来,程序员被看作是沉默寡言的典型。他们能够长时间独自坐下来,不跟别人讨论,面对纸张及电脑屏幕来工作的人。现在,这种现象早已经不尽然了,新的尤其是敏捷方法论更强调的是人们之间的有效沟通,而最有效的沟通便是面对面的交流,这也是结对编程取得巨大成功之所在。正如水晶方法论创始人Alistair Cockburn对软件开发活动的总结:“软件开发是一场资源有限的创建与交流的协作性游戏。游戏的主要目标是交付有用的可工作的软件,次要目标,是为下一场游戏做准备,既知识的累积。下一场游戏可以是改变或者替代当前的系统,或是创建另一个相关的系统。”

  一个软件开发团队的成功依赖于合作、交流及协调,而这些因素却都以人为核心,恰恰是人这个大的因素左右了项目的成败,而不是所选择的任何过程与技术,而这个因素却常常被人们所忽视。当技术与人们的认识和文化价值观相抵触时,技术就不会再产生效力。一个拥有充足人员且具有良好机能的团队往往能更好地完成项目,而不在乎让他们使用什么样的过程及技术。

  然而,人的能力却是不可预测的,他们善于寻找、学习并有主动性,特别是善于进行非正式面对面交流,但同时,人们也具有会犯错误、墨守成规、只想创新、积习难改与变化无常等缺点。正因为人是变化无常的,我们不能指望人会成为可预料的或每个人都会变成一个样子。正如你不能希望给一个人双倍的酬劳,制定双倍的惩罚制度,并付出双倍工作时间,就希望能够得到双倍的成果输出一样。这是因为,人不是机器,而是复杂的情感生物,输出的成果最终取决于当时的思考质量、思考速度、主动性、身体状况、情绪等诸多因素。但是,人的内在潜力却是非常巨大的,只要用纪律和宽容来应付人们的共同弱点,便可以去其短,扬其长,来激发人们的内在潜力。当人们有了工作自豪感和公民感,再加上善于寻找和主动性后,我们会发现人们每天都会积极地完成工作,这将使项目长期处于最佳状态。在这方面,XP(极限编程)采用丰富的、短的、非正式交流途径,同时强调技能、纪律、个人理解水平,将中间件需求降到最低的方法,来获得尽可能高的质量和生产力。 

  变化总是在发生

  他们总是不断地拿走你的奶酪。

  预见变化

  随时做好奶酪被拿走的准备。

  追踪变化

  经常闻一闻你的奶酪,以便知道它产什么时候开始变质。

  尽快适应变化

  越早放弃旧的奶酪,你就会越早享用新的奶酪。

  改变

  随着奶酪的变化而变化

  享受变化

  尝试冒险,去享受新奶酪的美味!

  做好迅速变化的准备,不断地去享受变化

  记住:他们仍会不断的拿走你的奶酪,如果你不改变,你就会被淘汰。

  -- 引自<谁动了我的奶酪>

  面对市场经营的特殊挑战,只有那些具有高度灵活机制的企业才能立于不败之地。不能适应变化,变化就会把你变得面目全非。再完美的计划也时常遭遇不测。软件中的所有东西都在变化。需求在变、设计在变、业务在变、技术在变、团队在变、团队成员在变。问题不在于变化,因为变化总在发生,问题在于在发生变化时没有能力应付。只有变化是不变的,时刻准备着这样调整一点,那样调整一点。通过许多小的调整,而不是几次大的调整来控制软件的开发,也就是说我们需要利用及时反馈来知道我们何时出现了错误,我们需要很多机会来纠正这些错误,而且,我们必须能够以比较合理的成本完成这样的纠正,即使你不得不朝完全不同的方向前进,这就是作为一名程序员的生活。敏捷就是快速、轻松和灵活,迅速行动的能力,以最少的开销完成工作的能力,适应不断变化条件的能力。

  这就像XP方法论创始人Kent Beck对XP所做的比喻:“XP团队应该是智慧的游牧人,随时准备迅速收起帐篷,跟随牧群到处流浪。这里的牧群可能是与预期不同方向的设计、与预期不同方向的客户、离开团队的成员、突然升温的技术或者是不断变换的商业环境。”敏捷软件开发的根本是相信在我们混乱的业务环境中有不可预测性,相信人们或团队在面对这种不可预测性时,有能成功交付软件能力的可预测性,而这些,这是由于开发人员之间的有效沟通、与客户和管理者之间的有效沟通,才使得这种被称为富于创造与交流的协作性软件开发游戏取得成功。

  再富裕的国家,也会因为浪费人才而变得贫穷。与之类似,企业生存的最大课题就是培养人才,有了好员工,不愁没有好顾客。企业的发达,乃人才的发达;人才的繁荣,既事业的繁荣。把人放在第一位,其他事情就会少发愁。

  -- 引自<管理智典>

  <资本论>指出:一切剩余价值皆是由人创造的,而不是其它任何机器。在软件开发中的任何分析和设计工具不管有多先进,都不可能自动产生设计及代码,而真正产生设计及代码的,恰恰是操作它们的人,过分信赖过程与工具以及低估人的智力和经验都是一切灾难的源泉。

  与此同时,<设计模式>一书也指出:在软件开发和维护中,从长远来看,真正引起软件低效的原因,是人,人的低效才是最主要的。这看起来有点自相矛盾,其实为一体,既:成也在人,败也在人!

  软件开发和维护中的低效,初看起来,使人联想到的首先可能会是:开发及维护人员技术水平不够了、软件文档支持不足了、软件人员偷懒了、开发或维护团队内部人员关系不好了等等。但深究起来,一般却和一个企业的内部组织文化有很大的关系。

  目前,国内很多国企、私企普遍存在的内部现象是:一马在前,万马齐拍;前面的马向后看到的是后面马的笑脸,后面马向前看到的是前面马的屁股。故才会有后面群马齐拍,前面马飘飘不知所以然的壮丽场景。在这种企业文化中,人人只会以乾隆年间的和?和大人为偶像,以“厚而无形,黑而无色”的厚黑精神为人生最高境界。试想在这种企业组织文化中,真正老实实干的人只能忍气吞声、本着不求有功、但求无过之心,整天提心掉胆,人人皆自卫。而奸滑的人却会善于滥竽充数、邀功请赏、见风驶舵,只要嘴巴甜、马屁拍的好、拍的妙,定会升官发财,内部则猜疑、谴责、以及微妙和间接的勾心斗角与明挣暗斗随处可见。这种企业最终是不会留下真正的人才的,留下的只会是一些马屁精。如果一个企业文化如此,开发及维护团队会如何,内部员工又会怎么做,可想而知!如果你所处的环境不是这样,恭喜你。

  最好的环境应该是互相信任,彼此互相尊重,彼此之间都相信对方会把自己的最高利益和整个团体的利益放在心中,彼此都愿意切磋技巧、经验及看法。而要成为一个有效的团队成员,首先需要认识到自己的无知,每个人都要向别人学习,应该相信直觉,并且开放和诚实的交流环境常常是保证有效团队合作的最好策略。

  作为一个组织,核心就在于对人的信赖,在于一个适应性强的文化氛围,这能够将人捆在一起,获得有效的协作关系。一个企业做的是否成功,关键是看它有多强,而不是有多大。把人放在第一位,管理层次少,内部信息沟通及时、各职能部门协作意识强的企业才更容易成功。 在激励一个人按某种特定方式工作时,报酬比惩罚更有效,惩罚要尽量避免。你若能在他人心中激起一种急切的需求,并能引导这种需求,你便能无往不胜。渴望得到别人的认可和赞赏,是人类隐藏最深的本性。

  -- 引自<管理智典>

  <孙子兵法-作战篇>中指出:“杀敌者,怒也;取敌之利者,货也。车战,得车十乘以上,赏其先得者。”意思是说,要使军队勇敢杀敌,就要激发士兵对敌人的仇恨;要使军队夺取敌人的物资,就要以财货奖赏士兵。所以在车战中,凡缴获战车十辆以上的,要奖最先夺得战车的人。

  同理,<素书六章>中也指出:小功不赏,则大功不立;小怨不赦,则大怨必生。这和前面是一样的道理,然而,国内很多软件企业领导者,满脑子想的仍是:中国人,多的是,有什么用,走一个,马上还能来一群,怕什么!殊不知,你就再是铁打的营盘,也架不住流水的兵,不注重人,必会留不住人。

  冰冻三尺,非一日之寒,做软件的,少则数月,多则几年。三天两头换人,每天看到的都是新面孔,那还象是做软件的,就象是在选秀。这样的软件能成功么?既使侥幸成功,也定不会长久,因为他们不可能织起一个强而稳定的团队,组织起来的只能是临时应战的雇佣兵而已。有上面这种想法的领导大多通常是以指令性过程方法和产品为中心,把做作软件的人看做是“即插即用”的机器,这些高层管理者往往抱着一种“菜谱哲学”的思想,认为如果组织机构有了明确定义的软件过程方法,详细地规定了每个开发活动的步骤,那么所有问题都将被解决。如果“正确”的过程已经开发好,他们就可以雇用任何人(当然,最好不用人全部由机器自动生成最好),只要遵循制定好的过程,完美的软件就将准时且不超预算地大量产出,这种信条是建立在把软件开发当成是一门科学的基础之上的,然而,残酷的现实却向他们证明,软件开发更多的是一门艺术而非科学,是一门需要技能、手艺精巧的人互相协作的艺术。如果公司领导成天跟员工斤斤计较,抓住员工小辫子不放,动不动就大声呵斥、摆脸色看、给小鞋穿,还要经常免费加班、扣工资、罚资金。试想,在这种环境下,员工会怎么做,大部分会直接走人,留下的人却学会了磨洋工。工作时看着忙忙碌碌,实则作秀也。老板可能还会纳闷,怎么员工这么买力,产品质量还日渐下降。殊不知,这就和菜场买菜一样,你越和卖菜的讨价还价,卖菜的给你菜时越会和你斤斤计较(既缺斤少两)是一个道理,只有这样两方心理才能够平衡。虽然,聪明一些的高层领导者总是宣称员工是组织机构中最重要的方面,但骨子里仍把员工看作随意可替换的资产,这也正是人类的一大缺点:嘴上说的和实际做的往往是两回事。

  所谓“道”,就是让部属与领导者的价值观相一致,这样部属就会与领导者同生共死,不会畏惧什么困难和危险,表现出崇高的献身精神。如何让部属与领导者的价值观相一致,其实很简单,将员工利益看作第一位,以人为本,重视他们、信任他们、支持他们。其实,员工们对公司的要求其实很低,一般如下:

  第一、 按时发工资(基本保证)。

  第二、 得到办公室配送的饮料或食品。

  第三、 得到领导赏识。

  第四、 获得特别授权去完成某艰巨任务。

  第五、 多发奖金(不吃大锅饭)。

  第六、 职位上的提升。

  第七、 加薪。

  以上几条,对于每一个有远见的公司领导都是不难做到的。那怕能做一半,员工们也会心存感激之情了。

  帮助他人,可说是一种最直接有效、可以激发自身价值与责任感的方法。在全神贯注帮助他人解决问题的过程中,在悉心呵护照顾他人的过程里,不但我们的无限潜力会因此而充分发挥出来。而且,相对而来的成就感,也会让人觉得自己任重而道远,并能更积极地来面对人生了。

  -- 引自<好习惯、好人生>

  近两年,书面上流行的狼系列丛书<狼文化>、<狼图腾>等。也同样给中国软件业发展以极大的启示,强调拥用像狼群般的高度紧密协作的团队意识、敏锐的嗅觉(既可以察觉到细小或即将来到的变化)、始终保持野性(既持续的积极进取的态度和精神)等。中国人喜欢窝里斗这是出了名的,就是软件人员内部也经常在彼此攻击、无休无止。要知道,在一个有效团队中是没有“我”这个字的,只有“我们”。这里借用曹植曹帅哥一句话:“本是同根生,相煎何太急!” 来真心希望中国软件业能真正团结一致,齐心合力,建立自己的狼群文化,早日走出低谷,向全世界宣布:我们是狼,不是羊!

  创建一个有效的团队是一项艰苦的任务,它对项目的成功是必不可少的。首先是通过招募好的开发人员,从好的材料开始,他们可能不具备所有需要的技能,但至少应该愿意去学习。其次是在团队内培养正确的态度,既他们只有团结一心才能走向成功,每个人都应该积极参与系统开发。建设和培养一个有效团队需要时间,但这样做是组织机构能做的最好的投资之一。 

  若是你在一年中不曾有过失败的记录,你就未曾勇于尝试各种应该把握的机会。害怕失败,就等于拒绝了成功。那些盼望并且追求成功的人,要比那些成天担心而且接受失败的人要快乐得多,其成就也会高的多。

  -- 引自<管理智典>

  假如软件的第一版就做得很好,那么人们就会再次使用该软件。由于世界上所有的事情都在迅速变化着,因此,软件也需要不断更新、扩充、改变及修改。而想要得到稳定不变软件的唯一方法就是让产品坏到没有人再想用它,稳定意味着无知觉的产品。要明白,稳定的要求是敌人而不是朋友。改变要求是生活中严酷的现实,明智的软件人员应事先预想并处理它而不是抱怨它。而使软件创建更加快速与健壮的,是软件复用。有关软件复用的问题从表面上看是技术上的,实则真正的问题还是来自人。

  开发人员需要摆脱不相信也不想理解别人成果或只想重头做来增加个人经验的看法,如果不解决人的问题,那么技术问题也就变得无关紧要了。开明的领导和合适的奖赏制度有时能克服这些问题,假如企业文化把重复使用搁置起来,不与重视,那么在实现重复使用方面的投资、开发以及努力都将没有多大的成果。克服人的问题最主要的还是有效沟通的问题,虽然我们已经学会把感情生活与工作分开,但是如果队员间不能持续进行有效的沟通、没人承认自己的错误、怨气得不到平息、欢乐没有人共享,那么整个团队就无法高效率地工作。如果我们每个人都能够放下生活中所带的虚假面具,说出自己真实的感觉,也认真倾听别人的想法,那么任何工作的进展都会顺利的多。

  一个人并不是生来就要被打败的,你尽可以消灭他,却不能打败他。

  -- 引自<老人与海>

  生命原本脆弱,我们只能坚强地活着,并努力寻找欢乐,就这样。这里有一点我想告诉大家,大家在积极进取、努力拼搏的同时,一定要多加注意自己的身体。要知道,留着青山在,不怕没柴烧,身体乃革命的本钱也。千万不要有这样思想:三十岁前我用命换钱,三十岁后我用钱换命。要好好想想,没有了好的身体,我们还能做什么!所以,请记住:努力工作,从珍惜生命做起!

  生活并不是笔直通畅的走廊,让我们轻松自在地在其中旅行。生活是一座迷宫,我们必须从中找到自己的出路。我们时常会陷入迷茫,在死胡同中搜寻。但如果我们始终深信不疑,有一扇门就会向我们打开,它或许不是我们曾经想到的那扇门,但我们最终将会发现,它是一扇有益之门。

  -- 引自<谁动了我的奶酪>

  最后,让我引用<WINDOWS游戏编程大师技巧>书中一句话来结束本文:“当你看到眼前有列过山车,请坐上去,不要犹豫。张开你的臂膀,尽情体验个中滋味,一直坚持到游戏的最后,这就象生活一样。你的生活将不会留下太多回忆,除非你曾经反抗过、呐喊过,并用坚持不懈的努力向着完美伸出双臂。世上没有不可能实现的事情,只要你相信能做到,你就能做到!”
分享到:
评论

相关推荐

    杂谈:ChartGPT之谣言止于尝试

    《ChartGPT:智能工具的边界与应用探讨》 最近,ChartGPT这款人工智能工具在网络上引起了广泛的关注。一些博主和用户声称,ChartGPT已经具备了骗人的能力,甚至可以帮助撰写论文和代码。然而,通过实际测试,我们...

    软件工程历史杂谈-杨东屏

    - **软件名称的由来**:软件一词的诞生与硬件相对应,硬件是指计算机系统中的物理设备,如CPU、内存等,而软件则是指运行在这些硬件之上的程序和数据。随着计算机技术的发展,软件逐渐成为一个独立且重要的领域。 #...

    测试人杂谈

    【测试人杂谈】 在IT行业中,软件测试是一个不可或缺的部分,但往往被误解或夸大其词。本文将探讨一些关于软件测试行业的现实情况,以及在选择职业道路时应考虑的因素。 1. 行业现状与误解 软件测试行业并非如媒体...

    零基础学习软件测试(精品集锦,内含网址链接)

    这套教程覆盖了软件测试的核心知识和实际操作,对于想要系统学习软件测试的人来说,是一个宝贵的资源,不仅可以提升理论素养,还能通过实践操作提升技能。通过这些视频,学习者可以从零开始,逐步建立起完整的软件...

    软件产品扁平化设计杂谈

    在开始这篇杂谈前,想和大家以微信为例,分享在其产品界面风格上比较重要的一个变化,如下图所示微信版本4.5和版本5.3的界面效果对比。细心的朋友可能会看出来我选择的4.5和5.3两个版本,实际上在这中间还有4.5.1~...

    IT工作杂谈共56页.pdf.zip

    "IT工作杂谈"的标签进一步明确了文档的内容,它涵盖了IT工作中广泛的话题,可能包括但不限于编程语言的学习与实践、软件开发流程、项目管理、团队协作、技术趋势、网络安全、数据分析、云计算、人工智能、移动应用...

    软件估算.预算成本.pdf

    技术杂谈中的文章进一步阐述了软件估算的实践问题,帮助我们更全面地理解这一主题。 总之,软件估算和预算成本是软件项目管理的关键组成部分,涉及多个方面,包括但不限于估算原则、方法选择、历史数据利用以及团队...

    LD3320资料包-语音识别.rar

    设计师可以使用这些文件在电路设计软件中创建合适的布局,确保与芯片的电气连接和物理安装正确无误。 2. **1号文件原理图**:展示了LD3320与其他组件的连接方式,包括电源、麦克风、GPIO等接口,帮助工程师理解整个...

    miscellaneous-talk:杂谈,记录一些不好被整体记载,但需要记载的东西

    首先,"杂谈"往往意味着跨领域的知识,这可能包括但不限于编程语言的技巧、软件开发的最佳实践、系统架构设计、数据库管理、网络协议、数据结构与算法、操作系统原理等。例如,可能有对Python语言的高级用法讲解,...

    基层项目管理杂谈

    几乎每种行业都有基层主管(或基层管理人员),而软件行业的基层主管一般是项目经理、技术经理、开发经理、组长等。其职责是资源协调、风险预估、项目管控、团队建设,说白一点大多数的企业现状就是项目负责人带领团队...

    PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性

    ##### Remove Middle Man(移除中间人) 在某些情况下,如果一个类扮演了过多的转发者(Middle Man)角色,即它只是简单地将客户端的请求转发给其他对象,而没有添加任何附加价值时,可以直接移除这个中间层,让...

    汽车电子硬件设计

    #### 十、汽车电子工程师的成长与杂谈 - **成长路径**:了解汽车电子硬件工程师的职业发展道路。 - **产品质量意识**:认识到产品质量对品牌形象和客户满意度的重要性。 - **工作内容与重心转变**:随着技术的发展...

    DOM-王津银-持续交付及互联网实践.pdf

    此外,王津银还是“互联网运维杂谈”的作者,关注者超过2.5万人,同时参与了《中国应用运维规范之持续交付》的撰写。 通过这些知识的提炼,可以看出持续交付和DevOps实践不仅仅是一系列技术操作,更是一种文化和...

    网友光棍节活动策划.doc

    10. **用户体验**:活动的每一个环节都考虑到了参与者的情感体验,例如“冷餐酒会”提供舒适环境,这与设计用户友好的软件界面有异曲同工之妙。 通过以上分析,我们可以看到,虽然这是一个非IT行业的活动策划,但它...

    Motor-CAD专业的电机设计工具-交流版(1).pdf

    Motor-CAD作为全球领先的电机设计解决方案之一,具备独特的电磁与热性能综合分析能力,是目前市场上唯一能同时进行这两种性能设计的软件。 #### 二、公司概况与销售网络 ##### Motor Design Limited (MDL) MDL是...

    电子刊物《Android开发半月谈》

    2. **魅族人看魅族:我亲历的魅族发布会** - **内容概述**:一篇关于魅族发布会的文章,可能涉及新产品发布、技术创新等方面的内容。 - **价值**:为读者提供了关于魅族品牌及其产品的深入了解。 3. **那些年,...

    数字图像锐化

    图像锐化(2010-08-03 16:10:31)转载▼标签: 杂谈 分类: Matlab MATLAB全称是MatrixLaboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。...

Global site tag (gtag.js) - Google Analytics