总是很难忘记生活的点点滴滴, 脑海中总是闪过好多的曾经, 美好的回忆, 但成长中却让我们失去了很多, 很想在忙碌的生活中淡淡忘记; 不曾放低的东西却始终让我忘记不了, 但我还要在忙碌的生活中继续生活!

发布新日志

  • 测试工程师如何规划自己的职业生涯(转载)

    2008-07-29 17:32:07

    测试工程师如何规划自己的职业生涯(转载)
    初级测试工程师––入门级,具有一些手工测试经验,开发测试脚本并开始熟悉测试生存周期和测试技术;
         测试工程师––能够独立编写自动测试脚本程序并担任测试编程初期的领导工作,进一步拓展编程语言、操作系统、网络与数据库方面的技能;
         高级测试工程师––帮助开发或维护测试或编程标准与过程,负责同级的评审,并能够指导初级的测试工程师;
         Team Leader––一般具有5年左右工作经验,负责管理一个小团队。负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品,负责开发项目的技术方法,能够为用户提供支持与演示;
         测试经理––能够担当测试领域内的整个开发生存周期业务,能够为用户提供交互和大量演示,负责项目成本、进度安排、计划和人员分工;
          计划经理––具有多年纯熟的开发与支持(测试/质量保证)活动方面的经验,管理从事若干项目的人员以及整个开发生存周期,负责把握项目方向与盈亏责任。

    职业规划:
    1.第一阶段,学习自动化测试工具,学会编写脚本;
    2.第二阶段,学习编写测试计划,测试方案,测试用例;
    3.第三阶段,学习配置管理,版本控制,项目管理,bug管理;
    4.第四阶段,转向做一个管理者.

          每个人选择测试工程师职位的原因不尽相同.为了以后转开发积累经验的的,为了入门简单的,为了不加班的,有看好职业前景的,等等,..
    技术方向就沿着测试开发的路一直走下去.最终成为技术上的大拿,在一个公司里成为核心技术人员
    这个方向对技术的积累要求最高,适于那些对管理没什么兴趣,就想专心做技术的人。要沿着这条路走下去,需要一直不断地在开发能力上的积累,并且还要求一定的知识广度和对职业的独特理解。
    管理方向呢,工作个几年以后转向测试经理,以后的发展就多样了,质量总监\项目经理等等
    有些人说做管理不需要技术,却没想过作过一个技术工作,自己都不会的东西怎么去管理别人,当然也有例外,有些管理人员也的确是靠自己的人格魅力去让一个团队健康发展的。不过那只是极少数罢了。大多数测试管理人员也是需要在技术上有一定积累的。而且对于所有工作都一定要比较熟悉,黑白盒,自动化,性能,用例设计,配置管理,计划方案的设计等等,并且还要去调合团队内部的工作氛围,制定适当的激励机制,作为一个管理者绝不比一个技术人员需要积累的东西少。
    而流程控制大概是选的人最少的,QA累死不讨好,最终成为一代终极流程控制顾问
    这一类工作需要有非常大的耐心和自信,需要在工作中对流程控制方面有自己的感悟,需要对理论很熟悉。对人的毅力也是个极大的考验呢
    其他的,还有做用例做到极至,做功能测试做到极至,做用户体验做到极至的等等,总之各种发展方向者需要努力的坚持,任何一个方向做好了都很好。

    如果你是测试员或是高级测试员,有志转向管理发展,那么需要加强以下几点:
    1. 测试计划的编写(要结合测试的项目,能以此来控制和确定测试所需人员,设备及时间来管理测试时间)
    2. 要熟悉BUG跟踪工具及软件测试流程.(如: TD, Bugzilla, CQ等)
    3. 要熟悉配置管理工具. (如: CVS, VSS等)
    4. 要熟悉自动化工具.(例如:WinRunner, QTP, Robot, RFT, Automation等,能结合录制完的脚本编写代码)
    5. 要熟悉压力及性能测试工具.(例如: LoadRunner, webload, silkperformance等,能结合相关数据,分析出性能瓶颈)
    6. 要熟悉或精通一门语言. (例如: Java, C++)
    7. 要熟悉数据库.(例如: Oracle, DB2, SQLServer, MySQL)
    8. 要熟悉主流操作系统. (例如: HP Unix, IBM AIX, Sun Solaris, Red Hat Linux, SuSE Linux, Windows)
    9. 能用英文流利的和老外交流以及往来Email.
    10. 语言表达能力强,表达问题清晰明了.
    11. 沟通能力强,能和上级/开发经理很好的达成测试相关/BUG事宜.
    12. 学习技术的能力要强,能快速上手一个新的技术.
    13. 乐于与人交流.

    初级测试工程师:刚走出大学校门或者刚从些培训机构出来的学员,之前没有或具备很少的测试经验,这个阶段主要是掌握最基本的测试方法、测试计划、测试用例、测试报告、环境搭建等。北京上海地区,该职位薪水一般在2000-5000之间。
    中级测试工程师:从事过2-3年实际工作的测试工程师,能够独立制定测试计划,编写测试用例,对初级测试工程师进行指导等。北京上海地区,该职位薪水一般在4000-6000之间。
    达到中级测试工程师水准后,以后的发展可以存在多种方向:
    管理方向:
    测试组长:一般5人以下团队,能够同时承担2-3个较小项目(程序代码在5000行以下)或者1个中、大型项目(程序代码在5000行-25000行左右)。北京上海地区,该职位薪水一般在5000以上,好的过万。
    测试经理:可以管理多个小型测试团队,能够承担多个中型及较大型项目的测试,及具备至少1个大型项目(程序代码在25000行以上)的测试管理能力。该职位薪水一般过万,年薪二三十万正常。
    质量经理/项目管理:跳出测试的执行转而关注过程。SQA待遇差别比较大,但有2年以上测试或开发经验的人5000以上应该没问题,好的也过万。
    技术方向:
    白盒测试:这个由开发人员转过来的比较多,一般技术上要至少达到技术经理的水准。待遇比较好,一般7k以上,好的年薪二三十万。
    自动化测试方向:熟练使用一种以上自动化测试工具,做的好的待遇与白盒测试有的一拼,一般6k以上,不过最近学的人多了,待遇贬值可能比较快。
    测试分析师/技术总监:主要职责是对系统的测试结果进行综合的分析,例如缺陷分析、性能分析等。不但测试技术能力较强,还要具备数据库、操作系统等多方面的技术知识。这个待遇一般过万了吧.
    行业测试专家:物以稀为贵,过万一般问题不大。
    经历了以上一些阶段,大概在35岁左右,职业发展上基本达到瓶颈,此时只要混的不是很差收入一般可以算的上中产阶级,日子可能依然过的比较郁闷,之后的方向可能有做培训,咨询,自己开公司创业等。
    好了,暂时先罗嗦这么多,具体的发展路线嘛各位八仙过海各显神通了!~

    入测试行已有五、六年,谈谈自己的规划和一些想法:
    一、自己的规划:
        做了几年之后,积累的了一些行业经验(电子商务型,电信通信行业)和管理经验(指的是测试管理),毕竟是女孩,这么多年一直都在不断地学习各种技术,总怕落后。时间长了,感觉还是很累,感觉比做开发累。所以将来的方向是:走管理路线。(当然这条线也不好走,但是做了2年管理后,感觉在这方面有一定能力,只要努力就一定会成功的)
    做好测试:主动性强,有信心,能听取接纳别人的意见。( 自己悟出的)
    二、对于测试新手来说,如何入行,需要具备的知识和能力
    1、测试的基础理论知识,知道测试流程是什么?测试的常用的文档有哪些,该如何编写?测试方法有哪些?
    方法:去一些测试论坛(如:51testing,测试时代,3atesting,一起测试网等)找些资料来学习。或者买一些测试的书籍。再有也可以参加测试培训。
    2、要熟悉或精通一门语言. (例如: Java, C++,.net,VB,PB,Dephi),做到能读懂代码。当然能独立编写代码更好。
    方法:学习一种比较流行的语言即可,因为时间有限不可能学很多开发语言。学习的过程一定要给自己制订时间计划,而且语言这东西最好结合实例来学习,主要学习设计思路。
    3、要熟悉BUG跟踪工具.(如: TD, Bugzilla, CQ等),学习一种即可,主要能领悟出bug的处理流程是什么,如何管理。
    方法:到网上看资料,装上工具适用。
    4.  要熟悉配置管理工具. (如: CVS, VSS等),会一种即可,当然有时间的话,2种工具都会更好。
    5.  精通OFFice系列工具,排版能力强。测试中经常会写文档,所以这方面要强。
    6、 要熟悉数据库.(例如: Oracle, DB2, SQLServer, MySQL),对一种数据库精通就可以了。
    7、要熟悉主流操作系统. (例如:  Red Hat Linux, Windows)
    8、需要增强的能力:
    学习能力强;表达能力强;耐心,细心,信心,责任心;能承受压力;沟通能力强。
    以上这些,都是需要下功夫的,不能做表面功夫,那样的话,就算你入行后,会发现自己要学的东西会很多。
    三、入行后,要学习的知识和能力:
    1 、公司的文化和制度
    2、熟悉业务,这块很重要,需要认真对待。
    3、熟悉公司的开发流程和测试流程。
    4、业务熟悉后,将自己所学的知识运用到实际工作中。提高自己的测试水平。
    5、培养自己的沟通能力,与业务相关的所有人都能很好的沟通。
    6、工作中遇到的问题及解决措施要及时总结整理。
    7、针对公司的项目或产品选择适合的自动测试工具,帮助公司提高测试效率。
    这一阶段重在:熟悉业务,熟悉工作流程
    四、入行半年——1年后,要学习的知识和能力
    1)提高编写用例的技巧。
    2)熟悉一种单元测试工具。(针对公司的项目或产品使用的开发语言而定)
    如果公司这块一直都是开发人员来做,暂且跳过。
    3)熟悉一到两种自动化工具。(功能类和性能类的,如:WR,QTP,LR,ROBOT等)
    建议:学习工具的话,一定要结合实际的项目,这样学得快而且效果比较好。
    4)熟悉一种测试管理工具。
    (呵呵,为以后做测试管理者打算)
    5)了解新业务,开发的新技术。
    这个阶段的重点:就是提高自己编写用例的水平,工具的使用。
    五、 多年以后,相信自己都自己的目标了。
    1)如果做专职的性能测试工程师:精通一种性能测试工具,并能分析出瓶颈。(这点我没做到)(这些需要提高多方面的知识:服务器,中间件,开发,数据库等)
    2)如果做自动化测试工程师,精通一种自动化工具,并能独立编写脚本,了解一些最新自动化测试方面的技术。
    3)测试管理者。(技术+管理),哪方面薄弱就补哪块。多多听取别人的意见,改进自己身上的缺点。
       不管做任何事,都要有目标。

  • 软件测试技术总结(强烈推荐)

    2008-07-29 17:15:21


     软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。本文主要描述软件测试的类型。
    1 数据和数据库完整性测试
    数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。
    数据库完整性原即:
    主码完整性:主码不能为空;
    外码完整性:外码必须等于对应的主码或者为空。
    数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。
    在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统 (DBMS),还需要进行深入的研究,以确定可以支1持测试的工具和技术。
    比如,有两张表:部门和员工。部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。如果某个员工所属部门的编号为##,但是##在部门编号中确找不到,这就违反外码完整性原则。
    员工类型如下定义:0:职工,1:职员,2:实习生。但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。

    2 白盒测试
    白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。白盒测试分为动态白盒测试和静态白盒测试
    2.1 静态白盒测试
    利用眼睛,浏览代码,凭借经验,找出代码中的错误或者代码中不符合书写规范的地方。比如,代码规范中规定,函数必须为动宾结构。而黑盒测试发现一个函数定义如下:
    Function NameGet(){
    ….
    }
    这是属于不符合开发规范的错误。
    有这样一段代码:
    if (i<0) & (i>=0)

    这段代码交集为整个数轴,IF语句没有必要
    I=0;
    while(I>100){
    J=J+100;
    T=J*PI;
    }
    在循环体内没有I的增加,bug产生。
    2.2 动态白盒测试
    利用开发工具中的调式工具进行测试。比如一段代码有4个分支,输入4组不同的测试数据使4组分支都可以走通而且结果必须正确。
    看一段代码
    if(I<0){
    P1
    }else{
    P2
    }
    在调试中输入I=-1,P1程序段通过, P2程序段未通过,属于动态黑盒测试的缺陷

    3.功能测试
    功能测试指测试软件各个功能模块是否正确,逻辑是否正确。
    对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。此类测试基于黑盒技术,该技术通过图形用户界面 (GUI) 与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。
    比如一个对电子商务系统,前台用户浏览商品-放入购物车-进入结账台,后台处理订单,配货,付款,发货,这一系列流程必须正确无误的走通,不能存在任何的错误。

    4.UI测试
    UI测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等
    用户界面 (UI) 测试用于核实用户与软件之间的交互。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI 测试还可确保 UI 中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操作性测试。UI测试比较主观,与测试人员的喜好有关
    比如:页面基调颜色刺眼;用户登入页面比较难于找到,文字中出现错别字,页面图片范围太广等都属于UI测试中的缺陷,但是这些缺陷都不太严重。

    5.性能测试
    性能测试主要测试软件测试的性能,包括负载测试,强度测试,数据库容量测试,基准测试以及基准测试
    5.1负载测试
    负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
    在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
    比如,在B/S结构中用户并发量测试就是属于负载测试的用户,可以使用webload工具,模拟上百人客户同时访问网站,看系统响应时间,处理速度如何?
    5.2强度测试
    强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求的软硬件水平要求。
    实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。
    比如:一个系统在内存366M下可以正常运行,但是降低到258M下不可以运行,告诉内存不足,这个系统对内存的要求就是366M。
    5.3数据库容量测试
    数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。
    数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。
    比如,在电子商务系统中,通过insert customer 往user表中插入10 000数据,看其是否可以正常显示顾客信息列表页面,如果要求达到最多可以处理100 000个客户,但是顾客信息列表页面不能够在规定的时间内显示出来,就需要调整程序中的SQL查询语句;如果在规定的时间内显示出来,可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。
    5.4基准测试
    基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。
    如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你可以测试你这套系统,看看哪些地方比用友财务系统好,哪些地方差?以便改进自己的系统,也可为产品广告提供数据。
    5.5竞争测试
    软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。比如:一台机器上即安装您的财务系统,又安装用友财务系统。当CPU占有率下降后,看看是否能够强过用友财务系统,而是自己的系统能够正常运行?


    6. 安全性和访问控制测试
    安全性和访问控制测试侧重于安全性的两个关键方面:
    应用程序级别的安全性,包括对数据或业务功能的访问
    系统级别的安全性,包括对系统的登录或远程访问。
    6.1应用程序级别的安全性
    可确保:在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。例如,可能会允许所有人输入数据,创建新账户,但只有管理员才能删除这些数据或账户。如果具有数据级别的安全性,测试就可确保“用户类型一”能够看到所有客户消息(包括财务数据),而“用户二”只能看见同一客户的统计数据。
    比如B/S系统,不通过登入页面,直接输入URL,看其是否能够进入系统?
    6.2系统级别的安全性
    可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。
    比如输入管理员账户,检查其密码是否容易猜取,或者可以从数据库中获得?

    7.故障转移和恢复测试
    故障转移和恢复测试指当主机软硬件发生灾难时候,备份机器是否能够正常启动,使系统是否可以正常运行,这对于电信,银行等领域的软件是十分重要的。
    故障转移和恢复测试可确保测试对象能成功完成故障转移,并能从导致意外数据损失或数据完整性破坏的各种硬件、软件或网络故障中恢复。
    故障转移测试可确保:对于必须持续运行的系统,一旦发生故障,备用系统就将不失时机地“顶替”发生故障的系统,以避免丢失任何数据或事务。
    恢复测试是一种对抗性的测试过程。在这种测试中,将把应用程序或系统置于极端的条件下(或者是模拟的极端条件下),以产生故障(例如设备输入/输出 (I/O) 故障或无效的数据库指针和关健字)。然后调用恢复进程并监测和检查应用程序和系统,核实应用程序或系统和数据已得到了正确的恢复。一定要注意主备定时备份
    比如电信系统,突然主机程序发生死机,备份机器是否能够启动,使系统能够正常运行,从而不影响用户打电话?

    8.配置测试
    又叫兼容性测试。配置测试核实测试对象在不同的软件和硬件配置中的运行情况。在大多数生产环境中,客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。客户机工作站可能会安装不同的软件例如,应用程序、驱动程序等而且在任何时候,都可能运行许多不同的软件组合,从而占用不同的资源。(如浏览器版本,操作系统版本等)
    下面列出主要配置测试
    8.1浏览器兼容性
    测试软件在不同产商的浏览器下是否能够正确显示与运行;
    比如测试IE,Natscape浏览器下是否可以运行这套软件?
    8.2操作系统兼容性
    测试软件在不同操作系统下是否能够正确显示与运行;
    比如测试WINDOWS98,WINDOWS 2000,WINDOWS XP,LINU, UNIX下是否可以运行这套软件?
    8.3硬件兼容性
    测试与硬件密切相关的软件产品与其他硬件产品的兼容性,比如该软件是少在并口设备中的,测试同时使用其他并口设备,系统是否可以正确使用.
    比如在INTER,舒龙CPU芯片下系统是否能够正常运行?
    这样的测试必须建立测试实验室,在各种环境下进行测试。

    9.安装测试
    安装测试有两个目的。第一个目的是确保该软件在正常情况和异常情况的不同条件下: 例如,进行首次安装、升级、完整的或自定义的安装_都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。这通常是指运行大量为功能测试制定的测试。
    安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。

    10.多语种测试
    又称本地化测试,是指为各个地方开发产品的测试,如英文版,中文版等等,包括程序是否能够正常运行,界面是否符合当地习俗,快捷键是否正常起作用等等,特别测试在A语言环境下运行B语言软件(比如在英文win98下试图运行中文版的程序),出现现象是否正常。
    本地化测试还要考虑:
    l 当语言从A翻译到B,字符长度变化是否影响页面效果。比如中文软件中有个按键叫“看广告”,翻译到英文版本中为 “View advertisement”可能影响页面的美观程度
    l 要考虑同一单词在各个国家的不同意思,比如football在英文中为足球,而美国人使用中可能理解为美式橄榄球。
    l 要考虑各个国家的民族习惯,比如龙个美国中被理解邪恶的象征,但翻译到中国,中国人认为为吉祥的象征。

    11.文字测试
    文字测试测试软件中是否拼写正确,是否易懂,不存在二义性,没有语法错误;文字与内容是否有出入等等,包括图片文字。
    比如:“比如,请输入正确的证件号码!”何谓正确的证件号码,证件可以为身份证,驾驶证,也可为军官证,如果改为“请输入正确的身份证号码!”用户就比较容易理解了。

    12.分辨率测试
    测试在不同分辨率下,界面的美观程度,分为800*600,1024*768,1152*864,1280*768,1280*1024,1200*1600大小字体下测试。一个好的软件要有一个极佳的分辨率,而在其他分辨率下也都能可以运行。

    13发布测试
    主要在产品发布前对一些附带产品,比如说明书,广告稿等进行测试
    13.1说明书测试
    主要为语言检查,功能检查,图片检查
    语言检查:检查说明书语言是否正确,用词是否易于理解;
    功能检查:功能是否描述完全,或者描述了并没有的功能等;
    图片检查::检查图片是否正确
    13.2宣传材料测试
    主要测试产品中的附带的宣传材料中的语言,描述功能,图片
    13.3帮助文件测试
    帮助文件是否正确,易懂,是否人性化。最好能够提供检索功能。
    13.4广告用语
    产品出公司前的广告材料文字,功能,图片,人性化的检查


    14 文档审核测试
    文档审核测试目前越来越引起人们的重视,软件质量不是检查出来的,而是融进软件开发中来。前置软件测试发越来越受到重视。请看一个资料:
    文档审核测试主要包括需求文档测试,设计文档测试,为前置软件测试测试中的一部分。
    14.1需求文档测试
    主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现;
    14.2设计文档测试
    测试设计是否符合全部需求以及设计是否合理。

    总结
    据美国软件质量安全中心2000年对美国一百家知名的软件厂商统计,得出这样一个结论:软件缺陷在开发前期发现比在开发后期发现资金,人力上节约90%;软件缺陷在推向市场前发现比在推出后发现资金,人力上节约90%。所以说软件的缺陷应该尽早发现。不是所有的软件都要进行任何类型的软件测试的,可以根据产品的具体情况进行组装测试不同的类型。

  • 在深圳找工作的经历(转载)

    2008-07-28 09:30:09

       看了丝路飞洋及jennice在这里开贴写找工作经历,我也来效仿一下,
    讲讲我最近找工作的经历。

      先大致介绍一下我。2000年会计学本科毕业,先是在老家的省城一个事业单位做了一年半的会计,主要是管理固定资产、住房公积金及一些费用,实际上没有什么工作经验的。后来因种种原因,我于2001年11月中旬来到了深圳。

      第一份工作找得还算艰辛,当时是想在关内找,结果面试了N多单位,全是些小公司,都认为我没有全盘经验,没戏啊。所以我后来将目标移至了关外。面试关外的第一家公司,居然是有很漂亮的厂房且装修考究,而且会计主管一看我是本科学历,立马拍板要了我。从开始找到我去上班一共用了20天,相对而言还算正常吧。

      这个公司是民营,生产电子产品的,财务分工较细,我是做AP的,每天重复同一个工作,月末和供应商对对账,就这样,从没做过凭证。

      做了一年后,于2002年12月经人介绍进了一家新注册的外企。外企吸引我的就是有双休和有社保,同时认为能提高点英语水平,于是我进去了。在这里我做了近4年,所做的事情就是用英文版的财务软件做全盘账务及给财务总监发送报表。英文水平的确提高了一些,且在这里生了孩子休了产假。

      在2006年的7月,我认为我在这里再也学不到什么了,账务实在太简单了,且工资也不可能加了(是在宝安区,我当时4500,职位是经理助理),想升职做财务经理也是不可能,我只能走人了。

      不过走的时候还算开心吧,老板认为我给公司做了很多贡献,加上我自已的争取,额外多得了3.5个月工资。

      于是拿着这笔钱,带上女儿和老妈外出旅游了一下。

      当然,我在想换工作的同时,去报了个口语培训班,倒是有用了。

      旅游回来后,我开始找工作,因为以前只有一次找工作的经验,在近5年没找过工作了。结果没想到找工作还很顺利,很快就找上了一个工作。这是一家位于科技园的美资的企业,规模相当小,才70人。财务只2人,出纳还要做成本核算,我就是那个会计。因为以前从没做过税务方面,所以我刚来时花了很多时间和精力来研究和学习这些((以前的会计我连人影都没见过,更别提交接了)。事实证明我的努力是有用的,我用了不到一个月的时间,弄清楚了生产企业免抵退税的申报,个税的申报,外汇核销等程序。

      

     作者: Luckyandhouston   回复日期:2007-7-13 23:21:00 


      这家公司因为小,所以业务倒是不多,每个月的所有记账凭证不超过200个。倒是能学到很多东西。因为采购有进口也有国内的,销售有出口也有内销。所以我学会了开增值税专用发票和普通发票。学会了进项发票抵扣。也第一次接触了外汇核销和免抵退税。倒是有些成就感的。但是这家公司的管理很特别,虽说是外商独资企业,实际上是中国人在管理,我感觉我不习惯这里的机制,所以又一次做出了辞职的决定,当然还有个想法是以为找工作很容易。

     作者: Luckyandhouston   回复日期:2007-7-13 23:25:00 


      现在进入我的主题吧。谈谈我最近找工作的失败经历。因为目前我还没找上合适的工作呢。

      

     作者: Luckyandhouston   回复日期:2007-7-13 23:30:00 


      我主要也是在51JOB和CJOL上投简历,周一呢也会买份南方都市报,不过我认为买报全是徒劳,很少有合适的机会啊。

      我因为是有家庭有孩子的人了,所以找工作地点放第一位,因为我家在宝安和蛇口有房产,所以找工作的重点是南山区蛇口区。加上我有5年外企的工作经验,所以找工作的重心也是放在外资。

      事实上,符合这2条的单位少之又少啊。

      

     作者: Luckyandhouston   回复日期:2007-7-13 23:42:00 


      1.ASOKA美国深圳代表处,公司位于大冲飞亚达大厦,因为是代表处所以深圳这边才10多人,做软件开发的,目前还没有财务软件的。面试我的是一个主管吧,对财务了解一些又不全懂,你想我有这么多年的全盘工作经验,如果来他们这里做还不是轻车熟路啊。所以在面试时他问我的任何问题我回答得都不错,他也明知我能做好。最后是关于薪水没谈好。我想我总不能低于我以前的薪水吧。我要求试用期5K,试用期满后6K,他笑了,说我要求得还不低呢。

      最终我没收到录用通知。

     作者: Luckyandhouston   回复日期:2007-7-13 23:55:00 


      2.肯发精密仪器(深圳)有限公司。应聘职位是税务会计。公司是在宝安区的,离我家倒是不远。是一家新加坡独资企业。厂房看上去破破烂烂的,老公送我时建议我不要去了,我心想既然都到了门口了还是去吧。开始接待我居然是在食堂的一个破办公室里,人事一个文员让我填表,也就是简历表,上面很多空白处让你填离职原因啊,在职时证明人,电话。然后那人事文员问我在以前的公司做些什么,我回答了,她感觉很奇怪,说那不是很忙啊,我说公司小所以并不忙的。她又问我期望薪资,我答5K,她很怀疑地看我“你凭什么要求这么多啊?”我坦然回答:“因为我有这么多年工作经验,还有我会专业英语。”后来让我等了好久,才带我去见会计部的人。第二次面试我的是一个30多岁的男的,估计是会计主管,问了我一些外汇核销和报税的问题,我都很熟练地回答了。于是又讲到薪水,他看我在表上填的是5K,他说目前达不到这个数。底薪3500,岗位津贴500,伙食补贴300,住房补贴150,全勤奖60,试用期后加5%-10%,另外每年有5%的加薪。我犹豫了3分钟后才不情愿地回答他,可以接受,还是看在离家近,且跑税务行动比较自由这一点上的。估计是看我这么为难吧,所以这次面试又没什么结果了。

     作者: Luckyandhouston   回复日期:2007-7-14 0:09:00 


      3.沃尔玛。

      初试时是一个人事部的文员。非常有礼貌非常友好。问了我很多网上常见的问题,也用英语提问了,她的口语相当流利。后来让我填了份表,同时有份英文小测试,主要是单词汉译英,单词英译汉,句子汉译英。很简单。我感觉我表现还不错。

      几天后通知我周6去复试。这一天是财经专场招聘,很多人还是初试来着。像我这样复试的人是很少的。可是我迟到了,因为老公说开车送我,他总没时间观念,磨磨蹭蹭的。面试官有2个人,都是40岁左右的,估计是会计部的主管了。提问很尖刻了。我印象最深的是我失败的地方了。我应聘的是AP部经理这一职位,她指明我以前没什么管理人员的经验,说如果让我管一个7-8人的团体,我还是新来的,且我的资历还没别人高,我如何去管理?我答我会兢兢业业做好我本职工作,且以身做责,给他们做个好榜样。她又提问,如果上级有紧急任务,需全体加班,可是我底下人全部要请假,我如何办?的确我没经验,她本意想让我回答强制执行。可是我因自身性格方面,我没这样答。这一点她对我很不满的。后来让我做了份卷子,全是CPA课本上的。经济法啊,财管啊。

      又一次失败的面试。

     作者: Luckyandhouston   回复日期:2007-7-14 0:17:00 


      4.深圳市四方电器技术有限公司 职位:总账会计。位于侨香路中航沙河北工业区,做变频调速产品的

      是内资的,本来就不是我想像的单位,但是我收到通知还是去了。刚开始让我做卷子。题目非常简单,做一些分录,借了备用金后报差旅费啊,结转利润啊,计提地税综合税。如果是做过全盘的一定会感觉简单。然后面试我的是财务经理,一个很有亲和力的女人。她对我的各种回答是很满意,还是薪水方面,达不到我的要求。

      真郁闷,我在网上注册的简历上明明写明了期望薪资,总是有单位要浪费我的时间啊。

     作者: Luckyandhouston   回复日期:2007-7-14 0:28:00 


      5.香港中国液化天然气运输公司深圳代表处

      位于蛇口明华,地点对我来说是最理想的了。这公司相当有实力,垄断行业,运输方面的合同一签就是25年。面试我的是个财务方面的副老总了,问的主要是财务方面的问题。一是问新会计准则有哪些,我正好刚学了后续教育,很流利回答了。然后问我合并报表如何做,我说没做过,但是学过。我答出实收资本和长期投资要抵销,关联方的应收和应付要抵销。看来她比较满意的。考英文是一个小伙子提问的。问了我一些问题,有哪些强势啊。还让我口译一张纸上的文章,温家宝对猪肉涨价的看法。

      我自我感觉良好吧,却又一次失败了。2周后人事小姐说领导录用了另外的人。估计主要原因是我没有中级职称。实际上外资企业并不看重这个,但面试我的是个中国人,财务行业的,一定看重这个的。

     作者: Luckyandhouston   回复日期:2007-7-14 0:35:00 


      6.鸿荣源房地产公司

      我家的房子就是买这家的,所以知道他们实力强大.那天同时去面试的有10个人,架势惊人啊.

      面试官是个40岁的男的,问的全是专业的问题.我答得都不好.问题一:金碟如果没结转本年利润就出了资产负债表和损益表,会如何? 我从来不可能不结转利润就出报表,所以我答不出.问题二:用应付模块时如何进行月末和供应商对账? 我说操作下查询就可以了.我明明会用却不知如何去答.所以很快我被PASS了.

     作者: Luckyandhouston   回复日期:2007-7-14 0:39:00 


      7.和记电讯

      职位:会计主任助理

      网上明明有2个职位:会计主任和会计主任助理。我去了却让我面助理这个职位,我的经验显然不合适。所以又一次徒劳啊。

     作者: abrena   回复日期:2007-7-14 0:50:00 


      呵呵 加油 好久没来了 呵呵

     作者: Luckyandhouston   回复日期:2007-7-14 0:51:00 


      8.Burton美国深圳代表处

      南山区海德3路。上周5去初试,一个中国的主管。用中文和英文都问了我很多问题。我感觉我答得还不错,她也认为我很合适。

      这周4去复试了,亚洲地区副总裁,一个美国人。问我如何做好一个会计?我回答“careful,responsible,diligent"都不是他想听的。后来我说找出不合理的,然后去解决,他有点认可了。然后我说最终目标是实现企业价值最大化,可是他怎么听也听不明白。面试了很久以后,他让我提问,可是我没什么问题可提了啊。本来初试时就面了很长时间,主管对公司的发展啊,规划啊已做过详尽的说明了。其实他是想让我问公司的未来发展,他自已说了一遍,并指出实际上是想让我来问他的。

      这一次是50%的希望。因为他还要见另一个人,然后再做决定。

      面试时这美国人给了我一张名片,面试后我给他及主管都发了邮件,表明了我想进他们公司的诚意,并对我没提问做了些解释。

      这一个还不知结果呢。等待中!!

     作者: fogfox   回复日期:2007-7-14 9:31:00 


      确实不易啊

     作者: lixunbin   回复日期:2007-7-14 10:49:00 


      难呀

      

     作者: 丝路飞洋   回复日期:2007-7-14 10:50:00 


      

      鸿荣源房地产公司

      答:1没有结转本年利润,资产负债表是不平的。

       2用应付模块与供应商核对,虽说查询下能达到目的,是不是对方想核销往来的应答.

       看来以上是考核财软的应用熟练程度.

      ===============================

      面试时揣摸对方的用意是最重要了.

      加油!

      

      

      

     作者: Luckyandhouston   回复日期:2007-7-14 11:24:00 


      多谢丝路飞洋。财务软件我只用过总账模块,没用过什么ERP,SAP之类,所以如果进大公司这一点是弱势呢。

     作者: 海纳斯川   回复日期:2007-7-14 11:43:00 


      楼主的英文水平不错啊,看来在外资企业做真是有帮助的.向你学习!加油!

     作者: Luckyandhouston   回复日期:2007-7-14 12:02:00 


      我在大学时英文是最差的了,因为就一个CET-4,我考了三次才考了60多分,上学时因为四级不过将没有学位证,压力非常大,非常痛恨英文,毕业时将所有和英文相关的书全卖掉了。

      没想到在深圳英文这么重要啊。实际上我在工作中只能用到书面的,每天就那么一些单词。口语方面,一直没机会去说。也很想提高啊。

     作者: Work0755   回复日期:2007-7-14 13:56:00 


      在深圳,找一份合适的工作真的不容易

      我曾经看过丝路飞扬的文章,那时我也处在工作的低谷

      不过,我最后还是找过了一家500强欧洲公司,做财务分析

      记得低谷的时候,AP我都去面试过,不过都被自己拒绝了。因为自己真的不甘心

     作者: 斌丫頭   回复日期:2007-7-14 14:12:00 


      暈死了,我也看过丝路飞扬的文章,LZ跟她都有是经验的老会计了,找工作都这么难,我才刚刚报了会计班,想转行,我05年就毕业了,在一间小公司做出纳,公司是找财务公司做帐的.已经两年了,现在想转行了,可是看到这种情况,有些灰心...........

     作者: abrena   回复日期:2007-7-14 20:44:00 


      lz加油呵呵,财务软件是我的优势之一呵呵,所以要针对性的突出自己的优势

      

      现在我适应了新的公司,感觉轻松了 呵呵。又闲了 不过确实是学到了不少东西,特别是税务方面的,这也一直是我以前的弱点。

     作者: FLORENCE_LSZ   回复日期:2007-7-15 15:54:00 


      在一个上市公司做了六年,用SAP,财务各个模块都做过,手下带着几号人,中级,平常基本用不到英语,这样的条件在深圳能找什么样的工作呢?(待遇)深圳的公司是不是对英语要求都比较高啊?各位指导一下吧.谢谢.

     作者: Luckyandhouston   回复日期:2007-7-16 1:36:00 


      楼上那位,我讲明一下,以免误导了大家。因为我家里无任何经济负担,所以我在工作上也不是很上进,工作上算是混得比较差,我是这样认为的。我的同班同学在深圳的,在内资企业里做有2人,一个有中级,一个无证,但薪水都为6K,另一同学,中级也没考,在外资企业里做薪水为8K。你参照一下吧。

     作者: Luckyandhouston   回复日期:2007-7-16 1:41:00 


      晚上喝了茶,睡不着觉。只好上网。记得我在还没辞职时一家飞煌世亚的打来电话,让我应聘应收会计,需要和国外客户对账的,电话中问了我一些情况,问到薪资时说她们为5K,所以我在电话中就拒绝了。

      其间也接过华为的电话,也被我拒掉了,我也是以为面试过程繁杂。

     作者: wlmwxm1983   回复日期:2007-7-16 9:30:00 


      ……………………各位加油啊!!!!

     作者: hxj18888   回复日期:2007-7-16 17:15:00 


      不错,继续加油

     作者: 向日葵之灿烂   回复日期:2007-7-17 10:22:00 


      LZ,这两天找工作有没有什么新的消息啊?

      

      希望LZ早日找到合意的工作:)

      

     作者: 喜欢11   回复日期:2007-7-17 11:18:00 


      机遇很重要呀

     作者: abrena   回复日期:2007-7-17 13:15:00 


      同意楼上的,机遇其实很重要,自从来深圳之后,我的运气确实不错,比我厉害的会计比比皆是,但是机遇都不好多少,

     作者: Luckyandhouston   回复日期:2007-7-17 18:49:00 


      感谢大家关注我的贴子。今天我收到那个美国博登公司的电话通知了。明天就要上班了!

     作者: Luckyandhouston   回复日期:2007-7-17 18:57:00 


      我是上周4进行复试了,给我的答复是第二天可以知道结果,因为是从2人中选出一个。结果上周五他们回复我的邮件中并没直接答复。直到今天才通知我。

      我在上周五接到了好几个面试通知,我全都放弃了。本来都对找工作没信心了,感觉太累了的。而且这几天是在老公的公司里管理财务的了,已经转念去帮忙老公了。今天这个通知一下子又将我的思想转过来了!!

      我骨子里是那种有点自立的吧。不想生活在老公的影子下。不管怎样,这个新工作我会好好珍惜,并会努力去做好。

     作者: 丝路飞洋   回复日期:2007-7-17 22:09:00 


      天道酬勤

      恭喜姐姐,没打破我的记录,哈哈!

      要是有机会,可得请我喝酒哦!

      祝贺!祝贺!

      

     作者: Luckyandhouston   回复日期:2007-7-17 22:30:00 


      多谢丝路飞洋了!

     作者: tonghua644   回复日期:2007-7-17 23:26:00 


      哎呀

      看来我这本科还没毕业的会计确实还有很多要向前辈们学习的地方哟!~现在在忙准备CPA的考试,又想考研,英语也不怎么样,其实还是有点迷茫!都不知道自己到底该重点抓哪一方面!~

      希望前辈们能给点中肯的建议,在还有两年的大学生活里我应该往哪方面下功夫?谢谢!~小弟不甚感激!~

     作者: 海纳斯川   回复日期:2007-7-19 10:32:00 


      恭喜楼主!

     作者: 梅花飘然   回复日期:2007-7-19 12:56:00 


      看了LZ的找工经历,看来我真要学学英语了,这一直是我的痛处,怎么办?目前的这家日本公司做了五年多了,业务上没一点提高呢.顺便问一句,大专,1997年毕业至今做会计工作,中级职称,现公司的所有帐务,报税,免抵退等等,目前薪水很低,真的很想换,可自己又怕,也不知现在深圳的工作到底怎么样?

     作者: lian_8321   回复日期:2007-7-19 17:08:00 


      唉,我也得加油了

     作者: onliyoulove   回复日期:2007-7-19 19:19:00 


      看了lz的介绍

      

      感觉自己好菜

      

      05年出来在一家内资企业干到现在

      

      一直做的成本

      

      就学了大半年的SAP

      

      其他G/L AR AP AM 税务进出口都没接触过

      

      不知道以后出来后怎么办

      

      

      

      

     作者: dawai2829   回复日期:2007-7-20 9:08:00 


      会计专业在深圳不好混吗?我知道北京中新在深圳有分部,他们专门针对会计进行培训,ACCA辅导,你可以考一下CAT,这个含金量很高的!!具体可以咨询http://www.bssti.com/news_detail.asp?nclass=ACCA课程&id=407

     作者: 弦停山洲   回复日期:2007-7-20 10:16:00 


      还没有离职,想换工作.已经在面了,感觉找工作象和别人聊天一样,没有任何压力也没有意思!

      看来一定要辞掉工作再去找才有点感觉!

      

     作者: 暗香浮盈袖   回复日期:2007-7-21 9:57:00 


      我也是2000年毕业,会计专科,二年会计,二年主办,三年主管经验,对外企业全盘,税务通晓,8/1就要正式离职了,交接了二个月,

      今年4月份面试过一家美资企业(关外)总账会计,财务经理问了外汇核销及报税方面的,回答还OK,要求薪水5K,最终没结果,因为同时去的一个面试工程的本科生三年经验定下的工资只有3.5K,整个面试没用英语,只是考试了一张英文试着卷,发邮件给了人事,最终没有回复.整个感觉没有英语气氛围,当初是冲着美资才投的.

      再然后现在还没有一次面试机会,这几天网上看了几下,投了几份都没有回复!有点害怕找工作,五年没找过了.

      

     作者: 深圳168   回复日期:2007-7-21 15:26:00 


      LZ这回可以面试他人了,下回到我应聘了,LZ要给点面子啊。

     作者: Luckyandhouston   回复日期:2007-7-22 10:03:00 


      昨天同班同学请我吃喜酒,正好几个同学聚了下,我和几个同学交流了下我这次找工作的经历,结论是港资、台资、新加坡资都不用去考虑了,很不好做。还是欧美的企业要好些。

      我现在进的这家感觉很好,企业文化,管理模式等很人性化。

     作者: 丝路飞洋   回复日期:2007-7-22 17:31:00 


      怪事

      莫非有国人血统的企业都不能去?

      看来现在要向LUCK姐学习,向欧美企事业进军!

      为了美好的前程

      战斗着

     作者: 幸福胖考拉   回复日期:2007-7-22 20:42:00 


      楼主,加油!

      祝你早日找到称心如意的工作!

     作者: Luckyandhouston   回复日期:2007-7-26 16:20:00 


      幸福胖考拉,多谢你的关心。我已经上班一周多了!感觉还不错。

     作者: astromoon   回复日期:2007-7-26 23:18:00 


      在博登刚搬到南山的时候,我就被通知去面试过,不过没有通过,真是羡慕楼主呀,听说那个公司上班很灵活,福利也很好。我8月份要重新找工作了,不知道结果会怎样。祈祷中!

      我也是一个作全盘会计6年的人,不过英语不好,虽说有六级证书,同时我也没有中级职称也不是CPA,佩服楼主可以开5000以上的工资。

     作者: 德鲁克和曼昆   回复日期:2007-9-4 18:14:00 


      05年毕业,之前都是在物流行业做

      感觉物流行业,收付款、往来出其的多

      最近也在找工作中,明天南山有一家。还是过去看一下

      实在不是很想AR,都有去做成本的想法

     作者: ao831209   回复日期:2007-9-4 20:20:00 


      一样的,找工作真的是考人的耐心,对于找工作,我是怕到极点,工作一至处于被动地位。可能是我这个人原则性太强了吧,在哪里都坚持不了多久。好郁闷哟,支持LZ!你一直是我的楷模。哈哈,我的工作跟专业一点也对不上口滴,郁闷死了。

     作者: qkhhcl   回复日期:2007-9-4 23:23:00 


      我一直都是想进的是是欧洲的企业,荷兰.瑞典.德国之类的企业,谁知道鬼差神错,竟然进到台资企业去了,抠门得要死...

     作者: 江南深秋   回复日期:2007-9-7 11:09:00 


      说实话,5000块钱在深圳实在是没有幸福感可言啊

      月光光,无聊地生活着。

     作者: 异人梦   回复日期:2007-9-7 12:30:00 


      那你还算是蛮顺利的了,我明年就要去找工作了,都说会计难找,在说一个大专生,也就更难找了/但愿不要太难~

     作者: camelsmile   回复日期:2007-9-7 17:19:00 


      工作再难找还是会很努力的......

      

      ^____^

      

      继续不断努力咯

     作者: 逸慈庄主人   回复日期:2007-9-8 15:06:00 


      楼主说的对我很有用处,至少知道自己有什么不足,本人去年本科毕业,在深圳关外工作一年,销售成本都做过,深感能力不足,现在要换一个工作充实一下,没想到关内的待遇并不怎么样.有的在关内工作好些年却不如刚毕业在关内第一年的待遇,很失望.

     作者: yxh2045   回复日期:2007-9-12 10:53:00 


      大家都不容易啊!

     作者: 美丽的漂   回复日期:2007-9-13 15:51:00 


      偶大专,还是自考的,虽说干了这么多年会计,好象啥也不懂。想到深圳来找工作,估计是没人要了,忘了说本人现在还是单身。是不是更不好找哟。工业的一般纳税人做过,超市做的是往来会计。

     作者: 德鲁克和曼昆   回复日期:2007-9-13 18:26:00 


      今天,深圳航空公司面试。

      一开就搞小组讨论面试,后直接淘汰了一半的人,我也在其中。什么专业测试都没有

      现在回想起来,真是哭笑不得。

      真好玩!

     作者: nofatebird   回复日期:2007-11-2 10:36:00 


      我下周也要去博登复试,CAD engineer,lucky姐姐需要注意什么问题呀

     作者: 易木123   回复日期:2007-11-2 20:26:00 


      我还准备从头开始做起.年龄也不小了.还没有实际经验.学历也还在努力当中哦~~

     作者: K歌龙王   回复日期:2007-11-3 12:51:00 


      找工作真不容易,我也找了很久,久得都快霉掉了。除了税务没做过,其他都做过了,目前的工作干得就像喝白水。可能是简历在网上挂得太久了吧,竟然有公司找我去做出纳文员,开2K的价,疯了!

    总页数:1  当前页:1  第1页

     

  • 软件战——行业本质决定胜负

    2008-07-25 17:56:22

           同是软件巨头,为什么微软、IBM和SAP都能长期占据垄断地位,而又不会相互打垮?这是因为他们各自处于产业链的上、中、下游,并且分别抓住上、中、下游不同行业本质。微软占据上游的系统软件,IBM则专心做中游的中间件,SAP则专注于下游的应用软件。那么中游软件的行业本质是什么呢?就是“占据软件产业必经部分的核心技术”。而下游应用软件的行业本质是什么呢?由于技术壁垒低,外来者容易进入,其行业本质就是:“把本土化、行业化、专门化知识,转化成商业智慧,并融入软件产品及服务之中。”
           那么,软件行业是一个什么样的行业?
           简单的说,软件就是计算机能够理解的一串指令,这些指令会告诉计算机要做什么事。他们一般被划分为三大类:系统软件,中间件,应用软件。
           系统软件(Operating systems)是整个计算机系统的基础及总指挥,负责内部执行,如微软的Windows;
           中间件(Middleware)是连接前线与指挥之间的软件,提供及加强系统软件和应用软件之间的沟通,如TIBM开发的Lotus;
           应用软件(Application Software)负责前线服务,为一般用户提供多种不同的计算机应用功能,也是用户最常接触到的部分,如企业经常用到的财务管理软件。
           寻找软件业本质,要先从软件产业链开始着手。
           系统软件是中间件和应用软件得以运行的基础。中间件为体统软件与应用软件提供接口,即使系统软件发生变动,只要作为借口的中间件不变,应用软件就不必大幅修改。应用软件则建立在系统软件与中间件的基础上,为企业客户解决实际问题(如财务软件用友)。
            如果只有系统软件或中间件,而没有能解决客户实际问题的应用软件,是没有用的;相反,如果只有应用软件,却没有可供运行的系统软件与中间件,也是行不通的,它们是循序渐进,缺一不可的。
           系统软件和中间件的技术壁垒高,外来者难进入,因此竞争并不十分激烈,边际利润较高。至于应用软件,技术壁垒低,功能与种类多不胜数,外来者较易侵入及模仿,因此竞争十分激烈,边际利润相对较低,没有真正的“领导者”。
           由此可见,链的上、中、下游,其特质各有不同,软件企业站在链的不同位置,自然有不同的景观,也需要不一样的策略,起所体现出的行业本质,也大不相同。

    中游本质:“占据软件产业必经部分的核心技术”
           中国很多厂商,在产业链中缺乏议价交涉能力。被外国企业不断压价,导致利润萎缩,最后倒闭。不是他们工作的不好,而是他们所做的工序只需要很低的技术,要找代替的太容易。
           相反,只要你拥有议价交涉能力,站在无可取代的位置,即使你工作做的不那么好,买家、卖家也无可奈何。就像现在大家对微软的Windows边用边骂的情况一样。
           那么,中游软件的行业本质是什么呢?就是:“占据软件产业必经部分的核心技术”。
           怎么理解呢?我们以一个简单的比喻来说明:如“大富翁”游戏,在棋盘上,只要在别人会经过的地方买地,建房子,建酒店,你就赢了。你可能会问:在软件行业中,哪里有棋盘?在哪里地,建房子,建酒店?
           我们先将软件产业链看成是大富翁游戏棋盘上的路,而中间件,就是连接系统软件与应用软件的必经之路,至于土地、房子和酒店,就是软件的核心技术,房子和酒店越多,表示那里的技术越高,越重要。只要占据了重要的核心技术,其他软件企业要通过时,都必须付款或合作。
           大部分软件商,都不能没有中间件的配合,而且根据之前技术需求链的研究,中间件的技术壁垒很高,不能轻易被模仿或跨过,所以如果占据了当中必要的高端技术,就像掐着其他软件商的脖子一样。
           所以,当你能够抓住行业本质,“占据软件产业必经部分的核心技术”,就能产生两个效果:
           一是能提升在软件业界的议价能力。这个议价能力,在产业链中有着决定性的作用。
           第二个效果,就是能够让占有市场自动增大,因为你的合作伙伴会不自觉地主动帮你找客户。当应用软件商开发的应用软件,必须配合你的中间件时,他们花费了不少人力、金钱所找来的客户,也自然要用你的中间件。
           当你拥有了高度的议价能力,还有庞大的市场占有率后,那就更容易以并购或合作方式,来获得其他重要的核心技术。就像IBM,通过吞并其他软件企业,来扩大自己的软件王国。
           我们来看看,IBM如何占领中游软件的核心技术以实施起策略。

    蓝色巨人IBM选择中游,成领头羊
            IBM一向为人熟悉的,是它的硬件产品,不论是家用或是商用计算机,我们总会很容易找到IBM的迹影,但早在上世纪九十年代,IBM已开始发展软件业,因为它的硬件产品,在九十年代中期已开始停滞不前,甚至被其他对手超越。
           因此,IBM要发展软件行业,占据市场重要地位。回过头看,它的选择无疑是正确的。
           短短10年之间,IBM便摇身一变,成为同行业的指标。过去5年的平均资产回报率,IBM较同行业的平均值多出9%左右,而较道琼斯30大成份股的平均值,更超出11%左右。
           在2007年中间件的市场占有率统计中,IBM遥遥领先其余两间国际知名软件公司BEA和Oracle,市场占有率超过30%。
            它为什么可以在中间件市场取得绝对领导地位?因为它符合了软件业中游的本质——先占领整个中间件的核心技术,成为中间件的领导,再与下游的应用软件公司合作,成功控制整个软件业的流程,令大部分的客户不得不选择IBM。
            IBM在软件行业发展中,选择了中间件作为主要对象,主要是当时中间件并没有存在任何一个主要的领导公司。
           中间件负责应用软件与操作系统的相互沟通,为软件与软件之间提供标准接口。不管底层怎样更新,只要接口不变,应用软件也不必大幅修改,产生跨平台资源共享的效能。因为应用软件及基层系统软件,本身各有不同的接洽方式,会令开发失去弹性,而中间件就像家电万用拖板,为应用软件及基层系统提供接洽位。
           中间件三大主要功能就是:构建(To Build)、运行(To Run)和管理(To Manage)。以下我们用一个简单例子说明:
           一名厨师想要烤熟食物,一名青年想要上网。电器开发员就为他们分别造了一台微波炉和一台计算机,微波炉忽然计算机需要电力发动,电力就由发电厂管理,经过电线的运行,传输到厨师和青年家中,再供微波炉和计算机使用,而当中的电线需要技工维护及管理 ,当青年想要订烤鸡的时候,邮差就将邮件送到厨师手上。
           青年和厨师就是应用软件的用户,微波炉和计算机是应用软件,微波炉和计算机开发员是(To Build)应用软件开发,发电厂、邮差和电线技工是讯息、系统和数据管理(To Manage),而电线是运行协作平台(To Run)。
           一如上述例子所说明,无论是一个企业软件用户想自行研发解决方案,或是选择其他软件厂商的软件,在整个从开发到运行到保养维修,研发、运行和管理都是必需的。只要掌握了中游软件的核心技术就能掌握其行业本质。
           那么,我们现在看看,IBM如何彻底实践软件业中游的本质。
           首先,IBM将整条产业链必需的技术都完全掌握,而且每项技术在该领域都名列前茅。它集中研发中间件,本开发了五个品牌,分别是:担当构建角色的Rational,担当运行角色的WebSphere,以及担当管理角色的Tivoli、Infomation Management和Lotus。这五个品牌各自担当中间件的不同功能,令IBM能占据中间件的所有核心技术。
           如果对应我们以上所用的比喻,Rational是负责构件那台计算机(即构建);Websphere扮演着电缆输送的角色(即运行);Tivoli负责所有系统的管理,Lotus即扮演寻系管理的角色,Infomation Management是负责电缆上的数据管理(最后三个都是管理)。
           那么IBM如何占据这些核心技术呢?除了自己研发外,还大量收购其他公司。
           IBM的并购并不是杂乱无章,目的都是完善和提升其中间件五大品牌的功能,巩固其关键地位,以“占据软件产业链必经部分之核心技术”,为企业提供量身定做的解决方案。为此IBM在2001-2007年期间大量收购公司,从而令核心技术更完善。

    老二、老三为何被IBM甩的老远
           在中间件市场,IBM的占有率2007年达32%,遥遥领先于第二名BEA(10%),及第三名甲骨文(9%),是什么原因使这两家公司落后如此之大呢?
           BEA曾一度占据市场龙头地位,它成立于1995年,当时主力发展下游的企业软件,但在同年收购了全世界第一件中间件的品牌——Tuxedo,便成为当时中间件开发商的先驱。
           接着,BEA便开始分拆不同的中间件品牌出来:BEA AquaLogic担当管理的角色,而BEA Workshop担当构建的角色,BEA Tuxedo及BEA WebLogic担当运行的角色。
           公司其后在1998年收购了WebLogic(即现在的BEA WebLogic),并在2005年推出了BEA WebLogic籍以稳固市场,但却逃不过市场占有率被IBM追讨的命运。
           乍一看,BEA好象跟IBM一样,拥有整条产业链的技术。但我们仔细地看看,就会发现BEA的不足之处。
           BEA与IBM真正的差距,是在“构建”的层面上。

  • 嵌入式软件设计中查找缺陷的几个技巧(下)

    2008-07-25 09:36:34

      大部分软件开发项目依靠结合代码检查、结构测试和功能测试来识别软件缺陷。尽管这些传统技术非常重要,而且能发现大多数软件问题,但它们无法检查出当今复杂系统中的许多共性错误。本文将介绍如何避免那些隐蔽然而常见的错误,并介绍的几个技巧帮助工程师发现软件中隐藏的错误。

    竞争条件

    当两个或更多独立线程同时访问同一资源时,就出现了竞争条件。竞争条件的影响多种多样,取决于具体的情况。清单1解释了一个潜在的竞争条件。函数Update_Sensor()通过调用get_raw()来读取传感器的原始数据。在处理过程中,该数据被乘上一个定标因子,并加上一个偏移量。处理是在该数据的一个临时副本上进行的,然后,该临时副本被写入共享变量。

    如果在数据写入之前,使用shared_sensor的另一个线程或ISR先占(preempt)了这个线程,它将得到原来的传感器读数。使用临时副本可以防止先占线程读取只经过部分处理的数据。不过,如果这些代码在一个数据总线不足32位的处理器上运行,就会存在竞争条件。

    在一个8位或16位的处理器上,向shared_sensor的写入操作并不是一次性完成的。在8位处理器上,写入32位浮点值可能需要四条指令,在16位处理器上可能需要两条指令。如果在对shared_sensor进行连续写入中途Update_Sensor()被先占,则先占线程将从由一部分老数据和一部分新数据组成的shared_sensor读取一个数值。根据应用的具体情况,这有可能造成严重的后果。解决的办法是锁定调度程序,或在更新共享变量期间禁止中断。

    消除竞争条件通常很简单,但找出隐藏在代码中的竞争条件则需要仔细的分析。

    对于由一个循环程序和不同ISR组成的简单系统,分析竞争条件很简单,只需检查每个ISR并识别它引用的所有共享变量。共享变量通常是这些系统中的全局数据,一旦这些共享变量被找出来之后,就可以检查它们在代码中的各次使用情况。每次访问都必须按需要进行保护,以避免潜在的冲突。在简单设计中,一般通过在关键代码段周围禁止中断来实现保护。遵守下列规则可帮助避免竞争问题:

    * 如果一个ISR对共享数据进行写入,则该ISR之外的每次可中断的读操作都必须予以保护。

    * 如果一个ISR对共享数据进行写入,则该ISR之外的任何读-修-写操作都必须予以保护。

    * 如果一个ISR读取共享数据,则对该数据的可中断写操作必须予以保护。

    * 如果一个ISR和其它代码都要检查一个硬件状态标志,以便在使用某资源之前确定其可用性,如:

    if (!resource_busy)

    {

    // Use resource

    }

    则从检查标志之时开始,到硬件设置标志表示资源不可用为止,必须采取保护措施。

    对于使用了优先级不同的多个线程的更为复杂的系统,其分析也非常相似。上述规则仍然适用于ISR使用的所有数据。此外,还必须识别出每个线程使用的共享数据。首先从系统中优先级最高的线程开始,找出它与任何优先级较低的线程共享的所有数据,然后按照上述四条规则进行保护。对于软件使用的其它每个优先级,再重复这一过程。

    注意,如果系统采用了一种循环调度算法,则特定优先级内的所有线程可在任意时刻相互先占。这意味着前述四条分析规则在考虑较低优先级的线程之外,还必须考虑同一优先级的所有线程。

    多线程系统通常使用某种类型的操作系统,它能够提供多种保护选择。可以使用互斥或信号量,或者锁定调度器。有时也可使用其它进程间通信(IPC)基本技术:通过向消息队列发送消息(而非修改共享变量)来表示数据已经改变。在许多情况下,最好由单一线程来管理共享资源,它负责处理所有的读写请求,并在内部防止访问冲突。

    在复杂的代码中辨认潜在的竞争条件可能是一项乏味而又耗时的工作。相应的辅助工具从用来识别全局数据访问的简单脚本到先进的动态分析程序如Polyspace Verifier。虽然比较困难,但详尽的代码分析是识别这类错误的唯一途径。测试不大可能能够建立重复触发竞争条件所需的精确时序序列。

    死锁

    在共享资源的系统中,防止访问冲突极为重要,但这有可能导致另一个问题:死锁。当通过"锁定"一个资源来防止任何其它线程访问这个资源,以避免竞争条件时,必须对设计进行评估,确保绝对不会发生死锁。死锁测试通常没有什么效果,因为只有某种特定顺序的资源锁定才可能产生死锁,而一般的测试不大可能导致这种顺序。

    死锁只不过是多线程环境中一个锁定资源的问题。以下四个条件必须同时具备,才会发生死锁。防止其中任何一个条件出现都可以排除死锁的可能性:

    * 相互排除---每次只有一个线程可以使用某个锁定的资源;

    * 非先占---其它线程不能强迫另一个线程释放资源;

    * 保持并等待---线程在等待需要的其它任何资源时,保持它们已经锁定的资源;

    * 循环等待---存在一个线程循环链,其中每个线程保持链中下一个线程所需要的资源。

    图1中的资源分配图是死锁问题的一个例子。线程1首先锁定Buf资源,在保持Buf时,指向Bus,然后是Mux。如果线程1一直运行到结束,它最终将释放所有这些资源。线程2运行时,必须指向Bus、Sem,最后是Mux。线程3运行时,需要Sem和Buf。

    在这个设计实例中,无法保证任何一个线程能够在另一个线程开始执行之前结束。如果一鱿叱滩荒艿玫叫枰 哪掣鲎试矗 移鹬葱?阻塞),直到该资源有效为止。在系统运行过程中,各线程都将对资源进行锁定或解锁。由于各线程运行和指向其资源的相对时序各不相同,有可能出现由于各个线程正在等待被其它线程保持的资源,导致所有线程都无法运行的情况。例如,如果线程1保持Buf,线程2保持Bus,而线程3已经取得了Sem,则系统将发生死锁。因为按照从Buf到Bus到Sem,再回到Buf的线程分配箭头,循环等待条件得到了满足。

    潜在死锁问题识别出来之后,通常很容易进行修复。在图2中,对线程3进行了修改,使其在得到Sem之前首先设法指向Buf。这样,循环等待的条件就被打破了,系统将不会再受到死锁的影响。

    一些操作系统过多地使用消息传递来进行线程间通信和同步。在这些类型的系统中,当某线程向另一个线程传递消息时,发送线程将阻塞,直到从接收线程收到响应为止。接收线程通常将一直阻塞到从其它某个线程接收到一个消息为止。这些结构中也会发生死锁。为了给一个基于消息的操作系统建立一张资源分配图,我们利用消息通道来模拟分配的资源。图3是一个例子。线程2建立了通道T2 Ch,当它未因为等待这个通道上的一个消息而阻塞时,线程2就将"锁定"这个通道。当它阻塞并等待一个消息时,另一个线程可在这个通道上向它发送一个消息,并且这个消息将立即被接收到。

    现在考虑下面这个系统:线程1指向Mutex并在通道T2 Ch上向线程2发送消息。在线程2中的某个地方,线程2在通道T3 Ch上向线程3发送消息。线程3也在通道T4 Ch上向线程4发送消息。在线程4中的某个地方,它也尝试指向Mutex,如果得不到,它就将阻塞。显然,各资源之间存在一条循环路径,这表明有可能发生死锁。例如,如果某一时刻线程1保持Mutex而线程4尝试指向它,线程4就将在Mutex上阻塞。然后当线程3尝试在通道T4 Ch上向线程4发送一个消息时,线程3将阻塞,等待来自线程4的应答(因为线程4是由于等待Mutex而阻塞,不是为了等待这个消息)。类似地,当线程2尝试向线程3发送一个消息时,将被阻塞;线程1尝试向线程2发送一个消息时也将阻塞,由于它仍然保持着Mutex,所以系统将发生死锁。

    对付死锁的最容易的办法是通过设计进行避免。采用以下任何一条设计约束都可排除死锁出现的可能性:

    * 任意时刻线程锁定的资源不超过一个。

    * 线程开始执行前就完全分配它所需的全部资源。

    * 指向多个资源的线程必须按照一种系统范围的预设顺序来锁定(并释放)这些资源。

    如果无法通过设计来避免死锁,则应该建立资源分配图。检查资源分配图可以识别潜在的死锁。通过仔细跟踪系统中的所有线程和它们锁定的共享资源,可以维护资源分配图并周期性地进行检查,及时发现循环等待的特征。

    建立资源分配图需要识别每个受保护的共享资源,以及指向其中某一资源的所有线程。如果使用一个操作系统,可以采用下面的过程步骤:

    1. 识别所有可能阻塞的系统调用,如Mutex_Lock(),每个受保护的共享资源总是有一些与访问它有关的阻塞调用。

    2. 识别出获取共享资源的阻塞调用之后,在源代码中查找它们的各次调用情况。

    3. 对于每次调用,记录下指向资源的线程名称和该资源的名称。通常调用本身将受保护的资源作为一个参数来传递,调用在源代码中所处的位置表明了哪个线程需要该资源。通过这种方式,可以识别出所有受保护的资源以及分配资源的线程。

    4. 建立资源分配图,并检查是否有任何资源存在循环路径。当线程和共享资源较少时,画出资源分配图比较简单。在较为复杂的系统中,最好将这些信息输入分析表格,并编写一个宏来检查线程和资源分配结构,以识别潜在的死锁。编写好宏之后,就可以快速地对资源分配变化进行重新评估。编写宏时,可以忽略不会导致死锁的资源之间的循环。在表2所示的例子中,各种资源之间有许多循环,但只有线程6和线程7之间可能存在死锁。

    在一些类型的系统中,预先确定每一个共享资源并建立分配图是不实际或不可能的。此时可以增加一些额外的代码,以便在系统运行时检测出潜在的死锁。许多不同的算法都致力于优化这个检测过程,但本质上它们几乎都动态地建立某种资源分配图。只要有线程请求、分配或释放资源,分配图就会被修改和检测,以确定是否存在表明潜在死锁的循环路径。

    检测到某个死锁之后,唯一的克服方法是强迫线程释放关键的资源。通常,这意味着中断正保持着所需资源的线程。对于某些应用,这种方法可能是无法接受的。另一个有趣的解决方案是在运行时收集资源分配情况并进行事后分析处理,以确定在程序运行过程中是否有死锁情况发生。尽管这种方法并不能防止在运行时发生死锁,但它确实有助于在死锁出现后发现问题并进行修复。

    还有一些工具也可以用来帮助发现代码中的死锁。例如,Solaris程序设计员可以采用Sun公司的LockLint工具来对代码进行统计分析。它可以发现对锁定技术的不一致用法,识别引起竞争条件和死锁的许多原因
     

  • 嵌入式软件设计中查找缺陷的几个技巧(上)

    2008-07-25 09:35:16

       大部分软件开发项目依靠结合代码检查、结构测试和功能测试来识别软件缺陷。尽管这些传统技术非常重要,而且能发现大多数软件问题,但它们无法检查出当今复杂系统中的许多共性错误。本文将介绍如何避免那些隐蔽然而常见的错误,并介绍的几个技巧帮助工程师发现软件中隐藏的错误。

    结构测试或白盒测试能有效地发现代码中的逻辑、控制流、计算和数据错误。这项测试要求对软件的内部工作能够一览无遗(因此称为"白盒"或"玻璃盒"),以便了解软件结构的详细情况。它检查每个条件表达式、数学操作、输入和输出。由于需要测试的细节众多,结构测试每次检查一个软件单元,通常为一个函数或类。

    代码审查也使用与实现缺陷和潜在问题查找同样复杂的技术。与白盒测试一样,审查通常针对软件的各个单元进行,因为一个有效的审查过程要求的是集中而详尽的检查。

    与审查和白盒测试不同,功能测试或黑盒测试假设对软件的实现一无所知,它测试由受控输入所驱动的输出。功能测试由测试人员或开发人员所编写的测试过程组成,它们规定了一组特定程序输入对应的预期程序输出。测试运行之后,测试人员将实际输出与预期输出进行比较,查找问题。黑盒测试可以有效地找出未能实现的需求、接口问题、性能问题和程序最常用功能中的错误。

    虽然将这些技术结合起来可以找出隐藏在一个特定软件程序中的大部分错误,但它们也有局限。代码审查和白盒测试每次只针对一小部分代码,忽视了系统的其它部分。黑盒测试通常将系统作为一个整体来处理,忽视了实现的细节。一些重要的问题只有在集中考察它们在整个系统内相互作用时的细节才能被发现;传统的方法无法可靠地找出这些问题。必须整体地检查软件系统,查找具体问题的特定原因。由于详尽彻底地分析程序中的每个细节和它与代码中所有其它部分之间的相互作用通常是不大可能的,因此分析应该针对程序中已经知道可能导致问题的特定方面。本文将探讨其中三个潜在的问题领域:

    * 堆栈溢出

    * 竞争条件

    * 死锁

    读者可在网上阅读本文的第二部分,它将探讨下列问题:

    * 时序问题

    * 可重入条件

    在采用多任务实时设计技术的系统中,以上所有问题都相当普遍。

    堆栈溢出

    处理器使用堆栈来存储临时变量、向被调函数传递参数、保存线程“状态”,等等。如果系统不使用虚拟内存(换句话说,它不能将内存页面转移到磁盘上以释放内存空间供其它用途),堆栈将固定为产品出厂时的大小。如果由于某种原因堆栈越出了编程人员所分配的数量范围,程序将变得不确定。这种不稳定可能导致系统发生严重故障。因此,确保系统在最坏情况下能够分配到足够的堆栈至关重要。

    确保永不发生堆栈溢出的唯一途径就是分析代码,确定程序在各种可能情况下的最大堆栈用量,然后检查是否分配了足够的堆栈。测试不大可能触发特定的瞬时输入组合进而导致系统出现最坏情况。

    堆栈深度分析的概念比较简单:

    1. 为每个独立的线程建立一棵调用树。

    2. 确定调用树中每个函数的堆栈用量。

    3. 检查每棵调用树,确定从树根到外部“树叶”的哪条调用路径需要使用的堆栈最多。

    4. 将每个独立线程调用树的最大堆栈用量相加。

    5. 确定每个中断优先级内各中断服务程序(ISR)的最大堆栈用量并计算其总和。但是,如果ISR本身没有堆栈而使用被中断线程的堆栈,则应将ISR使用的最大堆栈数加到各线程堆栈之上。

    6. 对于每个优先级,加上中断发生时用来保存处理器状态的堆栈数。

    7.如果使用RTOS,则加上RTOS自身内部用途需要的最大堆栈数(与应用代码引发的系统调用不同,后者已包含在步骤2中)。

    除此之外,还有两个重要事项需要考虑。首先,仅仅从高级语言源代码建立的调用树很可能并不完善。大部分编译器采用运行时库(run-time library)来优化常用计算任务,如大值整数的乘除、浮点运算等,这些调用只在编译器产生的汇编语言中才可见。运行时库函数本身可能使用大量的堆栈空间,在分析时必须将它们包括进去。如果使用的是C 语言,则以下所有类型的函数(方法)也都必须包含到调用树内:结构器、析构器、重载运算符、复制结构器和转换函数。所有的函数指针也都必须进行解析,并且将它们调用的函数包含进分析之中。

    第二,编译器使用一个C库来实现memcpy()、cos()和atof ()等标准函数,而这些例程的源代码可能无法得到。如果能够得到它们的源代码,就有可能确定程序用到的每个库调用在最坏情况下的堆栈使用数量。如果这些库只包含在目标文件中,则编译器厂商必须提供每个库例程使用的堆栈数。如果没有这些信息,就无法通过分析来确定最坏情况下程序使用的最大堆栈数。幸运的是,许多面向嵌入式系统的编译器厂商都提供这些信息。

    通常,每次一个函数被调用时,编译器将使用堆栈来保存返回地址并传递函数参数。函数的自动(局部)变量通常也在堆栈当中。不过,由于编译器会尽可能通过将参数或局部变量放入寄存器来优化代码,因此检查汇编语言以精确地确定堆栈用量非常重要。编译器也有可能在代码中的其它地方选择使用堆栈,如用堆栈来保存中间计算结果。

    有些与编译器一起打包销售的开发环境包含生成调用树的工具,还有许多第三方的调用树生成工具。但是,除非它们能够对汇编语言进行分析,否则这些工具可能会遗漏运行时库和C库的调用。不过无论在哪种情况下,开发分析汇编语言文件并提取函数名称以及各函数内部调用的脚本都比较简单。分析的结果可写入一个文件,而这个文件能够方便地输入到表格之中。

    确定了各个函数的堆栈用量之后,必须计算每个线程所需的最大堆栈数。由于一般程序通常涉及数百个函数,调用跨越多层深度,处理这些信息的一种简便方法就是采用分析表格。如表1所示,表格的各行包含了函数名称、该函数使用的最大堆栈数(包括调用其它函数所需的堆栈数),以及它调用的所有函数的清单。通过编程控制,这个表格从每个函数的"根"开始迭代循环,计算该函数及其调用的所有函数需要的堆栈。这些信息存放在堆栈路径列中,这样,采用每个线程根函数(如main)的堆栈路径数据就可以方便地计算出需要的最大堆栈数了。这个过程包含了先前介绍的堆栈分析过程中的前四个步骤。

    有时候,采用堆栈深度分析过程可能是无法做到,或者是不实际的。如果无法得到运行时库或C库的源代码,而编译器厂商又没有提供任何堆栈使用信息,就不可能进行完整的堆栈分析。在这种情况下,有两种选择:

    1. 在测试期间,观察堆栈所能达到的深度,并保证有较大的堆栈空间余量。

    2. 检测堆栈溢出,并采取改进措施。

    观察堆栈深度的方法很简单:

    * 向整个内存堆栈区写入一个特定的数据图案符号,如55AA。

    * 在预期使用最大堆栈空间的条件下运行系统。

    * 使用仿真器或其它工具检查堆栈存储区,看有多少符号图案由于堆栈的使用而被改写了。

    当然,这些步骤并不能保证在一些不同条件下不会需要更多的堆栈,但确实可以表明所需要的最小堆栈数。

    使用带内存管理单元(MMU)的处理器时,有可能检测出运行时的堆栈溢出现象。MMU将内存划分为多个区域,用一个受保护的内存段来“警戒”堆栈区域。发生堆栈溢出时,处理器将访问这个受保护段。这个操作将引发一个异常事件(如产生SIGSEGV信号),可被程序捕获到。创建线程时,与实时POSIX标准兼容的RTOS提供有这种堆栈警戒功能选项,大大简化了编程人员的工作。GNU工具等其它开发环境包含有编译器开关,可在程序中添加实现堆栈警戒功能所需的代码,但它们仍然依靠底层操作系统来有效地处理堆栈溢出。但是,按照这种方式检测溢出还只是问题的一部分。为了使这类设计更为有效,系统必须能够从堆栈溢出中恢复过来并继续正确地工作。

    在一个对安全或任务要求严格的应用中,系统运行时在测试或检测堆栈溢出期间监视堆栈的深度可能并不是一项足够的风险控制措施。对于一些应用,必须确保系统绝对不会越出所分配的堆栈范围;只有通过完整的堆栈深度分析才能证明这一点。这意味着,如果整个程序在同一内存空间运行,则必须对所有代码执行这项分析。不过,如果使用MMU,分析常可简化。在设计系统时,可将所有关键代码置于一个或多个独立线程内,而这些线程分别在各自的保护内存段中运行。这样,只要对这些关键线程进行堆栈使用分析就可以了。当然,这项简化设计假定当非关键线程溢出其堆栈并失效时,关键线程仍可正确执行。

    由于分析工作所需的堆栈使用数据来自汇编语言清单,因此修改代码时,相应模块的堆栈使用信息必须予以更新。如果使用不同的编译器版本,或者改变了优化设置,也必须复核整个分析过程。在理想情况下,编译器将提供每个函数(如果不是每个线程的话)的堆栈使用数量,因为它拥有计算需要的所有信息。例如,瑞萨公司提供有Call Walker,这是该公司高性能的Embedded Workshop开发环境的一部分。这个工具可以图形化地显示每个函数使用的调用树和堆栈,包括运行时库和C库的函数。Call Walker也能找出使用堆栈数量最大的路径。使用这样的工具可以实现步骤1到步骤3的自动化。


     

  • JAVA错误处理大集合

    2008-07-24 15:57:32

    JAVA错误处理大集合

    0、 需要标识符
    a) 不在函数内
    1、 非法表达式开始
    b) 可能:丢失括号 .
    2. no data found
    a) 可能:setInt(1,100)中,没有100这个值
    3. 找不到符号
    a) 可能:没导入包
    4. 指定了无效URL
    a) 可能:数据库名或IP错误,即连接出错
    5. 类路径没有找到
    a) 可能: ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    b) 原因: 一般是指包名写错,或者没有import包,或者没有在类路径中找到jar文件
    c) 解决: 没有加载Oracle驱动jar,在.bash_profile中把ojdbc14.jar加进来
    6. 空指针异常
    a) 可能: 数据源错误 比如数据库名或IP错误
    7. 不能执行查询
    a) 可能: 数据库中表的问题,比如列名不存在
    8. invalid identity
    a) 可能: 列名出错
    9. 若在数据库中创建了 两个sequence ,运行时出现异常可能是先后执行了多次select语句,导致与原有的序列号产生冲突
    10. 表名或列名不存在
    a) 可能:表不存在或者没有插入数据到表中
    11. 不支持的类,类的版本错误
    a) 可能:没有导入jdk5.0,或者编译器仍为1.4
    12. MappingNotFoundException
    a) Maybe: In the Eclipse Not refersh , or not exist in the dirctory
    13. HibernateException: /hibernate.cfg.xml not found
    a) Maybe1: hibernate.cfg.xml not in the root directory
    b) Maybe2: Could not parse configuration .
    c) resolve: database not connect or use another database
    14. ConstraintViolationException
    a) Maybe: used a not true database
    15. 驱动没有找到 或者 JDBC Driver not found
    可能:连接数据库的驱动jar包不存在或者版本不一致,比如将旧的版本换成新的会造成该类错误
    16. 空指针异常 , java.lang.NullPointerException 
    a) 可能1:数据库连接出错,比如在hibernate.cfg.xml中的数据错误会导致异常。
    17. 数据插入异常 ,GenericJDBCException: could not insert
    a) 可能1:没有建立表或者表中没有任何数据
    b) 可能2:插入数据后没有执行提交语句:commit
    18. LazyInitializationException 或者延迟加载异常
    a) 可能1:没有在查询语句中加fetch
    19. IdentifierGenerationException
    a) 可能1:高位表没有初始化(比如hi_value中没有记录)
    20. could not initialize a collection: [hibernate.entity.Role.modules#32768] Syntax error: Encountered "-" at line 1, column 132.
    a) 错误原因:<set name="modules" table="module-role" lazy="false">红色字部分中“-”为非法字符,替换为module_role
    21. could not insert collection rows: [hibernate.entity.Module.roles#1]
     在Module.hbm.xml文件的如下配置中加入inverse=”true”
    <set name="roles" table="module_role" inverse="true">

    22.在部署Struts时,出现如下错误信息:
    HTTP Status 404 - Servlet action is not available
     
    type Status report
    message Servlet action is not available
    descrīption The requested resource (Servlet action is not available) is not available.
    问题原因:
    1.、web.xml文件中未配置ActionServlet。
    2、struts-config.xml文件未配置你要访问的Action。
    3、你的jsp文件form标记中action属性的路径名称错误。
    4、非以上三种情况。
    针对以上4种情况相应的解决方案如下:
    1、在web.xml文件中加上ActionServlet的配置信息
    ?????? /WEB-INF/struts-config.xml?
    ?2、在struts-config.xml文件检查你要访问的Action配置文件。
    3、检查jsp文件form标记中action属性的路径名称是否与struts-config.xml文件中action标记的path属性的路径名称一致。
    4、非以上情况的解决办法就是检查web容器的log日志,如果时tomcat则检查下logs目录下的localhost_log文件,看里边是否记录有错误信息,然后根据错误信息提示将其纠正。

    23.java.lang.NoClassDefFoundError: org/apache/commons/beanutils/Converter
    缺少spring-framework-2.0.3\lib\jakarta-commons\commons-beanutils.jar
    24.
    ava 代码Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/Type  
    缺少spring-framework-2.0.3\lib\asm\asm-2.2.2.jar包,版本不同,该包的名字有相应的区别

    java 代码Caused by: java.lang.NoClassDefFoundError: org/dom4j/DocumentException  
    缺少spring-framework-2.0.3\lib\dom4j\dom4j-1.6.1.jar包,版本不同,该包的名字有相应的区别
    把这个包进去就可以了:\Spring206\lib\dom4j、dom4j-1.6.1.jar

    java 代码Caused by: java.lang.NoClassDefFoundError: org/apache/commons/collections/SequencedHashMap  
    缺少spring-framework-2.0.3\lib\jakarta-commons\commons-collections.jar包,版本不同,该包的名字有相应的区别

    java 代码Caused by: java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter  
    缺少spring-framework-2.0.3\lib\cglib\cglib-nodep-2.1_3.jar包,版本不同,该包的名字有相应的区别

    java 代码Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor  
    缺少hibernate-3.2\lib\asm.jar包,版本不同,该包的名字有相应的区别

    java 代码
    org.hibernate.exception.SQLGrammarException: could not load an entity: [www.proudsoul.xml.User#1] 
    JAVA工程与WEB工程包的区别:一个是asm.jar,一个是jta.jar

    java 代码Caused by: java.lang.NoClassDefFoundError: javax/transaction/TransactionManager  
    缺少spring-framework-2.0.3\lib\j2ee\jta.jar包,版本不同,该包的名字有相应的区别此种错误请检查相应的***.hbm.xml配置文件的配置

    25,
    Exception in thread "main" org.springframework.dao.InvalidDataAccessResourceUsageException: could not get next sequence value; nested exception is org.hibernate.exception.SQLGrammarException: could not get next sequence value
    Caused by: org.hibernate.exception.SQLGrammarException: could not get next sequence value
    原因:没有加Sequence或者数据库的方言写错了

    26,
    我的配置文件
        <id name="id" column="id">
                <generator class="native" />
            </id>
    然后我运行保存一条数据进去
    The database returned no natively generated identity value
    就会报这个错误
    因为你native是根据看底层数据库的能力选择identity, sequence 或者hilo中的一个
    而我建表的时候id没有指定
    alter table `student` change `id` `id` int auto_increment
    我们把我们的表的结构小小的改动一下就没问题了

    27,
    UpdateManager无法启动2007-08-09 15:21如果在应用程序安装过程中,暴力中断安装程序,会出现如下状况:1.apt-get remove 和dpkg --remove 无法删除软件 2.UpdateManager无法启动3.新立得软件包管理程序无法启动
    以上可能是deb损坏之类造成的
    sudo dpkg -r sqldveloper
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树... 完成
    E: 软件包 sqldeveloper 需要重新安装,但是我无法找到相应的安装文件。
    解决方法:1.从 /var/lib/dpkg/status 中把对应的段删掉
    重要:修改之前请先备份
    在status中找到你对应的包删除就OK了...

    28,
    Exception in thread "main" java.lang.NoClassDefFoundError: antlr/ANTLRException
    少了antlr-2.7.5H3.jar包,从D:\eclipse\eclipse\plugins\com.genuitec.org.hibernate.eclipse_4.1.1\myeclipse-data\3.0\lib

    29,
    Caused by:
    java.lang.NoClassDefFoundError: javax/transaction/Synchronization
    缺少Spring206\lib\j2ee\jta.jar

    30,
    Caused by:
    java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy3] to required type [business.impl.PriceBiz] for property 'priceBiz': no matching editors or conversion strategy found
    在java类中设置priceBiz时应该设置的是接口PriceBizIf,而非实现类

    18, 数组越界
     可能1: 在命令行后面需要加入参数.
     可能2:加入的参数错误
    19, car is not mapped
     可能1: 在cfg.xml中没有增加映射的hbm.xml文件在<mapping.../>中   
    20, 属性没有找到
     可能1: hbm.xml文件中的 <property name =""> 有问题, 也许是name的值与对应类中的成员名不一致
    21,SQLException: 无当前连接          可能1:在比如创建帐户时没有对相应的方法添加到<list>中去,比如这个没有加入:<value>newAccount</value>
     
     <bean id="transactionAdvisor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
      <property name="advice">
       <ref bean="advice"/>
      </property>
      <property name="mappedNames">
       <list>
        <value>transfer</value>
       </list>
     </bean>
    22,SQLException: Syntax error: Encountered "table" at line 1, column 8.
     可能1;执行SQL时出现冲突,可能是SQL语句中使用了关键字作为变量来用,比如
      update order set balance=1000000;
      其中order被用作表名来使用,这是错误的,因为order是个关键字,用在order by中

    23, Servlet /Spring-WebMvc threw load() exception
    org.xml.sax.SAXParseException: Document root element "beans", must match DOCTYPE root "null".
     jar包的冲突,spring-1.2.6.jar和spring.jar出现在一个war的目录中:JBoss/server/all/deploy/Spring-WebMvc.war/WEB-INF/lib   

    24, java.sql.SQLException: 当事务仍处于活动状态时,无法关闭连接。


    25 ,
    validateJarFile(/home/soft01/Tomcat/webapps/sms-token-struts/WEB-INF/lib/servlet-api.jar)
    Servlet /sms-struts-tiles threw load() exception
    java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet
    原因:在WEB-INF/lib/ 目录下有servlet-api.jar与/Tomcat/common/lib目录下的servlet-api.jar冲突了,把WEB-INF/lib/下的servlet-api.jar删除就可以了

    26,java.lang.ClassNotFoundException: org.springframework.web.struts.ContextLoaderPlugIn
    Marking servlet action as unavailable
    10:30:47,088 ERROR [/NetCT_OSS]:3953 - Servlet /NetCT_OSS threw load() exception
    javax.servlet.UnavailableException

    27,org.xml.sax.SAXParseException: Document root element "beans", must match DOCTYPE root "null".
    缺少MyEclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.5.0/data/2.0/dist/modules/spring-struts.jar

    28,Caused by: java.sql.BatchUpdateException: ORA-02291: integrity constraint (SD0702.FK82D343CF49A4B831) violated - parent key not found
    Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
    有可能是ID生成策略的问题,我将它XML映射文件改成<generator class="increment" />就好了

    29,
    2007-08-19 16:21:43,290 ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/OSS].[action]] - Servlet.service() for servlet action threw exception
    org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [entity.Module#2]
    java.util.ConcurrentModificationException
    原因:已经有对象拥有了所选择的module,用clear(),而不是remove();

    30,
    ERROR [org.apache.catalina.session.ManagerBase] - IOException while loading persisted sessions: java.io.InvalidClassException: entity.Module; local class incompatible: stream classdesc serialVersionUID = -5988350031935445758, local class serialVersionUID = -297934247726484429
    java.io.InvalidClassException: entity.Module; local class incompatible: stream classdesc serialVersionUID = -5988350031935445758, local class serialVersionUID = -297934247726484429
    在Module中加上一个关键字:transient

    31,
    Caused by: java.sql.BatchUpdateException: ORA-02292: integrity constraint (SD0702.SYS_C00132664) violated - child record found
    原因:有其他的表引用了该表的外建,所以报这个异常,如果没有引用就不会出现

    32,
    出现数组越界的时候,看看是不是循环时没有加=,比如:
    for(int i = 1; i<arr.length;i++)可以改成
    for(int i = 1; i<=arr.length;i++)

     

    1.如果使用Ant和Junit是被报找不到test,检查一下是否误用了private
    出错信息:
        <failure message="No tests found in test.AllTest" type="junit.framework.AssertionFailedError">junit.framework.AssertionFailedError: No tests found in test.AllTest
    该错误有个很特别的特点,当你不通过ant来运行测试,而是通过AllTest类来运行的话,可以正常运行。小心哦

    2.如果遇到报:表名无效,且jvm报严重错误,看看是不是用了数据库的保留关键字来做表名了,如User。

    3.使用ant时必须小心ant的classpath它用的不是IDE的classpath,小心!

    4.小心下边的异常,
    exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) setter of xp.bean.Users.?" type="net.sf.hibernate.PropertyAccessException">java.lang.ClassCastException at xp.bean.UsersMetaClass1.setPropertyValues(<generated>) at net.sf.hibernate.persister.AbstractEntityPersister.setPropertyValues
    上次出现该错错误的原因是:
    源文件里我的class类型为一个类Contact contact
    而跑到mapping里却成了Set,呵呵厉害。

    5.突然间冒出大量的NullPointException
    重新build一下看看先。

    6.="Flush during cascade is dangerous - this might occur if an object was deleted and then re-saved by cascade"

    7.Tapestry的出错信息:
    Class com.bookshop.Hello does not implement the IPage interface.
    location: context:/WEB-INF/Home.page, line 6
    原因:与显示有关的哪个java类没有从IPage家族继承。

    8.使用ant时给出的路径好象不允许出现空格。

    9.由于使用ant时用junit做测试的话,classpath中出现j2ee.jar的话,问题多多。例如xml格式的log文件生成不了,莫名其妙的NullPointException等。所以我设置了两个包个包含j2ee.jar,为编译用;一个没有,为junit用

    10.进行单元测试时,在查询返回后应马上assertNotNull(),这样可以更快速的定位NullPointException

    11.要使用ResourceBundle的话,要千万小心。必须用日志记录下它的状态。还有该属性文件应该放在classes下面。

    12.当要显示任何页面时,都被提示无效,那么应该检查一下lib目录了,还有一些很奇怪的异常,例如你明明可以找到一个类但是服务器却提示ClassNotDefException,那么估计是缺少了该类所必须的包了。或者多了不兼容的包,如, xdoclet系列包不被struts的lib目录所兼容

    13.编写clone时从Java编程思想(2nd)上学到的(732):
    .引数传递过程中会自动产生别名(alias)。
    .没有局域对象(local objects),只有局域性的(local)references。
    .reference受范围(scope)的限制,对象则否。
    .对象的寿命从来不是Java的讨论议题(因为有垃圾回收机制)

    14.try catch finally的域居然是分离的。

    15.jsp乱码的其中一个原因:charset="gb2312" 等号"="的两边不允许有空格。

    16.我的基于Displaytag的简单报表解决方案。
    http://displaytag.sourceforge.net/
    下载displaytag.jar和displaytag.tld
    displaytag.jar放在lib目录,而displaytag.tld放在WEB-INF目录,在web.xml中为displaytag.tld声明一下。
      <taglib>
        <taglib-uri>http://displaytag.org</taglib-uri>
        <taglib-location>/WEB-INF/displaytag.tld</taglib-location>
      </taglib>
    在jsp里使用前,加上
      <%@ taglib uri="
    http://displaytag.org" prefix="display" %>
           
    注意该软件有个bug,他要用的一个包common-lang.jar版本必须在2.0以上。
    如果碰到下面异常,则应坚持一下是否该包的版本问题。
    java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.capitalize(Ljava/lang/String;)Ljava/lang/String;
    然后就可放心使用了
    <display:column property = "xxx"/>其中xxx为对象中的带有getter的变量>。
    定义表格的样子,用css定义。如
    TABLE.its THEAD TR {
     BACKGROUND-COLOR: #69c
    }
    TABLE.its TR.even {
     BACKGROUND-COLOR: #def
    }
    在使用分页时,可能会出现这种情况,点击其他页时,弹出下载窗口,让你下载当前jsp页面,这是因为你在当前页面读取了数据的缘故。解决办法为在action里读取数据而不是在jsp里。可以参考
    http://www.displaytag.org/example-paging.jsp?d-26189-p=2

    17.使用displaytag时,在一列中放入多个元素
    必须在display:table中定义一个id
    <display:table name = "allBooks" class = "its" pagesize = "5" id = "item">
      <display:column title = "操作">
        <a href = "/Bookshop/admin/bookManagement.do?action=view&id=<%=((Book)item).getId()%>" target = "_blank" >查看</a>
        <a href = "/Bookshop/admin/bookManagement.do?action=edit&id=<%=((Book)item).getId()%>">编辑</a>
        <a href = "/Bookshop/admin/bookManagement.do?action=delete&id=<%=((Book)item).getId()%>">删除</a>
      </display:column>
    要在displaytag中使用链接,必须具备paramId,否则不显示为链接
     <display:column property = "product.name" href = "viewDetailV2.0.jsp" title = "书名" paramId="item" paramProperty="product.id"/>
    可以这样使用display
      <display:column property = "product.id" title = "ID"/>
    其中product为对象

    18.<bean:write name = "xxxx" property = "xxx"/> 可以直接取到session.getAttribute()取到的东西。

    19.实验struts-upload例子时要注意的地方:
       1.If you would rather write this file to another file, please check here:
     这一行要打钩
       2.If you checked the box to write to a file, please specify the file path here:
    在这里要重命名如:c:\b.jpg
    上传成功的话,会出现提示 The file has been written to "c:\b.jpg"

    20.Hibernate的like可以这么用:
          Query query = session.createQuery("from src.persistent.Book as book where upper(book.name) like :name ");
          query.setString("name", "%");
          result = query.list();

    21.Hibernate出现 duplicate import : className
    异常也可能是因为忘了为持久类在configuration中addClass了
         
    22.<logic:iterate id = "author" name = "authors">
    name所引用的是session里的attribute。

    23.如果发现要出现询问下载的情况,有可能是因为要跳转的页面出现了问题。试试在要跳转到的页删掉
    <%@ page contentType="text/html; charset=gb2312"%>

    24.如果JSP页面跳转时出现下边的错误信息:
    The request sent by the client was syntactically incorrect (Invalid path /web/shoppingCart was requested).
    原因是struts-config的action = "x" 写成了 action = "x.do"

    25.在struts中,strut-config.xml中,forward时使用redirect = "true"可以将.do重定向为.jsp

    26.以后在判断相等性之前先用logger把两个值显示出来。

    27.从session里getAttribute后,修改并不需要重新setAttribute一次。

    28.在hibernate中使用subclass是一棵继承树共用一个表,仅生成个mapping。
    每个类中必须有discrimator-value。在最上层的类中必须声明:
    @hibernate.discriminator column = "class"。
    不可以将子类添加到configuration里去。(即不可addClass(子类))
    使用Xdoclet的建立subclass的例子(该类是父类)
    /**
     * @hibernate.class discriminator-value = "customer"
     * @hibernate.discriminator column = "class"
     */

    而使用joined-subclass则是一类一表,也不许将子类添加进configuration里去。
    /**
     * @hibernate.joined-subclass
     * @hibernate.joined-subclass-key
     * column="customer_id"
     */
    如果发现生成的mapping文件中joined-subclass的key column为空,那么可能是@hibernate.joined-subclass-key这句没有写对。
    用joined-subclass生成的表,仔细看。Member extends Customer
    create table Customer (
       id VARCHAR2(255) not null,
       name VARCHAR2(255),
       descrīption VARCHAR2(255),
       primary key (id)
    )
    create table Member (
       customer_id VARCHAR2(255) not null,
       password VARCHAR2(255),
       primary key (customer_id)
    )

    29.在junit中尽量使用assertEquals代替assertTrue;

    30.Hibernate
    如果Child extends Parent
    那么from Parent as parent 也将会将Child选出来,而from Child as child 则不会选出Parent

    31.Hibernate
    使用hibernate的one-to-one时,应该两方向都set,否则会报save NullPointException
    parent.setChild(child);
    child.setParent(parent);

    32.Hibernate
    遇到下边的异常,估计是与因为外键出现了问题:

    java.lang.NullPointerException
     at net.sf.hibernate.persister.AbstractEntityPersister.getPropertyValue(AbstractEntityPersister.java:675)
     at net.sf.hibernate.id.ForeignGenerator.generate(ForeignGenerator.java:33)
    如:
    * @hibernate.id generator-class = "foreign"
    * @hibernate.generator-param name = "property" value = "customer"
    * @hibernate.one-to-one name = "custmoer" class = "src.persistent.Customer"
    value的值和one-to-one 中name的值不符,则会出现上边的异常。如果不显示指定name则默认取成员变量名

    Customer a
    则name = "a" 需要小心的是不是类名。所以,以后最好显示指定名字为好。

    33.出现异常:
    Exceptionobject references an unsaved transient instance - save the transient instance before flushing: src.persistent.Product
    原因没有为某对象进行set设置, 如上边的这个就是某对象没有调用setProduct

    34.
    "xxx action = "/a" 不用.do和根目录名
    <a href = "b.do" 需要.do和根目录名

    35.
    Caused by: java.sql.SQLException: ORA-02291: 违反完整约束条件 (BOOKSHOP.FK4AAEE
    47687CCA6B) - 未找到父项关键字
    如果你觉得该做的e是出现这个问题,那么检查一下,是否将类的继承关系在hibernate的mapping中反映了出来。joined-subclass或subclass
    例如a extends b
    如果持久类c 需要Set的是持久类a,那么你把b传入,而b又没有在mapping中将父子关系反映出来的话,就会出现该异常

    36.使用DynaActionForm需要注意的问题
    在struts-config声明
    <form-bean name="memberloginForm" dynamic ="true" type="org.apache.struts.action.DynaActionForm">
      <form-property name = "name" type = "java.lang.String"/>
      <form-property name = "password" type = "java.lang.String"/>
    </form-bean>
    在Action里将form强制转化成DynaActionForm,然后get("属性名")就可以了

    37.那位大侠能给出一个用hibernate进行分页得实际例子,学习中!
    http://forum.hibernate.org.cn/viewtopic.php?t=1772
    Query q = s.find(".....");
    q.setFirstResult(10);   //  从第11条记录开始
    q.setMaxResults(100);  //  取出100条
    ......

    38.struts的validate最简单实现
    1.首先准备好错误提示信息。
    xxx.properties 里
    errors.required={0} is required.(默认已有)
    2.Form必须从ValidatorForm继承
    3.不可以重载ValidatorForm的validate函数
    4.在validate.xml中为你想验证的表单进行验证设计。例如
    <form name="logonForm">
        <field property="userName" depends="required">
     <arg0 key="prompt.userName"/>
     (该参数将在显示错误信息是从xxx.properties读取prompt.userName,填入{}方括号里,取代0。如果是arg1将将填入{1}位置,以此类推。
        </field>
    </form>
    不需要在action里做任何处理。只管forward就行了。作为forward的目标页,不需要任何有关用于处理出错信息的处理。

    39.服务器报
    The requested resource (/xxxx/xxx.htm) is not available.的很奇怪的一个的可能原因
    在web.xml中定义的tld,没有找到
    或者是lib目录下的包太多出现了问题。

      <taglib>
        <taglib-uri>/spring</taglib-uri>
        <taglib-location>/WEB-INF/spring.tld</taglib-location>
      </taglib>
    如WEB-INF目录下不存在spring.tld的话,就会报上边的错误

    40.
    spring的xxx-servlet.xml的使用SimpleFormController系列的类问题:
      <bean id = "priceIncreaseForm" class="PriceIncreaseFormController">
        <property name="sessionForm"><value>true</value></property>
        <property name="beanName"><value>priceIncrease</value></property>
        <property name="commandClass"><value>PriceIncrease</value></property>
        <property name="formView"><value>priceIncrease</value></property>
        <property name="successView"><value>hello</value></property>
        <property name="productManager">
          <ref bean="prodMan"/>
        </property>
      </bean>
    这里要注意几个问题:
    (1)上边的PriceIncrease是了类名,必须在classes里存在该类,否则报:
    PropertyVetoExceptionsException: 1 errors:-- ErrorCodedPropertyVetoException: message=[Failed to convert property value of type [java.lang.String] to required type [java.lang.Class] for property named 'commandClass'; nested exception is:
     java.lang.IllegalArgumentException: Invalid class name [PriceIncrease]: PriceIncrease]; errorCode=[typeMismatch]
    java.lang.IllegalArgumentException: Invalid class name [PriceIncrease]: PriceIncrease
    (2)<property name="formView"><value>priceIncrease</value></property>
    这一行必不可少,priceIncrease是页面的名字,他将会是prefix + priceIncrease + suffix
    如果缺少该行,则报:
    javax.servlet.ServletException: Error in ModelAndView object or View resolution encountered by servlet with name 'pocketSpring': View to render cannot be null with ModelAndView [ModelAndView: materialized View is [null]; Model=[{priceIncrease=PriceIncrease@148e798, org.springframework.validation.BindException.priceIncrease=org.springframework.validation.BindException: BindException: 0 errors}]]

    使用Errors的rejectValue相关问题:
    rejectValue(java.lang.String field, java.lang.String errorCode, java.lang.Object[] errorArgs, java.lang.String defaultMessage)
    Reject the given field of the current object, using the given error descrīption.
    当前对象指的是xxx-servlet.xml中与validator类有联系的哪个对象。
             
    第一个是:当前对象的属性名,必须存在
    第二个是:将要从属性文件中读取的消息
    第三个是:传递给所读取的消息的参数,如:
    error.too-low=You have to specify a percentage higher than {0}!
    第四个是:当从属性文件中读取消息不成功时,所reject的值

    以后从request中读取parameter可以借用spring的RequestUtils包里的
    getStringParameter
    public static java.lang.String getStringParameter(javax.servlet.http.HttpServletRequest request,
                                               &bsp;      java.lang.String name,
                                                      java.lang.String defaultVal)
    Get a string parameter, with a fallback value. Never throws an exception. Can pass a distinguished value to default to enable checks of whether it was supplied.
    不会抛异常
    Hibernate的问题:2.1rc的问题
    INFO: cache provider: net.sf.ehcache.hibernate.Provider
    net.sf.hibernate.HibernateException: could not instantiate CacheProvider:
    解决办法,2.1rc比以前的版本多需要一个包
    ehcache.jar

    43.static的问题
    static函数只可以访问static成员变量。
    而static变量可以被任何成员函数访问。

    44.
    java.lang.NoClassDefFoundError: javax/transaction/Synchronization];
    需要添加JTA.jar


     

  • 中国人的8大消费心理

    2008-07-23 15:37:03

     一、 面子心理

      中国的消费者有很强的面子情结,在面子心理的驱动下,中国人的消费会超过甚至大大超过自己的购买或者支付能力。营销人员可以利用消费者的这种面子心理,找到市场、获取溢价、达成销售。

      脑白金就是利用了国人在送礼时的面子心理,在城市甚至是广大农村找到了市场;当年的TCL凭借在手机上镶嵌宝石,在高端手机市场获取了一席之地,从而获取了溢价收益;终端销售中,店员往往通过夸奖消费者的眼光独到,并且产品如何与消费者相配,让消费者感觉大有脸面,从而达成销售。

     

     二、 从众心理

      从众指个人的观念与行为由于受群体的引导或压力,而趋向于与大多数人相一致的现象。消费者在很多购买决策上,会表现出从众倾向。比如,购物时喜欢到人多的商店;在品牌选择时,偏向那些市场占有率高的品牌;在选择旅游点时,偏向热点城市和热点线路。

      以上列举的是从众心理的外在表现,其实在实际工作中,我们还可以主动利用人们的从众心理。比如:现在超市中,业务员在产品陈列时故意留有空位,从而给人以该产品畅销的印象;电脑卖场中,店员往往通过说某种价位以及某种配置今天已经卖出了好多套,从而促使消费者尽快做出销售决策;SP行业中,在推铃声广告的时候,往往也多见最流行铃声推荐的字眼,最流行也就是目前最多人喜欢,这都是在主动的利用消费者的从众心理。

     

     三、 推崇权威

      消费者推崇权威的心理,在消费形态上,多表现为决策的情感成分远远超过理智的成分。这种对权威的推崇往往导致消费者对权威所消费产品无理由的选用,并且进而把消费对象人格化,从而达成产品的畅销。

     现实中,营销对消费者推崇权威心理的利用,也比较多见。比如,利用人们对名人或者明星的推崇,所以大量的商家在找明星代言、做广告;IT行业中,软件公司在成功案例中,都喜欢列举一些大的知名公司的应用;余世维先生有说在自己汽车销售店中,曾经以某某车为某某国家领导人的座车为卖点,从而让该车销售火爆;更大的范围内,很多企业都很期望得到所在行业协会的认可,或者引用专家等行业领袖对自己企业以及产品的正面评价。 

     

       四、 爱占便宜

      刘春雄先生说过:”。“便宜”与“占便宜”不一样。价值50元的东西,50元买回来,那叫便宜;价值100元的东西,50元买回来,那叫占便宜。中国人经常讲“物美价廉”,其实,真正的物美价廉几乎是不存在的,都是心理感觉的物美价廉。

      他进而说道:消费者不仅想占便宜,还希望“独占”,这给商家有可乘之机。比如,女士在服装市场购物,在消费者不还价就不买的威胁之下,商家经常做出“妥协”:“今天刚开张,图个吉利,按进货价卖给你算了!”“这是最后一件,按清仓价卖给你!”“马上要下班了,一分钱不赚卖给你!”这些话隐含如下信息:只有你一人享受这样的低价,便宜让你一人独占了。面对如此情况,消费者鲜有不成交的。除了独占,另外消费者并不是想买便宜的商品而是想买占便宜的商品,这就是买赠和降价促销的关键差别。  

      五、 害怕后悔

      每一个人在做决定的时候,都会有恐惧感,他生怕做错决定,生怕他花的钱是错误的。按照卢泰宏先生提到的就是购后冲突,所谓购后冲突是指:消费者购买之后出现的怀疑、不安、后悔等不和谐的负面心理情绪,并引发不满的行为。

     

      通常贵重的耐用消费品引发的购后冲突会更严重,为此国美针对消费者的这个心理,说出了“买电器,到国美,花钱不后悔”,并作为国美店的店外销售语。进一步说在销售的过程中,你要不断地提出证明给顾客,让他百分之百地相信你。同时你必须时常问你自己,当顾客在购买我的产品和服务的时候,我要怎样做才能给他百分之百的安全感?  

     

      六、 心理价位

      任何一类产品都有一个“心理价格”,高于“心理价格”也就超出了大多数用户的预算范围,低于“心理价格”会让用户对产品的品质产生疑问。因此,了解消费者的心理价位,有助于市场人员为产品制定合适的价格,有助于销售人员达成产品的销售。

      在IT行业,无论是软件还是硬件设备的销售,如果你了解到你的下限售价高于客户的心理价位,那么下面关键的工作就是拉升客户的心理价位,相反则需要适度提升你的售价;心理价位在终端销售表现就更为明显,以服装销售为例,消费者如果在一番讨价还价之后,如果最后的价格还是高于其心理价位,可能最终还是不会达成交易,甚至消费者在初次探询价格时,如果报价远高于其心理价位,就会懒得再看扭头就走。  

      七、 炫耀心理

      消费者炫耀心理,在消费商品上,多表现为产品带给消费者的心理成分远远超过实用的成分。正是这种炫耀心理,在中国目前并不富裕的情况下,创造了高端市场,同时利用炫耀心理,在国内企业普遍缺乏核心技术的情况下,有助于获取市场,这一点在时尚商品上表现得尤为明显。

     

      为什么这样说呢?女士都钟爱手袋,一些非常有钱的女士为了炫耀其极强的支付能力,往往会买价值几千甚至上万的世界名牌手袋。同时国内的TCL和夏新手机,之前在缺乏核心技术的情况下,在与NOKIA和MOTO的竞争中,劣势不是特别明显,其中通过工业设计给手机时尚的外表造型就功不可没。因此,对消费者来说,炫耀重在拥有或者外表。

      

      八、 攀比心理

      消费者的攀比心理是基于消费者对自己所处的阶层、身份以及地位的认同,从而选择所在的阶层人群为参照而表现出来的消费行为。相比炫耀心理,消费者的攀比心理更在乎“有”——你有我也有。

      MP3、MP4、电子词典的热销并且能形成相当的市场规模,应该说消费者的攀比心理起到推波助澜的作用。很多商品,在购买的前夕,萦绕在消费者脑海中最多的就是,谁谁都有了,我也要去买。在计算机的配置中,也多见学生出于同学们都有的心理,也要求父母为自己购买计算机。对营销人员来说,我们可以利用消费者的攀比心理,出于对其参照群体的对比,有意强调其参照群体的消费来达成销售。

  • 持续集成与测试自动化

    2008-07-22 09:05:45

    自动化测试就是希望能够通过自动化测试工具或其他手段,按照测试工程师的预定计划进行自动的测试,目的是减轻手工测试的劳动量,从而达到提高软件质量的目的。自动化测试的目的在于发现老缺陷。而手工测试的目的在于发现新缺陷。

    测试自动化涉及到测试流程、测试体系、自动化化编译、持续集成、自动发布测试系统以及自动化测试等方面整合。也就是说要让测试能够自动化,不仅是技术、工具的问题,更是一个公司和组织的文化问题。首先公司从资金、管理上支持您,其次要有专门的测试团队去建立适合自动化测试的测试流程、测试体系;其次就是把原代码从受控库中取出、编译、集成、发布可运行系统、进行自动化的单元测试和自动化的功能测试的过程。

    (一)、自动化测试的好处

    1、 对新版本执行回归测试--测试每个特征

    对于产品型的软件,每发布一个新的版本,其中大部分功能和界面都和上一个版本相似或完全相同,这部分功能特别适合于自动化测试, 从而可以让测试达到测试每个特征的目的。

    2、 更多更频繁的测试--沉闷、耗时

    我们的产品向市场的发布周期是3个月,也就是我们的开发周期只有短短的3个月,而在测试期间是每天/每2天都要发布一个版本供测试人员测试,一个系统的功能点有几千个上万个,人工测试是非常的耗时和繁琐,这样必然会使测试效率低下。

    3、替代手工测试的困难--300个用户有些非功能性方面的测试:压力测试、并发测试、大数据量测试、崩溃性测试,用人来测试是不可能达到的。 在没有引入自动化测试工具之前,为了测试并发,研发中心的一、两百号人在研发经理的口令:1-、2-、3!, 大家同时按下同一个按钮。回想起这中情景也蛮有意思的。

    4、具有一致性和可重复性

    由于每次自动化测试运行的脚本是相同的, 所以每次执行的测试具有一致性, 人是很难做到的. 由于自动化测试的一致性,很容易发现被测软件的任何改变。

    5、更好的利用资源--周未/晚上

    理想的自动化测试能够按计划完全自动的运行, 在开发人员和测试人员不可能实行三班倒的情况下, 自动化测试可以胜任这个任务, 完全可以在周末和晚上执行测试. 这样充分的利用了公司的资源,也避免了开发和测试之间的等待.

    6、解决测试与开发之间的矛盾

    通常在开发的末期,进入集成测试阶段, 由于每发布一个版本的初期,测试系统的错误比较少,这时开发人员有等待测试人员测试出错误的时间. 事实上在叠代周期很短的开发模式中,存在更多的矛盾, 但自动化测试可以解决其中的主要矛盾。

    7、增加软件信任度

  • 性能测试:软件测试的重中之重

    2008-07-19 15:58:49

    性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样。中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。

       应用在客户端性能的测试

      应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。

      并发性能测试是重点

      并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。负载测试(Load Testing)是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程。压力测试(Stress Testing)是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

      并发性能测试的目的主要体现在三个方面:以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题。

      当一家企业自己组织力量或委托软件公司代为开发一套应用系统的时候,尤其是以后在生产环境中实际使用起来,用户往往会产生疑问,这套系统能不能承受大量的并发用户同时访问? 这类问题最常见于采用联机事务处理(OLTP)方式数据库应用、Web浏览和视频点播等系统。这种问题的解决要借助于科学的软件测试手段和先进的测试工具。

      举例说明:电信计费软件

      众所周知,每月20日左右是市话交费的高峰期,全市几千个收费网点同时启动。收费过程一般分为两步,首先要根据用户提出的电话号码来查询出其当月产生费用,然后收取现金并将此用户修改为已交费状态。一个用户看起来简单的两个步骤,但当成百上千的终端,同时执行这样的操作时,情况就大不一样了,如此众多的交易同时发生,对应用程序本身、操作系统、中心数据库服务器、中间件服务器、网络设备的承受力都是一个严峻的考验。决策者不可能在发生问题后才考虑系统的承受力, 预见软件的并发承受力, 这是在软件测试阶段就应该解决的问题。

      目前,大多数公司企业需要支持成百上千名用户,各类应用环境以及由不同供应商提供的元件组装起来的复杂产品,难以预知的用户负载和愈来愈复杂的应用程序,使公司担忧会发生投放性能差、用户遭受反应慢、系统失灵等问题。其结果就是导致公司收益的损失。

      如何模拟实际情况呢? 找若干台电脑和同样数目的操作人员在同一时刻进行操作,然后拿秒表记录下反应时间?这样的手工作坊式的测试方法不切实际,且无法捕捉程序内部变化情况,这样就需要压力测试工具的辅助。

      测试的基本策略是自动负载测试,通过在一台或几台PC机上模拟成百或上千的虚拟用户同时执行业务的情景,对应用程序进行测试,同时记录下每一事务处理的时间、中间件服务器峰值数据、数据库状态等。通过可重复的、真实的测试能够彻底地度量应用的可扩展性和性能,确定问题所在以及优化系统性能。预先知道了系统的承受力,就为最终用户规划整个运行环境的配置提供了有力的依据。

      并发性能测试前的准备工作

      测试环境:配置测试环境是测试实施的一个重要阶段,测试环境的适合与否会严重影响测试结果的真实性和正确性。测试环境包括硬件环境和软件环境,硬件环境指测试必需的服务器、客户端、网络连接设备以及打印机/扫描仪等辅助硬件设备所构成的环境;软件环境指被测软件运行时的操作系统、数据库及其他应用软件构成的环境。

      一个充分准备好的测试环境有三个优点:一个稳定、可重复的测试环境,能够保证测试结果的正确;保证达到测试执行的技术需求;保证得到正确的、可重复的以及易理解的测试结果。

      测试工具:并发性能测试是在客户端执行的黑盒测试,一般不采用手工方式,而是利用工具采用自动化方式进行。目前,成熟的并发性能测试工具有很多,选择的依据主要是测试需求和性能价格比。著名的并发性能测试工具有QALoad、LoadRunner、Benchmark Factory和Webstress等。这些测试工具都是自动化负载测试工具,通过可重复的、真实的测试,能够彻底地度量应用的可扩展性和性能,可以在整个开发生命周期、跨越多种平台、自动执行测试任务,可以模拟成百上千的用户并发执行关键业务而完成对应用程序的测试。

      测试数据:在初始的测试环境中需要输入一些适当的测试数据,目的是识别数据状态并且验证用于测试的测试案例,在正式的测试开始以前对测试案例进行调试,将正式测试开始时的错误降到最低。在测试进行到关键过程环节时,非常有必要进行数据状态的备份。制造初始数据意味着将合适的数据存储下来,需要的时候恢复它,初始数据提供了一个基线用来评估测试执行的结果。

      在测试正式执行时,还需要准备业务测试数据,比如测试并发查询业务,那么要求对应的数据库和表中有相当的数据量以及数据的种类应能覆盖全部业务。

      模拟真实环境测试,有些软件,特别是面向大众的商品化软件,在测试时常常需要考察在真实环境中的表现。如测试杀毒软件的扫描速度时,硬盘上布置的不同类型文件的比例要尽量接近真实环境,这样测试出来的数据才有实际意义。

      并发性能测试的种类与指标

      并发性能测试的种类取决于并发性能测试工具监控的对象,以QALoad自动化负载测试工具为例。软件针对各种测试目标提供了DB2、DCOM、ODBC、ORACLE、NETLoad、Corba、QARun、SAP、SQLServer、Sybase、Telnet、TUXEDO、UNIFACE、WinSock、WWW、Java scrīpt等不同的监控对象,支持Windows和UNIX测试环境。

      最关键的仍然是测试过程中对监控对象的灵活应用,例如目前三层结构的运行模式广泛使用,对中间件的并发性能测试作为问题被提到议事日程上来,许多系统都采用了国产中间件,选择Java scrīpt监控对象,手工编写脚本,可以达到测试目的。

      采用自动化负载测试工具执行的并发性能测试,基本遵循的测试过程有:测试需求与测试内容,测试案例制定,测试环境准备,测试脚本录制、编写与调试,脚本分配、回放配置与加载策略,测试执行跟踪,结果分析与定位问题所在,测试报告与测试评估。

      并发性能测试监控的对象不同,测试的主要指标也不相同,主要的测试指标包括交易处理性能指标和UNIX资源监控。其中,交易处理性能指标包括交易结果、每分钟交易数、交易响应时间(Min:最小服务器响应时间;Mean:平均服务器响应时间;Max:最大服务器响应时间;StdDev:事务处理服务器响应的偏差,值越大,偏差越大;Median:中值响应时间;90%:90%事务处理的服务器响应时间)、虚拟并发用户数。

      应用实例:"新华社多媒体数据库 V1.0"性能测试

      中国软件评测中心(CSTC)根据新华社技术局提出的《多媒体数据库(一期)性能测试需求》和GB/T 17544《软件包质量要求和测试》的国家标准,使用工业标准级负载测试工具对新华社使用的"新华社多媒体数据库 V1.0"进行了性能测试。

      性能测试的目的是模拟多用户并发访问新华社多媒体数据库,执行关键检索业务,分析系统性能。

      性能测试的重点是针对系统并发压力负载较大的主要检索业务,进行并发测试和疲劳测试,系统采用B/S运行模式。并发测试设计了特定时间段内分别在中文库、英文库、图片库中进行单检索词、多检索词以及变检索式、混合检索业务等并发测试案例。疲劳测试案例为在中文库中并发用户数200,进行测试周期约8小时的单检索词检索。在进行并发和疲劳测试的同时,监测的测试指标包括交易处理性能以及UNIX(Linux)、Oracle、Apache资源等。

      测试结论:在新华社机房测试环境和内网测试环境中,100M带宽情况下,针对规定的各并发测试案例,系统能够承受并发用户数为200的负载压力,最大交易数/分钟达到78.73,运行基本稳定,但随着负载压力增大,系统性能有所衰减。

      系统能够承受200并发用户数持续周期约8小时的疲劳压力,基本能够稳定运行。

      通过对系统UNIX(Linux)、Oracle和Apache资源的监控,系统资源能够满足上述并发和疲劳性能需求,且系统硬件资源尚有较大利用余地。

      当并发用户数超过200时,监控到HTTP 500、connect和超时错误,且Web服务器报内存溢出错误,系统应进一步提高性能,以支持更大并发用户数。

      建议进一步优化软件系统,充分利用硬件资源,缩短交易响应时间。

      疲劳强度与大数据量测试

      疲劳测试是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。

      疲劳强度测试可以采用工具自动化的方式进行测试,也可以手工编写程序测试,其中后者占的比例较大。

      一般情况下以服务器能够正常稳定响应请求的最大并发用户数进行一定时间的疲劳测试,获取交易执行指标数据和系统资源监控数据。如出现错误导致测试不能成功执行,则及时调整测试指标,例如降低用户数、缩短测试周期等。还有一种情况的疲劳测试是对当前系统性能的评估,用系统正常业务情况下并发用户数为基础,进行一定时间的疲劳测试。

      大数据量测试可以分为两种类型:针对某些系统存储、传输、统计、查询等业务进行大数据量的独立数据量测试;与压力性能测试、负载性能测试、疲劳性能测试相结合的综合数据量测试方案。大数据量测试的关键是测试数据的准备,可以依靠工具准备测试数据。

      速度测试目前主要是针对关键有速度要求的业务进行手工测速度,可以在多次测试的基础上求平均值,可以和工具测得的响应时间等指标做对比分析。

       应用在网络上性能的测试

      应用在网络上性能的测试重点是利用成熟先进的自动化技术进行网络应用性能监控、网络应用性能分析和网络预测。

      网络应用性能分析

      网络应用性能分析的目的是准确展示网络带宽、延迟、负载和TCP端口的变化是如何影响用户的响应时间的。利用网络应用性能分析工具,例如Application Expert,能够发现应用的瓶颈,我们可知应用在网络上运行时在每个阶段发生的应用行为,在应用线程级分析应用的问题。可以解决多种问题:客户端是否对数据库服务器运行了不必要的请求?当服务器从客户端接受了一个查询,应用服务器是否花费了不可接受的时间联系数据库服务器?在投产前预测应用的响应时间;利用Application Expert调整应用在广域网上的性能;Application Expert能够让你快速、容易地仿真应用性能,根据最终用户在不同网络配置环境下的响应时间,用户可以根据自己的条件决定应用投产的网络环境。

      网络应用性能监控

      在系统试运行之后,需要及时准确地了解网络上正在发生什么事情;什么应用在运行,如何运行;多少PC正在访问LAN或WAN;哪些应用程序导致系统瓶颈或资源竞争,这时网络应用性能监控以及网络资源管理对系统的正常稳定运行是非常关键的。利用网络应用性能监控工具,可以达到事半功倍的效果,在这方面我们可以提供的工具是Network Vantage。通俗地讲,它主要用来分析关键应用程序的性能,定位问题的根源是在客户端、服务器、应用程序还是网络。在大多数情况下用户较关心的问题还有哪些应用程序占用大量带宽,哪些用户产生了最大的网络流量,这个工具同样能满足要求。

      网络预测

      考虑到系统未来发展的扩展性,预测网络流量的变化、网络结构的变化对用户系统的影响非常重要。根据规划数据进行预测并及时提供网络性能预测数据。我们利用网络预测分析容量规划工具PREDICTOR可以作到:设置服务水平、完成日网络容量规划、离线测试网络、网络失效和容量极限分析、完成日常故障诊断、预测网络设备迁移和网络设备升级对整个网络的影响。

      从网络管理软件获取网络拓扑结构、从现有的流量监控软件获取流量信息(若没有这类软件可人工生成流量数据),这样可以得到现有网络的基本结构。在基本结构的基础上,可根据网络结构的变化、网络流量的变化生成报告和图表,说明这些变化是如何影响网络性能的。 PREDICTOR提供如下信息:根据预测的结果帮助用户及时升级网络,避免因关键设备超过利用阀值导致系统性能下降;哪个网络设备需要升级,这样可减少网络延迟、避免网络瓶颈;根据预测的结果避免不必要的网络升级。

       应用在服务器上性能的测试

      对于应用在服务器上性能的测试,可以采用工具监控,也可以使用系统本身的监控命令,例如Tuxedo中可以使用Top命令监控资源使用情况。实施测试的目的是实现服务器设备、服务器操作系统、数据库系统、应用在服务器上性能的全面监控,测试原理如下图。
     

      UNIX资源监控指标和描述

      监控指标 描述

      平均负载 系统正常状态下,最后60秒同步进程的

      平均个数

      冲突率 在以太网上监测到的每秒冲突数

      进程/线程交换率 进程和线程之间每秒交换次数

      CPU利用率 CPU占用率(%)

      磁盘交换率 磁盘交换速率

      接收包错误率 接收以太网数据包时每秒错误数

      包输入率 每秒输入的以太网数据包数目

      中断速率 CPU每秒处理的中断数

      输出包错误率 发送以太网数据包时每秒错误数

      包输入率 每秒输出的以太网数据包数目

      读入内存页速率 物理内存中每秒读入内存页的数目

      写出内存页速率 每秒从物理内存中写到页文件中的内存页数

       目或者从物理内存中删掉的内存页数目

      内存页交换速率 每秒写入内存页和从物理内存中读出页的个数

      进程入交换率 交换区输入的进程数目

      进程出交换率 交换区输出的进程数目

      系统CPU利用率 系统的CPU占用率(%)
        用户CPU利用率 用户模式下的CPU占用率(%)

  • 程序员修炼之七杀秘技

    2008-07-18 13:13:53

    程序员修炼之七杀秘技
    学好一门计算机编程语言真的不值得过分骄傲,可悲的是,我们往往一门编程语言也没有学习好就在简历上写着精通XX编程。
    想想一个旧社会的老太太,即使一天学都没有上过,说起话,讲起故事来也能出口成章。
    想想一个小孩,从出生开始短短三年就能把复杂如汉语的语言说得很流利了。

    为什么有的程序员,工作十年了还不开窍,仍然写不出高质量的程序,以至于哀叹程序员是吃青春饭,过了三十岁就不知道何去何从。

    为什么有的程序员,勤勤恳恳,却事倍功半,写出来的程序仍然七疮八孔,bug众多?

    计算机至今无法像人类这样好的理解自然语言,编程语言其实比自然语言简单的多,但是为什么我们学起编程语言来还不如三岁小孩学自然语言?
    小孩学语言和成长的过程对我们学习编程语言是不是有所启迪呢?

    笔者曾多次与公司新员工座谈,新员工多爱问程序员有何速成之法,谈起应该菜鸟如何修炼七步杀一人之绝技,具体的方法总结了一下,是为七多,现分享如下,各位看家指正:

    多想:思考是写好程序的源泉,从今天起开始思考吧;
    多写:努力与实践是成功的不二法门;
    多读:读高手写的程序,召唤内心深处的渴望,压抑不住写程序的冲动,是一件心旷神怡的事情;
    多讲:头几次讲课的人绝对比听课的人能收获更多,我们公司运用此法取得了很好的培训效果;
    多审:怀疑自己和他人的程序,并不是怀疑自己的智商,要想成为一个优秀的程序员,拿自己开审吧;
    多画:许多学数学的人往往后发先至,超越计算机可伴选手成为程序高手,因为他们画竹之前先成竹于胸;
    多构:“妈呀,我以前写的那一段程序真烂,惨不忍睹”,大有往事不堪回首之意。为什么不重构呢?

  • 测试三年(别人转载经验感觉)

    2008-07-18 13:12:12

    所谓三年了(转载)
        昨天是2008年7月11日,我入职满三年之日。很多公司都把三年作为一个新人当作公司自己人的一个标志,就像《忠奸人》里所说,这是He's a friend of ours和He's our friend的区别。呆在一个行业里久了,即使再愚钝,也能看出这个行业的整体趋势来。现在大体聊聊这三年对这个行业的看法:
        1、软件测试热门不热门?
        在google中输入“软件测试”,它告诉你共有487万项符合要求的网站。当你看到这篇博客的时候,这个数字可能又增长了,至少,我又贡献了一篇(笑)。看起来蔚为壮观吧,满眼都是用词火辣的新闻告诉你软件测试有多热门、多高薪。
        好了,如果你有基本的新闻鉴别能力的话,你应该能看得出,这些都是软文,全部都是,无一遗漏。赤裸裸的软文。机缘巧合,我有机会接触到几个在软件测试培训机构的朋友,就是目前很热门的“BTEST”和“北大青鸟”。上述你搜到的各个网站发的这些文章,都是他们进行媒体公关的结果。不信?你看看文章的结尾,都或明或暗地提到“你丫该去找个软件测试机构培训一下了”。感觉自己上当了吧?适当问候一下欺骗你感情的媒体吧。
        软件测试工程师的确在国内很紧缺。但是,这个趋势不会持久,这十年来,类似的热门IT岗位我可以举出几十个:网络工程师、WEB程序员、JAVA程序员、嵌入式工程师,不一而足。它们现在怎么样了?全都处于过饱和状态。他们全都是明日黄花了,一朵朵都已经凋谢。软件测试工程师也不例外,它们的今天就是软件测试工程师的明天。
        那这行还能干么?能,只要你够NB。(废话,忽略之。)由于入门门槛不高,初级软件测试人员很快会处于过饱和状态,顶多3年,就会成为街边的地摊货。而且,月薪会低得可怜。但是,高级人才还是会保持紧俏,这在哪个行业都是如此。目前国内的软件测试的水平还普遍偏低,高级人才依然非常少,依然很值钱。
        什么是高级人才?说一下自己不成熟的看法。数据库、中间件、Windows、Linux、Unix都能深刻理解原理,能调整内核参数,如果只是会用那就算了。完全掌握某一门程序语言,达到开发人员的水平,可以写出一切自己想要的小工具。自动化测试、性能测试、白盒测试、安全测试,四个都比较熟悉,并至少精通其中的一个。而且,英语水平要能达到和老外正常沟通。达到这个水平,就很可以笑看云卷云舒了,你已经接近神了,凡人要忍受的裁员、生活压力等痛苦都与你无关。你只需用一颗慈悲的心去同情他们。
        那么报纸上说的,“月薪8千找不到高级软件测试人才”是什么意思?别逗人笑了!这是无知记者想当然编出来的谎话。长安城内,月薪8千顶多找个熟练的中级工程师,真正的高级工程师是不会在菜市场里贴上标签月薪8千代售的,他们只会安静地坐在写字楼里,等着猎头给他们打电话,然后面无表情地回答:“OK,deal.”
    2、关于技术和商务   
        我只是从事过技术,并没有做过商务,但是通过自己的好朋友了解了不少。总的来说,作为技术,除非是去摩根之类的投行做IT,否则在IT公司做技术员工的话,不当领导或当小领导,很牛逼的人,年薪20~25万是上限了,IBM的band8\band9大致如此。有年薪百万的,实在太少。作商务的话,同样的公司,同样程度的员工,年薪的上线应该是50~60W。接触过猎头的朋友都了解,猎头接到命令年薪50w去挖一个商务人员不奇怪,但是如果接到命令年薪50w去挖一个技术员,那雇佣方肯定脑子秀逗了。技术和商务相形见绌,作为IT技术人员,很不甘心,但是,这是事实,铁一般的血淋淋的事实。我们从来不怕落后,只怕自己不敢承认落后。
        商业是一切活动的润滑剂,这个领域是独特而有魅力的。从市场宣传到寻找定位、售前、销售,每一步都是和活生生的人打交道,他们不用彻夜加班。但并不见得就比技术轻松。做商务的好处在于,他们积累的是人脉和关系,这使他们越老越值钱,而且不用被驱动着每天熬夜看书更新自己的知识。而做技术,一个季度不学习,就会有很多新出的东西不明白了。即使你年薪20万,你仍然需要每天下班后熬夜学习新的技术。
        上面这么一对比,技术和商务高下立见。技术相对挣得少,还要每天学习,担心自己老了会失业。但是不要这么轻易就动摇,有的人是天生的程序员,和人说话会咬自己舌头,但写代码就像吸白粉,那你就每年领个20万,可以活得很滋润了,不必转行,不要嫌商务的赚钱比自己多,全聚德的烤鸭卖得好,做烤鸭的师傅肯定挣得不多,就是这个道理;有的人天生喜欢和人打交道,鬼话说得连自己都信,一群人中国人在一起开会就是要用英文,那他天生适合一年领个50万;但如果你是个中间派,不知道自己适合干什么,我的标准回答是:笑。
    3、关于国内企业和外企
        简单地说:外企钱多,但是年薪50万后,上头都是新加坡和香港的假鬼子了,你上不去。而且IT外企在中国没有核心研发。私企的钱比外企少好几个档次(百度例外),但是,如果你觉得自己很牛,到了犇的级别,就来私企,搞核心研发,要股份(这是关键),工资少,算上股份就比外企多了。
        如果是没牛到那个地步,该怎么选择,我的标准回答是:笑。
    4、关于创业和打工
        我现在还没有魄力创业,如果没有人脉,要创业,三思。卖馄饨的能搞几千万,但是几千万个里面只有这一个成功了。
     
  • IT人离开IT还能做什么?(转载)

    2008-07-17 10:56:04

    今天一位同事(已30多了),被老板叫到他的办公室去。老总对他说,由于效益不好,公司不再和他续订到期的合同!我看到他很落寞地离去。他前年才结婚,还供着房子,老婆孩子要养,这一下子就失业了,而且又是快过年的时候!我跑去和他道别,他没有说什么,只让我好好干,公司还是大有前途的。

      他是一个好人,在技术上决不保密。记得三年前我刚进公司的时候,他正是公司的主力,他对我这个应届毕业生十分关照,只要我不懂的,他一定尽力相告。那时公司的老板也很器重他,可能是正当壮年的时候(还有很多剥削价值)。但自去年开始,公司转向了。net平台,我们都去研发新技术了,原有的pb老版本程序基本上都由一些老程序员来维护(可能老板想他们年龄不小了,学新技术有些障碍)。公司产品的升级工作进展很快,pb版本的程序越来越少了,我们晚上经常加班,而他由于年龄和家庭的缘故,并不经常加班了。我渐渐地从老板对他的态度的变化——从最早的极为欣赏到一般到渐渐地嫌弃。今年公司的效益不太好,也许正是到了鸟尽弓藏、兔死狗烹的时候了?

      上世纪末那会儿,曾有“做IT,35岁就可以退休”的说法,历经沧海这么多年,35岁退休成了童话,35岁的职业坎儿却无法众多IT人回避。有人说,可以转为管理,然而管理的一条线就像窄窄的独木桥,又有多少人可以通过呢(据统计平均大约100名程序员也就只有一两个做管理的机会)?转向传统行业?已经30多了,能再重新来过吗?绝大多数平凡IT人的出路又在哪儿呢?

      35岁对于IT人是个坎儿,过了这个年纪基本技术生涯即告终结,这是IT界多数人认可的。所以,也让IT人着实为35岁后的自己生了不少忧虑:IT人离开IT后能干什么?

      印象中的IT人都因为职业的缘故而木讷寡言。他们与机器沟通的能力显然优于与人沟通的能力。从机器到人,IT人必须跨过来。

      IT业的技术语言过于狭窄。社会却是复杂的。IT人的知识面不够广泛。社会上不需要人人都懂如何设计程序,但IT人却必须要懂社会。

      IT内的项目,有些人也有些经验,但这些经验性的东西多数是专业性的,个别种类项目的经验能否转化为普遍的社会经验,也确实需要时间。

      这些劣势,可以说,凡是地球上的IT人大概都知道。除了IT,要重新换个活法一时还真的玩不转。

      但IT人毕竟是IT人。IT是高薪行业,IT人从业几年十几年,一般都有了一定的物质基础。这是IT人比其他行业的人具有的优势。

      有了这样的物质基础,我认为,后IT人的关键是要实现思维方式的转变:从技术性思维到社会性思维,从而开创人生事业的第二高峰。

      技术性思维是面向机器的、僵硬的、封闭的、单向性的;社会性思维要求是面向常识和社会的、灵活的、开放的、多向综合的。后IT的人士最需要的是这种思维方式的转变。

      思维一转天地宽。后IT人会发现社会比IT里面其实更精彩。

      后IT人可以走出来干销售。这个工作富于挑战,而且收入与工作业绩直接挂钩。IT人有很强的技术背景,更擅长发掘产品性能的优缺点,对于IT产品的介绍具有权威性,容易被客户相信。

      后IT人可以走出程序迷宫来做培训。IT人在运用某一技术语言上相当精深,另外他们在技术研发中的实战经验,对于学员来说也是相当宝贵的教学资源。

      后IT人也可以由直面数字转为面向众人做咨询。成功的咨询师决不会因为年龄而贬值。有过实际项目经验的IT人,解决实际问题的能力非常强,出身IT的人作为咨询师是其他行业人士无法取代的。还可以做老板,做IT活动策划等等。

      需要提醒的是,思维方式的转变不是一朝一夕的事。一旦离开IT,IT人所要做的是不断调整自我,保持对社会的参与激情。阅读一些人际沟通技巧之类的书籍是必要的,还可以参加社会活动,给自己洗洗脑,从以数字中心、个人中心的思维方式转换到以人为中心、社会为中心的模式中。要注意多与人沟通。同时,个人应该尽早明确自己的发展方向,并根据新的事业来重新积累,不断升级完善自身的“软硬件”。

     

  • 清华校长送给毕业生的五句话

    2008-07-14 12:10:53

    方向比努力更重要

    能力比知识更重要

    健康比成绩更重要

    生活比文凭更重要

    情商比智商更重要

                               ——清华大学校长留给毕业生的一段话


    方向比努力重要。

         现在是讲究绩效的时代,公司、企业、政府,需要的是有能力且能与企业方向共同发展的人,而不是一味努力但却南辕北辙的人。自己适合哪些行业,哪些职业,有很多东西是先天决定的,只有充分地发掘自己的潜力,而不是总与自己的弱点对抗,一个人才能出人头地,就像现在很多企业招聘的时候,他们相信通过培训和教育可以让火鸡学会爬树,但是还是觉得选个松树方便一些。方向不对,再努力、再辛苦,你也很难成为你想成为的那种人。

    能力比知识重要。

         知识在一个人的构架里只是表象的东西,就相当于有些人可以在答卷上回答如何管理企业、如何解决棘手的问题、如何当好市长等等,但是在现实面前,他们却显得毫无头绪、不知所措,他们总是在问为什么会是这种情况,应该是哪种情况等等。他们的知识只是知识,而不能演化为能力,更不能通过能力来发掘他们的潜力。现在很多企业都在研究能力模型,从能力的角度来观察应聘者能否胜任岗位。当然,高能力不能和高绩效直接挂钩,能力的发挥也是在一定的机制、环境、工作内容与职责之内的,没有这些平台和环境,再高的能力也只能被尘封。

    健康比成绩重要。

         成绩只能代表过去,这是很多人已经认同的一句话。对于毕业后走入工作岗位的毕业生,学生阶段的成绩将成为永久的奖状贴在墙上,进入一个工作单位,就预示着新的竞赛,新的起跑线。没有健康的身心,如何应对变幻莫测的市场环境和人生变革,如何应对工作压力和个人成就欲的矛盾?而且在现代社会,拥有强健的身体已经不是最重要的,健康的心理越来越被提上日程,处理复杂的人际关系、承受挫折与痛苦、缓解压力与抑郁,这些都将成为工薪族乃至学生们常常面对的问题。为了防止英年早逝、过劳死,还是多注意一下身体和心理的健康投资吧。

    生活比文凭重要。

         曾经有一个故事,说有个记者问放羊的小孩,为什么放羊?答:为了挣钱,挣钱干啥?答:盖房子,盖房子干啥?答:娶媳妇,娶媳妇干啥?答:生孩子,生孩子干啥?答:放羊!

         记得去年在人大听一个教授讲管理学基础课,他说你们虽然都是研究生,但很多人本质上还是农民!大家惊愕,窃窃私语。他说你们为什么读研究生,很多人是不是想找个好工作,找好工作为了什么,为了找个好老婆,吃喝住行都不错,然后生孩子,为了孩子的前途更光明,这些不就是农民的朴素想法吗?那个农民父母不希望自己的子女比自己更好?说说你们很多人是不是农民思想,什么时候,你能突破这种思维模式,你就超脱了。当这个社会看重文凭的时候,假文凭就成为一种产业,即使是很有能力的人,也不得不弄个文凭,给自己脸上贴点金。比起生活,文凭还重要吗?很多人找女朋友或者男朋友,把学历当作指标之一,既希望对方能够给他/她伴侣的温暖与浪漫,又希望他/她知识丰富、学历相当或更高,在事业上能蒸蒸日上;我想说,你找的是伴侣,不是合作伙伴,更不是同事,生活就是生活,这个人适合你,即使你是博士他/她斗大字不识一个,那也无所谓,适合就会和谐融洽,人比文凭更重要。很多成功的人在回头的时候都说自己太关注工作和事业了,最遗憾的是没有好好陪陪父母、爱人、孩子,往往还伤心落泪,何必呢,早意识到这些,多给生活一些空间和时间就可以了。我们没有必要活得那么累。

    情商比智商重要。

         这个就很有意思了,大家忽然一下子对情商重视了起来,因为在新的世纪,情商将成为成功领导中最重要的因素之一。比如在许多员工和自己的亲人因恐怖袭击丧生的时刻,某公司CEO Mark Loehr让自己镇定下来,把遭受痛苦的员工们召集到一起,说:我们今天不用上班,就在这里一起缅怀我们的亲人,并一一慰问他们和亲属。在那一个充满阴云的星期,他用自己的实际行动帮助了自己和他的员工,让他们承受了悲痛,并把悲痛转化为努力工作的热情,在许多企业经营亏损的情况下,他们公司的营业额却成倍上涨,这就是情商领导的力量,是融合了自我情绪控制、高度忍耐、高度人际责任感的艺术。曾经有个记者刁难一位企业家:听说您大学时某门课重考了很多次还没有通过。这位企业家平静地回答:我羡慕聪明的人,那些聪明的人可以成为科学家、工程师、律师等等,而我们这些愚笨的可怜虫只能管理他们。要成为卓越的成功者,不一定智商高才可以获得成功的机会,如果你情商高,懂得如何去发掘自己身边的资源,甚至利用有限的资源拓展新的天地,滚雪球似得积累自己的资源,那你也将走向卓越。
     

     

  • 猎头给人才的十点忠告(转载)

    2008-07-14 12:02:26

    猎头给人才的十点忠告(转载)

    作为一名猎头,我将自己几年来从事职业经理工作的锦囊经验贡献出来与大家分享,
    愿这些吐血经验能够引起大家深层次的思考,并对大家有所帮助。

      1、打工无尊卑。无论你今天是普通工程师,还是贵为总经理,心态上都要保持平衡一致。
           反映在具体表现上就是与人为善,永远保持谦虚谨慎。
          如果你当工程师时见了门卫会打招呼,当了总裁后也要依然同门卫打招呼,
          切不可鼻孔朝天,否则死得很快。

      2、高薪者死。如果你今天能够赚到的月薪自己觉得还可以,就不要处心积虑谋求升值加薪。
          当你的薪水加到足以让老板对你时时重点关注的时候,你的死期也快到了。

      3、领导支持。作为各级职业经理人,一定不要忘记“密切联系领导”的道理,
          尤其对于广大中层干部。你的创意,你的计划,你的方案,要想得到顺利推行,
          首先一定要取得领导的支持。坚信:世上只有领导好,有领导支持的干部像块宝。

      4、群众信任。一个干部要想成功,除了领导的支持,还要取得同事的信任。
          因此,平时要时刻注意跟同事们打成一片,在一些无原则的小事上,要替他们争取利益,
          取得他们的信任,这样你就离成功不远了。

      5、请示汇报。永远不要相信公司里会有真正的授权。
          更不要以为你是MBA就可以踢开党委闹革命。那些埋头做事不看路,不请示少汇报的人,
          永远无法得到老板的信任和赏识。老板花了钱雇你们,其实他心里是很恐慌的,
         生怕你们拿了钱不干活。所以你要天天跟老板主动汇报你的工作,让他了解他没有白花钱雇你。

      6、鄙视海龟。对于所有的海龟(海外留学归来人士),以及国内大大小小的MBA们,
          不要考虑,统统采取鄙视的态度,没错!搞管理,其实不需要太多的理论。
          知识越多越反动!无论毛主席,还是比尔盖茨,无论李宏治还是赖昌星,大凡成功人士,
          没有几个具有本科以上学历的。你们信我吧!海龟之所以归来,
          90%以上是因为在国外混不下去.属于出国人群中的低能儿;
         要么干脆就是“克莱登”大学毕业的方鸿渐之流。用他们?一边呆着去吧!
         海龟唯一的作用就是把他们的牌牌挂到公司门口吸引风险投资,
         好比饭店门口的幌子。至于干活的本事,还是“汉阳造”的盒子炮好使。

      7、三招两式。做一个合格职业经理人,必须懂得三招:大力沟通,全力执行,谦虚谨慎。
         同时,随着你所在的行业以及所处的管理角色不同,你必须知道两式:
         涉及本专业的所有名词术语,涉及本行业的名人轶事等所有谈资。
         比如我作为人力资源经理,我每天大概花6个小时到各个部门跟人聊天,
         对于公司的任何人事政策,我都会始终不渝地抓落实,执行到底。
         我见了任何人都鞠躬问好,包括对扫地的阿姨。
         我熟知人力资源管理的所有理论、概念、名词,什么招聘与面试技巧、结构化面试、
         职位说明书、绩效考核、平衡记分卡(BSC)、X理论Y理论、培训、企业文化、
         马斯洛需求层次理论、员工满意度、职业发展规划、薪酬管理等等等等,
         同时我也对我所在企业所处的行业知识有着广泛但并不精深的了解。

      8、兔子不吃窝边草。作为职业经理人,千万不要对周围的同事发生感情,
           比如不要跟异性同事搞对象,不要跟同事做哥们儿。
           除了工作上的事情,没有私人感情可言。
          永远不要做烂好人,要保持自己的严肃性,或者说是威严。

      9、急流勇退。当感觉到自己已经爬到顶峰,无论职位还是薪酬都已经达到了无法再逾越的高度,
         一定要开始寻找全身而退的道路。比如开始跟猎头公司联系,留心跳槽事宜等。
         这个周期应该在半年到一年左右时间,换句话讲,如果你已经达到顶峰,
         而还赖在这个位子上超过一年无变化,就是你的失败。

      10、雁过留声。职业经理人最可宝贵的不是自己的薪酬,而是自己的名声。
         “人过留名雁过留声”的道理一定要记得。
           一定不要做损害原企业利益的事情,一定不要对同事做阴暗卑鄙的小人勾当。
          在新企业面前谈论旧企业一定要说好,在任何一家企业,只要你干一天,
         就要全心投入,敬业爱人。哪怕明天你就要办理离职交接了,
        今天也要全心全力为公司争取到最后一单生意。

     

  • 佛学的181条智慧 献给压抑的IT人

    2008-07-11 17:15:24

    一、人之所以痛苦,在于追求错误的东西。 
    二、与其说是别人让你痛苦,不如说是自己的修养不够。 
    三、如果你不给自己烦恼,别人也永远不可能给你烦恼。因为在你自己的内心,你放不下。
    四、好好的管教你自己,不要管别人。
    五、不宽恕众生,不原谅众生,是苦了你自己。 
    六、别说别人可怜,自己更可怜,自己又懂得人生多少? 
    七、学佛是对自己的良心交待,不是做给别人看的。
    八、福报不够的人,就会常常听到是非;福报够的人,从来就没听到过是非。 
    九、修行是点滴的工夫。 
    十、在顺境中修行,永远不能成佛。
    十一、你永远要感谢给你逆境的众生。
    十二、你随时要认命,因为你是人。
    十三、你永远都要宽恕众生,不论他有多坏,甚至他伤害过你,你一定要放下,才能得到真正的快乐。
    十四、这个世界本来就是痛苦的,没有例外的。 
    十五、当你快乐时,你要想,这快乐不是永恒的。当你痛苦时你要想这痛苦也不是永恒的。
    十六、认识自己,降伏自己,改变自己,才能改变别人。
    十七、今日的执著,会造成明日的后悔。
    十八、你可以拥有爱,但不要执著,因为分离是必然的。
    十九、不要浪费你的生命在你一定会后悔的地方上。
    二十、你什么时候放下,什么时候就没有烦恼。
    二一、内心没有分别心,就是真正的苦行。
    二二、学佛第一个观念,永远不去看众生的过错。你看众生的过错,你永远污染你自己,你根本不可能修行。
    二三、你每天若看见众生的过失和是非,你就要赶快去忏悔,这就是修行。
    二四、业障深重的人,一天到晚都在看别人的过失与缺点,真正修行的人,从不会去看别人的过失与缺点。
    二五、每一种创伤,都是一种成熟。
    二六、当你知道迷惑时,并不可怜, 当你不知道迷惑时,才是最可怜的。
    二七、狂妄的人有救,自卑的人没有救。
    二八、你不要一直不满人家,你应该一直检讨自己才对。不满人家,是苦了你自己。
    二九、一切恶法,本是虚妄的,你不要太自卑你自己。一切善法,也是虚妄的,你也不要太狂妄你自己。
    三十、当你烦恼的时候,你就要告诉你自己,这一切都是假的,你烦恼什么? 
    三一、当你未学佛的时候,你看什么都不顺。当你学佛以后,你要看什么都很顺。
    三二、你要包容那些意见跟你不同的人,这样子日子比较好过。你要是一直想改变他,那样子你会很痛苦。要学学怎样忍受他才是。你要学学怎样包容他才是。
    三三、承认自己的伟大,就是认同自己的愚疑。
    三四、修行就是修正自己错误的观念。
    三五、医生难医命终之人,佛陀难渡无缘的众生。
    三六、一个人如果不能从内心去原谅别人,那他就永远不会心安理得。
    三七、心中装满着自己的看法与想法的人,永远听不见别人的心声。
    三八、毁灭人只要一句话,培植一个人却要千句话,请你多口下留情。
    三九、当你劝告别人时,若不顾及别人的自尊心,那么再好的言语都没有用的。
    四十、不要在你的智慧中夹杂着傲慢。不要使你的谦虚心缺乏智慧。
    四一、根本不必回头去看咒骂你的人是谁?如果有一条疯狗咬你一口,难道你也要趴下去反咬他一口吗?
    四二、忌妒别人,不会给自己增加任何的好处。忌妒别人,也不可能减少别人的成就。
    四三、永远不要浪费你的一分一秒,去想任何你不喜欢的人。
    四四、多少人要离开这个世间时,都会说出同一句话,这世界真是无奈与凄凉啊!
    四五、恋爱不是慈善事业,不能随便施舍的。感情是没有公式,没有原则,没有道理可循的。
         可是人们至死都还在执著与追求。
    四六、请你用慈悲心和温和的态度,把你的不满与委屈说出来,别人就容易接受。
    四七、创造机会的人是勇者。等待机会的人是愚者。
    四八、能说不能行,不是真智慧。
    四九、多用心去倾听别人怎么说,不要急着表达你自己的看法。
    五十、同样的瓶子,你为什么要装毒药呢?同样的心理,你为什么要充满着烦恼呢?
    五一、得不到的东西,我们会一直以为他是美好的,那是因为你对他了解太少,没有时间与他相处在一起。当有一天,你深入了解后,你会发现原不是你想像中的那么美好。
    五二、这个世间只有圆滑,没有圆满的。
    五三、修行要有耐性,要能甘于淡泊,乐于寂寞。
    五四、活着一天,就是有福气,就该珍惜。当我哭泣我没有鞋子穿的时候,我发现有人却没有脚。
    五五、多一分心力去注意别人,就少一分心力反省自己,你懂吗?
    五六、眼睛不要老是睁得那么大,我且问你,百年以后,那一样是你的。
    五七、欲知世上刀兵劫,但听屠门夜半声。不要光埋怨自己多病,灾祸横生,多看看横死在你刀下的众生又有多少?
    五八、憎恨别人对自己是一种很大的损失。
    五九、每一个人都拥有生命,但并非每个人都懂得生命,乃至于珍惜生命。不了解生命的人,生命对他来说,是一种惩罚。
    六十、自以为拥有财富的人,其实是被财富所拥有。
    六一、情执是苦恼的原因,放下情执,你才能得到自在。
    六二、随缘不是得过且过,因循苟且,而是尽人事听天命。
    六三、不要太肯定自己的看法,这样子比较少后悔。
    XXXXX、当你对自己诚实的时候,世界上没有人能够欺骗得了你。
    六五、用伤害别人的手段来掩饰自己缺点的人,是可耻的。
    六六、世间的人要对法律负责任。修行的人要对因果负责任。
    六七、在你贫穷的时候,那你就用身体去布施,譬如说扫地、洒水、搬东西等,这也是一种布施。
    六八、内心充满忌妒,心中不坦白,言语不正的人,不能算是一位五官端正的人。
    六九、默默的关怀与祝福别人,那是一种无形的布施。
    七十、多讲点笑话,以幽默的态度处事,这样子日子会好过一点。
    七一、与人相处之道,在于无限的容忍。
    七二、不要刻意去猜测他人的想法,如果你没有智慧与经验的正确判断,通常都会有错误的。
    七三、要了解一个人,只需要看他的出发点与目的地是否相同,就可以知道他是否真心的。
    七四、人生的真理,只是藏在平淡无味之中。
    七五、不洗澡的人,硬擦香水是不会香的。名声与尊贵,是来自于真才实学的。有德自然香。
    七六、与其你去排斥它已成的事实,你不如去接受它,这个叫做认命。
    七七、佛菩萨只保佑那些肯帮助自己的人。
    七八、逆境是成长必经的过程,能勇于接受逆境的人,生命就会日渐的茁壮。
    七九、你要感谢告诉你缺点的人。
    八十、能为别人设想的人,永远不寂寞。
    八一、如果你能像看别人缺点一样,如此准确般的发现自己的缺点,那么你的生命将会不平凡。
    八二、原谅别人,就是给自己心中留下空间,以便回旋。
    八三、时间总会过去的,让时间流走你的烦恼吧!
    八四、你硬要把单纯的事情看得很严重,那样子你会很痛苦。
    八五、永远扭曲别人善意的人,无药可救。
    八六、人不是坏的,只是习气罢了,每个人都有习气,只是深浅不同罢了。
    只要他有向道的心,能原谅的就原谅他,不要把他看做是坏人。
    八七、说一句谎话,要编造十句谎话来弥补,何苦呢?
    八八、其实爱美的人,只是与自己谈恋爱罢了。
    八九、世界上没有一个永远不被毁谤的人,也没有一个永远被赞叹的人。当你话多的时候,别人要批评你,当你话少的时候,别人要批评你,当你沈默的时候,别人还是要批评你。在这个世界上,没有一个不被批评的。
    九十、夸奖我们,赞叹我们的,这都不是名师。会讲我们,指示我们的,这才是善知识,有了他们我们才会进步。
    九一、你目前所拥有的都将随着你的死亡而成为他人的,那为何不现在就布施给真正需要的人呢?
    九二、为了赞美而去修行,有如被践踏的香花美草。
    九三、白白的过一天,无所事事,就像犯了窃盗罪一样。
    九四、能够把自己压得低低的,那才是真正的尊贵。
    九五、广结众缘,就是不要去伤害任何一个人。
    九六、沈默是毁谤最好的答覆。
    九七、对人恭敬,就是在庄严你自己。
    九八、拥有一颗无私的爱心,便拥有了一切。
    九九、仇恨永远不能化解仇恨,只有慈悲才能化解仇恨,这是永恒的至理。
    一00、你认命比抱怨还要好,对于不可改变的事实,你除了认命以外,没有更好的办法了。
    一0一、不要因为众生的愚疑,而带来了自己的烦恼。不要因为众生的无知,而痛苦了你自己。
    一0二、别人讲我们不好,不用生气、难过。说我们好也不用高兴,这不好中有好,好中有坏,就看你会不会用?
    一0三、如果你自己明明对,别人硬说你不对,你也要向人忏悔,修行就是修这些。你什么事都能忍下来,才会进步。就是明明是你对,你也要向他人求忏悔,那就是修行了。
    一0四、当你的错误显露时,可不要发脾气,别以为任性或吵闹,可以隐藏或克服你的缺点。
    一0五、不要常常觉得自己很不幸,世界上比我们痛苦的人还要多。
    一0六、愚痴的人,一直想要别人了解他。有智慧的人,却努力的了解自己。
    一0七、别人永远对,我永远错,这样子比较没烦恼。
    一0八、来是偶然的,走是必然的。所以你必须,随缘不变,不变随缘。
    一0九、慈悲是你最好的武器。
    一一0、只要面对现实,你才能超越现实。
    一一一、良心是每一个人最公正的审判官,你骗得了别人,却永远骗不了你自己的良心。
    一一二、不懂得自爱的人,是没有能力去爱别人的。
    一一三、学佛就是在学做人而已。
    一一四、正人行邪法,邪法亦正,邪人行正法,正法亦邪,一切唯心造。
    一一五、有时候我们要冷静问问自已,我们在追求什么?我们活着为了什么?
    一一六、不要因为小小的争执,远离了你至亲的好友,也不要因为小小的怨恨,忘记了别人的大恩。
    一一七、勇于接受别人的批评,正好可以调整自己的缺点。
    一一八、感谢上苍我所拥有的,感谢上苍我所没有的。
    一一九、凡是能站在别人的角度为他人着想,这个就是慈悲。
    一二0、学佛不是对死亡的一种寄托,而是当下就活得自在和超越。
    一二一、佛陀从不勉强别人去做他不喜欢的事情,佛陀只是告诉众生,何者是善?何者是恶?善恶还是要自己去选择,生命还是要自己去掌握。 
    一二二、所谓的放下,就是去除你的分别心、是非心、得失心、执著心
    一二三、说话不要有攻击性,不要有杀伤力,不夸已能,不扬人恶,自然能化敌为友。
    一二四、一个常常看别人缺点的人,自己本身就不够好,因为他没有时间检讨他自己。
    一二五、是非天天有,不听自然无,是非天天有,不听还是有,是非天天有,看你怎么办?
    一二六、真正的布施,就是把你的烦恼、忧虑、分别和执著心通通放下。
    一二七、如果你真的爱他,那么你必须容忍他部份的缺点。 
    一二八、要克服对死亡的恐惧,你必须要接受世上所有的人,都会死去的观念。
    一二九、所有的病患,医生最难治,所有的众生,自以为是的人最难渡。
    一三0、一匹驴,吃再好的草,也不会成为一匹骏马。用执著和分别心去修行,再大的精进,也不会成佛。 
    一三一、了解永恒真理的人,就不会为任何的生离死别而哀伤悲泣,因为生离死别是必然的。
    一三二、虽然你讨厌一个人,但却又能发觉他的优点好处,像这样子有修养的人,天下真是太少了。
    一三三、若能一切随他去,便是世间自在人。
    一三四、希望你常对自己说,闻到了佛法,我是最幸福的人,除了这幸福外,再没有别的了。
    一三五、如果你能每天呐喊二十一遍「我用不着为这一点小事而烦恼」,你会发现,你心里有一种不可思议的力量,试试看,很管用的。

    一三六、诚实的面对你内心的矛盾和污点,不要欺骗你自己。
    一三七、因果不曾亏欠过我们什么,所以请不要抱怨。
    一三八、我们确实有如是的优点,但也要隐藏几分,这个叫做涵养。
    一三九、无事莫把闲话聊,是非往往闲话生。
    一四0、大多数的人一辈子只做了三件事;自欺、欺人、被人欺。
    一四一、太过于欣赏自己的人,不会去欣赏别人的优点。
    一四二、活在别人的掌声中,是禁不起考验的人。
    一四三、心是最大的骗子,别人能骗你一时,而它却会骗你一辈子。
    一四四、坏孩子,父母总是比较操心。所以对于罪业愈深重的众生,我们更应该特别宽恕他怜愍他,而不应该远离他舍弃他。
    一四五、只要自觉心安,东西南北都好。如有一人未度,切莫自己逃了。
    一四六、用平常心来生活,用惭愧心来待人,心来处事,用菩提心契佛心。
    一四七、当你手中抓住一件东西不放时,你只能拥有这件东西,如果你肯放手,你就有机会选择别的。人的心若死执自己的观念,不肯放下,那么他的智慧也只能达到某种程度而已。
    一四八、人家怕你,并不是一种福,人家欺你,并不是一种辱。
    一四九、不是某人使我烦恼,而是我拿某人的言行来烦恼自己。
    一五0、不要刻意去曲解别人的善意,你应当往好的地方想。
    一五一、世上的事,不如己意者,那是当然的。
    一五二、我的财富并不是因为我拥有很多,而是我要求的很少。
    一五三、吃了就一定要拉,人一定要学会随缘放下,否则就会?便秘。
    一五四、常以为别人在注意你,或希望别人注意你的人,会生活的比较烦恼。
    一五五、我能为你煮东西,但我不能为你吃东西。各人吃饭是各人饱,各人生死是个人了。
    一五六、看轻别人很容易,要摆平自己却很困难。
    一五七、人类最大的错误,在于不敢承担圣人的心。
    一五八、你只管活你自己的,不必去介意别人的扭曲与是非。
    一五九、如果你准备结婚的话,告诉你一句非常重要的哲学名言「你一定要忍耐包容对方的缺点,世界上没有绝对幸福圆满的婚姻,幸福只是来自于无限的容忍与互相尊重。」
    一六0、如果你能够平平安安的渡过一天,那就是一种福气了。多少人在今天已经见不到明天的太阳,多少人在今天已经成了残废,多少人在今天已经失去了自由,多少人在今天已经家破人亡。
    一六一、是非和得失,要到最后的结果,才能评定。
    一六二、你不必和因果争吵,因果从来就不会误人。你也不必和命运争吵,命运它是最公平的审判官。
    一六三、你有你的生命观,我有我的生命观,我不干涉你。只要我能,我就感化你。如果不能,那我就认命。
    一XXXXX、你希望掌握永恒,那你必须控制现在。
    一六五、恶口永远不要出自于我们的口中,不管他有多坏,有多恶。你愈骂他,你的心就被污染了,你要想,他就是你的善知识。
    一六六、当你明天开始生活的时候,有人跟你争执,你就让他赢,这个赢跟输,都只是文字的观念罢了。当你让对方赢,你并没有损失什么。所谓的赢,他有赢到什么?得到什么?所谓的输,你又输到什么?失去什么?
    一六七、我们大部份的生命都浪费在文字语言的捉摸上。
    一六八、你不要常常觉得自己很委曲,你应该要想,他对我这样已经很好了,这就是修行的功夫。
    一六九、别人可以违背因果,别人可以害我们,打我们,毁谤我们。可是我们不能因此而憎恨别人,为什么?我们一定要保有一颗完整的本性和一颗清净的心。
    一七0、与任何人接触时,要常常问自己,我有什么对他有用?使他得益。如果我不能以个人的道德、学问和修持的力量,来使人受益,就等于欠了一份债。
    一七一、出家是一生一世的事,修行是多生多劫的事。
    一七二、信佛,学佛,不是为自己,乃是为一切苦海中的众生。
    一七三、佛不渡无缘的人,不能渡的人,我们就把他当做菩萨来看。
    一七四、如果一个人没有苦难的感受,就不容易对他人给予同情。你要学救苦救难的精神,就得先受苦受难。
    一七五、一般人在遇到对方的权势大,财富大,气力大,在无可奈何的情形之下而忍,这算什么忍耐呢?真正的忍是,就算他欺负了你,对不住你,但他什么都不及你,你有足够的力量对付他,而你却能容忍他,认为他的本性和我一样,只是一时糊涂,或在恶劣的环境中受到熏染罢了,你不必与他计较,能在这样的情况及心境之下容忍那才是真正的忍耐。 
    一七六、如果我们放眼从累生历劫去看,那么一切的众生,谁不曾做过我的父母、兄弟姊妹、亲戚眷属?
    谁不曾做过我的仇敌冤家?如果说有恩,个个与我有恩;如果说有冤,个个与我有冤。
    这样子我们还有什么恩怨亲疏之别呢?再就智慧愚笨来说,人人有聪明的时候,也有愚痴的时候,
    聪明的人可能变愚痴,愚痴的人也可能变聪明。最坏的人,也曾做过许多好事,而且不会永远坏;
    好人也曾做过许多坏事,将来也不一定会好。如此我们反覆思索,所谓的冤亲、贤愚,这许多差别的概念,
    自然就会渐渐淡了。这绝对不是混沌,也不是不知好坏,而是要将我们无始以来的偏私差别之见,
    以一视同仁的平等观念罢了!
    一七七、世界原本就不是属于你,因此你用不着抛弃,要抛弃的是一切的执著。
           万物皆为我所用,但非我所属。
    一七八、宁可自己去原谅别人,莫让别人来原谅你。
    一七九、当你用烦恼心来面对事物时,你会觉得一切都是业障,世界也会变得丑陋可恨。
    一八0、欲为诸佛龙象,先做众生马牛。
    一八一、虽然我们不能改变周遭的世界,我们就只好改变自己,用慈悲心和智慧心来面对这一切。

  • 如何编写有效的测试报告?

    2008-07-10 09:20:29

    根据我们小组的项目时间进度安排,现在这段时间正处于项目设计和测试的关键阶段,这里结合实践谈谈我对编写测试报告的看法。

        既然说到有效,我觉得要有两个特点:完整和实用,突出重点。引用一句广告词就是说“简约而不简单”,重点部分要突出,要细说,非重点部分,一笔带过,只是为了保证一个文档的完整性。

        说到一个测试报告,是对测试的过程和结果的汇总描述,所以其核心内容是两个,一个是测试结果的汇总报告,一个是测试过程的汇总总结,前者是针对所测软件本身,是给所测软件一个客观真实的评价;后者则是针对过程改进,回顾测试流程中存在的不足,加以总结改进。具体来说一般一个测试报告有如下部分构成。

    1.引言

    这个不用多说了,一般包括编写目的,项目背景介绍,参考资料等等,该项基本可以随便写写。(上次的项目展示在设计部分已经提到,所以测试部分并没有再做赘述)

    2.测试用例设计

    对用例设计做一个简单的描述,包括测试范围阿,测试目标阿,测试重点阿等。(早前的项目需求分析时我们已经分析过了,但为了保持文档的完整性这里可以修改后添上)

    3.测试环境

    主要描述测试所用环境,包括硬件环境和软件环境,服务端和客户端。(因为条件关系,只写了软硬件的环境^_^)

    4.测试方法

    主要描述测试过程中自己用到什么测试方法,白盒还是黑盒,用到了哪些测试类型和测试技术,用到多少。(该项比较重要)

    6.测试时间安排(执行情况)

    主要描述测试过程,每个时间段都做了什么事情。该项必不可少。

    7. Bug汇总及分析

    这一部分由于项目的设计还没有完成,现在只做了某些假设和分析。但是这部分是绝对重要的,也必不可少的。

    7.1 Bug总结

    一般按照严重程度,功能模块进行划分。(这部分我们在需求阶段已有划分,但设计阶段还没结束,所以仍有待完善)

    7.2 Bug分析

    通过上面7.1的总结,对bug进行分析。这项是测试报告的核心所在,一般有Bug功能模块

    7.3遗留问题

    目前软件残存的已知问题。有些是解决不掉的问题。

    7.4测试结论

    基于以上分析,给被测软件一个全面客观真实的结论,功能如何,性能如何,稳定性,安全性等等给出一个评价。该项最重要,绝不可少。

    8.测试过程改进

    对整个测试活动进行一个总结,有哪些得失,测试方法和流程需要哪些改进,测试过程中暴露出哪些问题,有哪些好的地方值得发扬等等。这项也很重要。

     

  • 比尔·盖茨 经典语录

    2008-07-10 09:16:07

    在比尔·盖茨写给高中毕业生和大学毕业生的书里,有一个单子上面列有10项学生没能在学校里学到的事情。它们是:

    ·生活是不公平的,要去适应它。

    ·这世界并不会在意你的自尊。这世界指望你在自我感觉良好之前先要有所成就。

    ·高中刚毕业你不会成为一个公司的副总裁,直到你将此职位挣到手。

    ·如果你认为你的老师严厉,等你有了老板再这样想。老板可是没有任期限制的。

    ·如果你陷入困境,不要尖声抱怨我们的错误,要从中吸取教训。

    ·在你出生之前,你的父母并非像现在这样乏味。他们变成今天这个样子是因为这些年来他们一直在为你付账单,给你洗衣服,听你大谈你是如何的酷。

    ·你的学校也许已经不再分优等生和劣等生,但生活却仍在作出类似区分。

    ·生活不分学期。你并没有暑假可以休息,也没有几位雇主乐于帮你发现自我。自己找时间做吧。

    ·电视并不是真实的生活。在现实生活中,人们实际上得离开咖啡屋去干自己的工作。善待乏味的人。有可能到头来你会为一个乏味的人工作。

    20年来比尔·盖茨的一些充满智慧的名言所进行的总结:

    ·1983年

    “目前已经有很多主要在计算机上应用的软件开发出来。就现在的情况看,面向IBM计算机的软件在其中占据着绝对的统治地位,但我相信,这种情况是会改变的,虽然其比例降到50%以下的可能性极小。”

    “在市场上目前的确存在很多垃圾软件,我们必须要对开发师们进行培训,告诉他们如何才能开发出更好的软件产品来。”

    ——摘录于1983年比尔·盖茨与PC World的一次访谈。

    ·1983年/1984年

    “但是,当我和保罗·艾伦(Paul Allen)在1975年开发出第一台微机版BASIC语言时,由于高级语言要求系统需具备高速处理器和大容量内存,这使其在大型机和小型机上的应用受到了限制。”

    “计算机语言必须不断与新的情况相适应。这意味着,计算机语言和人类语言一样。我们的语言并非是一臣不变的,它们要随着新的情况不断进行调整。与此类似,由于微型计算机的规模不断扩大,计算机语言也必须随之不断发展完善自己。”

    ——摘自比尔·-盖茨为《PC World年度软件回顾特刊》撰写的一篇文章。

    ·1986年

    “我们相信很多组织自己拥有计算机的时代很快就要到来,在这之前,有两件主要的事情需要我们做好准备,这就是设计好图形用户界面,以便能使像更大尺寸的显示器、新型芯片、激光打印机和互联网这些设备能够发挥最大的优势。大家将很快便可感受到运行在分布模式下的软件优势。”

    “从现在开始,一年以后市场上出售的所有计算机都将以286为基础,三年之后,大家将看到它们升级成386计算机。今天,如果我们将数据长期存储,目前计算机的存储性能(或程序运行它们的方便性),实在让人不敢恭维。我相信最终,能够满足公司处理工作需求的应用程序将会面世。标准软件程序和硬件将会使计算机的性能、用途得到显著的提高。那时人们将会感觉到如果没有计算机帮忙,他们的工作效率将会大幅下降。”

    “我们还没有见过那种只有10个非存储芯片(non-memory chips)的超级小型计算机(其中一个芯片的显示分辨率为1000×1000像素),或是不断更新的显示器。但是在接下来的三年里,这些都将变成现实,那时的人们如果看到现在的我们在640×200的模式下工作时,一定搞不懂我们在干什么。”

    ——摘自1986年1月比尔·盖茨与PC World进行的一次访谈。

    ·1987年

    比尔·盖茨与最喜欢的应用程序:“Excel。这是一款你和它接触越多,越发对其喜爱的软件。我经常使用Word,但是它不能进行分类规划,而且也不能充分发挥我的创造性。”

    同期取得的最重要成就:“帮助创建了一座MS-DOS标准的工作站,由此实现了在数千台电脑上运行同一种应用程序的梦想。当我16岁时,曾经夜以继日的开发FORTRAN编辑器,我发现那时已经有数百个在我之前写出的应用程序,我所开发的可能并不是最好的。但是由于存在很多不同的构架和操作系统,我又不得不写这些程序。所以我想能不能找到某种方法,以杜绝这些不得不做的无用功?这样不仅可以降低开发的应用程序数量,同时又能提高其质量。最终我终于达成了这个心愿,这让我非常开心。”

    ——摘自1987年与PC World的一次访谈。

    ·1993年

    “工作小组不断增长的现象将会激发人们对使用计算机的需求……未来微软所有的应用程序都将是工作组形式为基础的,而Windows工作组正是实现这个目标的一种方法。”

    ——摘自1993年1月PC World的一篇报道。

    ·1997年

    就微软花费4.25亿美元购买WebTV网络的议案,比尔·盖茨指出:“我们的目标是不仅要不断积累如何不断提高PC连接设备性能的经验,还要着眼于新一代TV产品。”

    ——摘自1997年6月9日信息电子世界(InfoWorld Electric)Bob Trott对新闻发布会的一篇报道。

    ·1999年

    “数码市场有广阔的发展前景,我们要不断的简化数码产品的技术含量、不断降低它们的价格,并使其更加贴进消费市场。”

    他说,关于在个人隐私上存在的问题,是可以轻易被技术发展所解决的,但是隐私保护条例与政治的关系要远远大于技术因素。盖茨还强调要对软件进行更多的测试以保证其质量。这被业界广泛认为是微软客户的福音。

    ——摘自1999年4月3日PC World编辑Tom Spring发表的比尔?盖茨在MIT实验室对于计算机技术举行的35周年庆典上的讲话。

    “计算机将成为用户存储信息和创建文档的总服务站。至于浏览网站关注世界的变化,消费者将有范围广阔的设备可供选择。

    ——摘自1999年12月28日IDG新闻服务机构Clare Haney的一篇报道。

    ·2000年

    “个人电视机具备录制下用户喜欢观看的电视节目的功能。”

    使用这些新的或旧的网络设备,“整个房子就如一台计算机一样。”

    ——摘自比尔·盖茨在2000年国际消费者电子大会上的致辞,由PC World的Cameron Crouch在2000年1月6日进行报道。

    “他们在不断的商讨计算机如何才能解决世界存在的所有问题。他们被自己做的事情深深的吸引了,他们还要为人类价值的前景做出全面的考虑。”

    ——摘自纽约时报的一篇关于比尔·盖茨在澳大利亚墨尔本2000年10月的讲话,PC World在2001年2月对其进行了全版引用。

    ·2001年

    “手写板计算机能够摆脱真正的约束,我预测在5年之内它将成为美国出售的PC中最受欢迎的机型。”

    ——摘自比尔·盖茨在计算机分销商展览会的发言(2006年由Martyn Williams在IDG新闻服务板块上引用)。

    ·2003年

    “我一直梦想着运行非常、非常好的计算机在某天能够来到这个世界,那时,我会使用微软开发的新产品。我再也不用给所有的开发师们发电子邮件质问他们:‘你们为什么要这样做?’”

    “如果你已经制定了一个远大的计划,那么就在你的生命中,用最大的努力去实现这个目标吧。”

    ——摘自比尔·盖茨在印度技术协会50周年庆典聚会上的讲话,由InfoWorld.com的编辑Paul Krill在2003年1月21日对其进行了报道。

    ·2004年

    “如果我们观察今天的计算机,其对简便易用的目标,可谓只实现了一半。”

    ——摘自比尔·盖茨与伯克利大学工程技术学院主任Richard Newton的谈话。由IDG新闻服务板块的记者Joris Evers在2004年10月1日进行了报道。

    2006年

    “我们的目标不是成为设备中心,而是要成为用户中心。”

    ——摘自比尔·盖茨在MIX 2006大会上的讲话,由IDG新闻服务板块记者Elizabeth Montalbano在2006年3月20日进行了报道。

    “我们的确已经看到,长时间以来,墨水服务写字板平台输入子系统和语音辨识输入系统已经变的和键盘一样重要,虽然相互之间不能取代,但重要性相同。”

    “事实上,我们相信在未来的某一天,所有的学生不用再背着教科书,代之使用的是连接无线网络的写字板电脑,学生们无论到哪里,都可以随身携带写字板电脑,它的亮度要高于教科书并且更具灵活性。提供的内容也更加丰富。”

    ——摘自2006年4月21日IDG新闻服务板块的记者Martyn Williams在东京大会上的一篇报道。PC World的编辑Amber Bouman为此篇报道也做出了贡献。

  • 管理学100个效应(1---50)

    2008-07-05 10:00:54


    第一章:管人用人育人留人之道

        企业的竞争,归根结底是人才的竞争。人才是企业的生命所在,如何管好人才、用好人才、培养和留住人才,则成为企业在激烈的竞争中成长发展的关键。

    1.  奥格尔维定律:善用比我们自己更优秀的人

        提出者:美国奥格尔维——马瑟公司总裁奥格尔维。

        点评:如果你所用的人都比你差,那么他们就只能做出比你更差的事情。如果我们每个人都雇用比我们自己都更强的人,我们就能成为巨人公司。

    2.  光环效应:全面正确地认识人才

      提出者:美国心理学家凯利(H. Kelly)

      点评:如一个人最初被认定是好的,则他身上的其它品质也都被认为是好的,有似“爱屋及乌”的原理。它指个人在敬仰、爱慕他人过程中所形成的夸大了的社会认知。光环效应在爱情和偶像崇拜中最明显。

    3.  不值得定律:让员工选择自己喜欢做的工作

       不值得定律最直观的表述是,不值得做的事情,就不值得做好,这个定律似乎再简单不过了,但它的重要性却时时被人们疏忘。不值得定律反映出人们的一种心理,一个人如果从事的是一份自认为不值得做的事情,往往会保持冷嘲热讽,敷衍了事的态度。不仅成功率小,而且即使成功,也不会觉得有多大的成就感。

      因此,对个人来说,应在多种可供选择的奋斗目标及价值观中挑选一种,然后为之奋斗。选择你所爱的,爱你所选择的,才可能激发我们的斗志,也可以心安理得。而对一个企业或组织来说,则要很好地分析员工的性格特性,合理分配工作,如让成就欲较强的职工单独或牵头完成具有一定风险和难度的工作,并在其完成时,给予及时的肯定和赞扬;让依附欲较强的职工,更多地参加到某个团体中共同工作;让权力欲较强的职工,担任一个与之能力相适应的主管。同时要加强员工对企业目标的认同感,让员工感觉到自己所做的工作是值得的,这样才能激发职工的热情。”

    4.  蘑菇管理定律:尊重人才的成长规律

      蘑菇管理是许多组织对待初出茅庐者的一种管理方法,初学者被置于阴暗的角落(不受重视的部门,或打杂跑腿的工作),浇上一头大粪(无端的批评、指责、代人受过),任其自生自灭(得不到必要的指导和提携)。相信很多人都有过这样一段蘑菇的经历,这不一定是什么坏事,尤其是当一切刚刚开始的时候,当几天蘑菇,能够消除我们很多不切实际的幻想,让我们更加接近现实,看问题也更加实际。

         一个组织,一般对新进的人员都是一视同仁,从起薪到工作都不会有大的差别。无论你是多么优秀的人才,在刚开始的时候,都只能从最简单的事情做起,“蘑菇”的经历,对于成长中的年轻人来说,就像蚕茧,是羽化前必须经历的一步。所以,如何高效率地走过生命的这一段,从中尽可能汲取经验,成熟起来,并树立良好的值得信赖的个人形象,是每个刚入社会的年轻人必须面对的课题。

    5.  贝尔效应:为有才干的下属创造脱颖而出的机会

      提出者:英国学者贝尔

      点评:贝尔天赋极高。有人估计过他毕业后若研究晶体和生物化学,定会赢得多次诺贝尔奖。但他却心甘情愿地走了另一条道路——把一个个开拓性的课题提出来,指引别人登上了科学高峰,此举被称为贝尔效应。这一效应要求领导者具有伯乐精神、人梯精神、绿地精神,在人才培养中,要以国家和民族的大业为重,以单位和集体为先,慧眼识才,放手用才,敢于提拔任用能力比自己强的人,积极为有才干的下属创造脱颖而出的机会。

    6.  酒与污水定律:及时清除烂苹果

      把一匙酒倒进一桶污水,得到的是一桶污水,如果把一匙污水倒进一桶酒,得到的还是一桶污水,这就是酒与污水定律最直白的表达。在现实中,在任何组织里,几乎都存在这样的人物,他们存在的目的似乎就是为了把事情搞糟。最糟糕的是,他们像果箱里的烂苹果,如果不及时处理,它会迅速传染,把果箱里其他苹果也弄烂。“烂苹果”的可怕之处,在于它那惊人的破坏力。一个正直能干的人进入一个混乱的部门可能会被吞没,而一个无德无才者能很快将一个高效的部门变成一盘散沙。组织系统往往是脆弱的,是建立在相互理解、妥协和容忍的基础上的,很容易被侵害、被毒化。

          破坏者能力非凡的另一个重要原因在于,破坏总比建设容易。一个能工巧匠花费时日精心制作的陶瓷器,一头驴子一秒钟就能毁坏掉。如果一个组织里有这样的一头驴子,即使拥有再多的能工巧匠,也不会有多少像样的工作成果。如果你的组织里有这样的一头驴子,你应该马上把蛇清除掉;如果你无力这样做,就应该把它拴起来。

    7.  首因效应:避免凭印象用人

        提出者:美国社会心理学家洛钦斯

      点评:首因效应,是指个体在社会认知过程中,通过“第一印象”最先输入的信息对客体以后的认知产生的影响作用。

        在社会认知中,个体获得对方第一印象的认知线索往往成为以后认知与评价的重要根据。首因效应的影响作用可以在一定程度上得到控制。首因效应的产生与个体的社会经历、社交经验的丰富程度有关。如果个体的社会经历丰富、社会阅历深厚、社会知识充实,则会将首因效应的作用控制在最低限度;另外,通过学习,在理智的层面上认识首因效应,明确首因效应获得的评价,一般都只是在依据对象的一些表面的非本质的特征基础上而做出的评价,这种评价应当在以后的进一步交往认知中不断地予以修正完善,也就是说,第一印象并不是无法改变,也不是难以改变的。

      

    8.  格雷欣法则:避免一般人才驱逐优秀人才

      提出者:托马斯·格雷欣爵士(Sir Thomas Gresham,英国伊莉莎白女王一世的顾问)

      点评:格雷欣法则,简单来说就是劣币驱逐良币。是说在市场上流通a,b两种币,面值一样但a是足值的货币,而b不足值,仍然可以充当交换货币。那么理性的人都会选择以次充好,将a留下来,将b用出去。从而在市场上,b驱逐了a。

    9.  雷尼尔效应:以亲和的文化氛围吸引和留住人才

      提出者:华盛顿大学教授

      点评:西雅图位于太平洋沿岸,华盛顿湖等大大小小的水域星罗棋布,天气晴朗时可以看到美洲最高的雪山之一雷尼尔山峰,华盛顿大学的教授们出于留恋西雅图的湖光山色,愿意接受较低的工资,而不到其它大学去寻找更高报酬的职位,他们为了美好的景色而牺牲更高的收入机会,被华盛顿大学的教授们戏称为“雷尼尔效应”。由此可见,美丽的景色也是一种无形财富,它起到了吸引和留住人才的作用。我们可否利用“雷尼尔效应”呢?美丽的西雅图风光可以留住吸引华盛顿大学的教授们,同样的道理,企业也可以用“美丽的风光”来吸引和留住人才。当然,这里的“美丽风光”不仅是自然风光,更多的是良好的人际关系和健康的文化氛围。

    10. 适才适所法则:将恰当的人放在最恰当的位置上

        做好人力资源配置是人力资源管理的基础。简单地说就是将合适的人放在合适的岗位上,真正做到适才适所。建立完善的激励机制与掌握合适的激励手法是人力资源管理的中心任务。对于激励通常有两种。第一种是普遍的物质激励;第二种就是人性面激励。两种激励应该是整合使用,关键是必须把握员工的需求层次,以最有效的补偿手段满足他的心理需要,并把这种需要引导成为他内在的驱动力量,并激发这种力量释放到企业发展所需要的本职工作上,让平凡的人做出不平凡的业绩。

    11. 特雷默定律:企业里没有无用的人才

        提出者:英国管理学家E·特雷默

      点评:  每个人的才华虽然高低不同,但一定是各有长短,因此在选拔人才时要看重的是他的优点而不是缺点,利用个人特有的才能再委以相应责任,使各安其职,这样才会使诸方矛盾趋于平衡。否则,职位与才华不能适合,使应有的能力发挥不出﹐彼此之间互不信服﹐势必造成冲突的加剧。在一个团队中,每个人各有所长,但更重要的是领导者能将这些人依其专长运用到最适当的职位,使其能够发挥自己所长,进而让整个企业繁荣强盛。没有无用的人,只有不会用人的人。

    12. 乔布斯法则:网罗一流人才

        提出者: 苹果计算机公司老板史蒂夫·乔布斯

        点评:乔布斯说,他花了半辈子时间才充分意识到人才的价值。他在最近一次讲话中说:“我过去常常认为一位出色的人才能顶两名平庸的员工,现在我认为能顶50名。”由于苹果公司需要有创意的人才,所以乔布斯说,他大约把四分之一的时间用于招募人才。高级管理人员往往能更有效地向人才介绍本公司的远景目标。而对于新成立的富有活力的公司来说,其创建者通常在挑选职员时十分仔细,老板亲临招聘现场,则可使求职者以最快速度了解与适应公司的文化氛围和环境。

     13. 大荣法则:企业生存的最大课题就是培养人才

      提出者:日本大荣公司

      点评:企业的发达,乃人才的发达;人才的繁荣,即事业的繁荣。

    14. 海潮效应:以待遇吸引人,以事业激励人

        海水因天体的引力而涌起,引力大则出现大潮,引力小则出现小潮,引力过弱则无潮。此乃海潮效应。人才与社会时代的关系也是这样。社会需要人才,时代呼唤人才,人才便应运而生。依据这一效应,作为国家,要加大对人才的宣传力度,形成尊重知识、尊重人才的良好风气。对于一个单位来说,重要的是要通过调节对人才的待遇,以达到人才的合理配置,从而加大本单位对人才的吸引力。现在很多知名企业都提出这样的人力资源管理理念:以待遇吸引人,以感情凝聚人,以事业激励人。

    第二章:以人为本的人性化管理

      古语云:得人心者得天下!在企业管理中多点人情味,有助于赢得员工对企业的认同感和忠诚度。只有真正俘获了员工心灵的企业,才能在竞争中无往而不胜。

     

    15. 南风法则:真诚温暖员工

      提出者:“南风”法也称为“温暖”法则,源于法国作家拉封丹写的一则寓言

      点  评:北风和南风比威力,看谁能把行人身上的大衣脱掉。北风首先来一个冷风凛冽寒冷刺骨,结果行人把大衣裹得紧紧的,南风则徐徐吹动,顿时风和日丽,行人因为觉得春意上身,始而解开纽扣,继而脱掉大衣,南风获得了胜利。

      领导者在管理中运用“南风”法则,就是要尊重和关心下属,以下属为本,多点人情味,使下属真正感觉到领导者给予的温暖,从而去掉包袱,激发工作的积极性。

    16. 同仁法则:把员工当合伙人

     提出者:美国一个家庭用品公司

     点  评:该公司把销售人员称作“同仁”。公司非基层职位90%以上的是由公司人员填补的,公司400名部门负责人中,只有17人是从外面招聘的。公司股票购置计划也力图使全体员工都成为真正的“同仁”。所有员工都可以在任何时候以低于公司股票价格15%的幅度购买。以此表现出的是,公司人才流失比零售业的平均水平低20%。“二人同心,其利断金。”企业与员工有了共同的目标与使命感,才会风雨同舟、同甘共苦。

    17. 互惠关系定律:爱你的员工,他会百倍地爱你的企业

      “给予就会被给予,剥夺就会被剥夺。信任就会被信任,怀疑就会被怀疑。爱就会被爱,恨就会被恨。”这就是心理学上的互惠关系定律。人是三分理智、七分感情的动物。士为知己者死,从业者可以为认可自己存在价值的上司鞠躬尽瘁。当你真诚地帮助员工的时候,员工才能真正地帮助你!  

    18. 蓝斯登定律:给员工快乐的工作环境

      提出者:美国管理学家蓝斯登

      点  评:跟一位朋友一起工作,远较在“父亲”之下工作有趣得多。你给员工快乐的工作环境,员工给你高效的工作回报。让你的员工快乐起来!

      有关调查结果表明,企业内部生产率最高的群体,不是薪金丰厚的员工,而是工作心情舒畅的员工。愉快的工作环境会使人称心如意,因而会工作得特别积极。不愉快的工作环境只会使人内心抵触,从而严重影响工作的效绩。

      有很多公司管理者,比较喜欢在管理岗位上板起面孔,做出一副父亲的模样。他们大概觉得这样才能赢得下属的尊重,树立起自己的权威,从而方便管理。这是走入了管理的误区。现代人的平等意识普遍增强了,板起面孔不能真正成为权威!放下你的尊长意识,去做你下级的朋友吧,你会有更多的快乐,也将使工作更具效率、更富创意,你的事业也终将辉煌!

    19. 柔性管理法则:“以人为中心”的人性化管理

      提出者:金星啤酒集团

      点  评:著名的马斯洛需求理论提出人的需求有五个层次:生理、安全、社交、尊重、自我实现,而且这五个层次是逐级渐进和同时存在的。为员工创造经济需求(生理、安全)及精神需求(社交、尊重、自我实现)“自我实现”的文化氛围和参与管理的“自我改善”机制,充分调动了员工积极性,增强了企业的活力和凝聚力。

      自我改善的柔性管理不是放任自流,随心所欲,而是以严格规范管理为基础,以高素质的员工队伍为条件,突出员工自我管理的主体,通过顺势而人性化的管理,强化管理的应变能力。把员工在企业中自我价值的实现与企业的发展目标相融合。

    20. 坎特法则:管理从尊重开始

      尊重员工是人性化管理的必然要求,是回报率最高的感情投资。尊重员工是领导者应该具备的职业素养,而且尊重员工本身就是获得员工尊重的一种重要途径。

    21. 波特定律:不要总盯着下属的错误

      提出者:1766年,普鲁士天文学家约翰·提丢斯(1729-1796)推导出了用天文单位来计算从太阳到行星距离的公式。该公式于1772年被德国天文学家约翰·波特(1747-1826)公诸于众。

      点  评:该公式(D=(N+4)AU/10)  用字母D表示从太阳到某一行星的距离,在推导出这个公式的时候,人们发现了水星、金星、火星、木星及土星与D值相吻合。 1781年天王星的发现正好与D值19.6相吻合, 1929年发现的冥王星,其D值有所误差,而对于海王星来说,这个公式则完全失效。

      再好的人也有犯错误的时候,不要总盯着下属的错误不放。重要的是,查找错误的原因。

    22. 刺猬法则:与员工保持“适度距离”

      两只困倦的刺猬,由于寒冷而拥在一起。可因为各自身上都长着刺,于是它们离开了一段距离,但又冷得受不了,于是凑到一起。几经折腾,两只刺猬终于找到一个合适的距离:既能互相获得对方的温暖而又不致于被扎。

      “刺猬”法则就是人际交往中的“心理距离效应”。领导者要搞好工作,应该与下属保持亲密关系,这样做可以获得下属的尊重。与下属保持心理距离,避免在工作中丧失原则。

    23. 热炉法则:规章制度面前人人平等

      每个单位都有自己的规章制度,单位中的任何人触犯了都要受到惩罚。

    “热炉”法则形象地阐述了惩处原则:

    (1)热炉火红,不用手去摸也知道炉子是热的,是会灼伤人的——警告性原则。领导者要经常对下属进行规章制度教育,以警告或劝戒不要触犯规章制度,否则会受到惩处。

    (2)每当你碰到热炉,肯定会被灼伤。也就是说只要触犯单位的规章制度,就一定会受到惩处

    (3)当你碰到热炉时,立即就被灼伤——即时性原则。惩处必须在错误行为发生后立即进行,决不拖泥带水,决不能有时间差,以便达到及时改正错误行为的目的。

    (4)不管谁碰到热炉,都会被灼伤——公平性原则。

    24. 金鱼缸效应:增加管理的透明度

      鱼缸是玻璃做的,透明度很高,不论从哪个角度观察,里面的情况都一清二楚。

    “金鱼缸”法则运用到管理中,就是要求领导者增加各项工作的透明度。各项工作有了透明度,领导者的行为就会置于全体下属的监督之下,就会有效地防止领导者滥用权力,从而强化领导者的自我约束机制。

    第三章:灵活有效的激励手段

      有效的激励会点燃员工的激情,促使他们的工作动机更加强烈,让他们产生超越自我和他人的欲望,并将潜在的巨大的内驱力释放出来,为企业的远景目标奉献自己的热情。

    25. 鲶鱼效应:激活员工队伍

      点  评:挪威人的渔船返回港湾,可是渔民们捕来的沙丁鱼已经死了,只有汉斯捕来的沙丁鱼还是活蹦乱跳的,原来,汉斯将几条沙丁鱼的天敌鲶鱼放在运输容器里。因为鲶鱼是食肉鱼,放进鱼槽后使沙丁鱼们紧张起来,为了躲避天敌的吞食,沙丁鱼自然加速游动,从而保持了旺盛的生命力,因而它们才存活下来。如此一来,沙丁鱼就一条条活蹦乱跳地回到渔港。

      这在经济学上被称作“鲶鱼效应”。其实用人亦然。一个公司,如果人员长期固定,就缺乏活力与新鲜感,容易产生惰性。因此有必要找些外来的“鲶鱼”加入公司,制造一些紧张气氛。当员工们看见自己的位置多了些“职业杀手”时,便会有种紧迫感,知道该加快步伐了,否则就会被Kill掉。这样一来,企业自然而然就生机勃勃了。

      当压力存在时,为了更好地生存发展下去,惧者必然会比其他人更用功,而越用功,跑得就越快。适当的竞争犹如催化剂,可以最大限度地激发人们体内的潜力。

    26. 马蝇效应:激起员工的竞争意识

    提出者:美国前总统林肯

    点  评:1860年,林肯当选为美国总统。有一天,有位名叫巴恩的银行家到林肯的总统官邸拜访,正巧看见参议员萨蒙?蔡思从林肯的办公室走出来。于是,巴恩对林肯说:“如果您要组阁的话,千万不要将此人选入您的内阁。”林肯奇怪地问:“为什么?”巴恩说:“因为他是个自大成性的家伙,他甚至认为他比您伟大得多。”《纽约时报》主编亨利?雷蒙顿拜访林肯的时候,特地告诉他蔡思正在狂热地上蹿下跳,谋求总统职位。

      林肯以他一贯以来特有的幽默对雷蒙顿说:“亨利,你不是在农村长大的吗?那你一定知道什么是马蝇了。有一次,我和我兄弟在肯塔基老家的农场里耕地。我吆马、他扶犁。偏偏那匹马很懒,老是磨洋工。但是,有一段时间它却在地里跑得飞快,我们差点都跟不上他。到了地头,我才发现,有一只很大的马蝇叮在他的身上,于是我把马蝇打落在了。我的兄弟问我为什么要打掉它,我告诉他,不忍心让马被咬。我的兄弟说:哎呀,就是因为有那家伙,这匹马才跑得那么快。”然后,林肯意味深长地对雷蒙顿说:“现在正好有一只名叫‘总统欲’的马蝇叮着蔡思先生,那么,只要它能使蔡思那个部门不停地跑,我还不想打落它。”

      没有马蝇叮咬,马慢慢腾腾,走走停停;有马蝇叮咬,马不敢怠慢,跑得飞快。这就是马蝇效应。马蝇效应给我们的启示是:一个人只有被叮着咬着,他才不敢松懈,才会努力拼搏,不断进步。

    27. 罗森塔尔效应:满怀期望的激励

      提出者:美国心理学家罗森塔尔

      点  评:美国心理学家罗森塔尔考查某校,随意从每班抽3名学生共18人写在一张表格上,交给校长,极为认真地说:“这18名学生经过科学测定全都是智商型人才。”事过半年,罗氏又来到该校,发现这18名学生的确超过一般,长进很大,再后来这18人全都在不同的岗位上干出了非凡的成绩。这一效应就是期望心理中的共鸣现象。

      运用到管理中,就要求领导对下属要投入感情、希望和特别的诱导,使下属得以发挥自身的主动性、积极性和创造性。如领导在交办某一项任务时,不妨对下属说:“我相信你一定能办好”、“你是会有办法的”┉这样下属就会朝你期待的方向发展,人才也就在期待之中得以产生。一个人如果本身能力不是很行,但是经过激励后,才能得以最大限度的发挥,也就变成了行。

    28. 彼得原理:晋升是最糟糕的激励措施

      每个组织都是由各种不同的职位、等级或阶层的排列所组成,每个人都隶属于其中的某个等级。彼得原理是美国学者劳伦斯.彼得在对组织中人员晋升的相关现象研究后,得出的一个结论:在各种组织中,雇员总是趋向于晋升到其不称职的地位。彼得原理有时也被称为“向上爬”原理。

         这种现象在现实生活中无处不在:一名称职的教授被提升为大学校长后,却无法胜任;一个优秀的运动员被提升为主管体育的官员,而无所作为。对一个组织而言,一旦相当部分人员被推到其不称职的级别,就会造成组织的人浮于事,效率低下,导致平庸者出人头地,发展停滞。

         因此,这就要求改变单纯的“根据贡献决定晋升”的企业员工晋升机制,不能因某人在某岗位上干得很出色,就推断此人一定能够胜任更高一级的职务。将一名职工晋升到一个无法很好发挥才能的岗位,不仅不是对本人的奖励,反而使其无法很好发挥才能,也给企业带来损失。

    29.“保龄球”效应:赞赏与批评的差异

       两名保龄球教练分别训练各自的队员。他们的队员都是一球打倒了7只瓶。教练甲对自己的队员说:“很好!打到了7只。”他的队员听了教练的赞扬很受鼓舞,心里想,下次一定再加把劲,把剩下的3只也打倒。教练乙则对他的队员说:“怎么搞的!还有3只没打倒。”队员听了教练的指责,心里很不服气,暗想,你咋就看不见我已经打倒的那7只。结果,教练甲训练的队员成绩不断上升,教练乙训练的队员打得一次不如一次。

      希望得到他人的肯定、赞赏,是每一个人的正常心理需要。而面对指责时,不自觉的为自己辩护,也是正常的心理防卫机制。

      一个成功的管理者,会努力去满足下属的这种心理需求,对下属亲切,鼓励部下发挥创造精神,帮助部下解决困难。相反,专爱挑下属的毛病,靠发威震慑下属的管理者,也许真的能够击败他的部下,但是,一头暴怒的狮子领着一群绵羊,又能创造出什么事业呢?

      用好赞赏的技巧,关键是把你的注意力集中到“被球击倒的那7只瓶”上,别老忘不了没击倒的那3只。要相信任何人或多或少都有长处、优点,只要“诚于嘉许,宽于称道”,你就会看到神奇的效力。

    30. 末位淘汰法则(活力曲线):通过竞争淘汰来发挥人的极限能力

      提出者:GE公司前CEO杰克·韦尔奇(活力曲线其实质就是“末位淘汰”)

      点  评:将员工划分为不同的类别,然后严格地加以区别对待。这正是韦尔奇所推崇的“活力曲线”,这一曲线被认为是给GE带来无限活力的法宝之一。

        以业绩为横轴(由左向右递减),以组织内达到这种业绩的员工的数量为纵轴(由下向上递增)。

        利用这张正态分布图,你将很容易区分出业绩排在前面的20%的员工(A类)、中间的70%的员工(B类)和业绩排在后面的10%的员工(C类)。

        这种评估组织内人力资源的方法,韦尔奇称之为“活力曲线”。

      “末位淘汰法则”顾名思义是“将工作业绩靠后的员工淘汰掉”,其实质是企业为了满足市场竞争的需要,在对企业员工的工作表现做出科学的评价后,进行分类或排序,并按照一定的比例标准,将末几位予以调岗或辞退的行为。

    31. 默菲定律:从错误中汲取经验教训

      提出者:美国空军上尉工程师爱德华·默菲

      点  评:源于美国空军1949年进行的关于“急剧减速对飞行员的影响”的研究。实验的志愿者们被绑在火箭驱动的雪橇上,当飞速行驶的雪橇突然停止时,实验人员会监控他们的状况。监控器具是一种由空军上尉工程师爱德华·默菲所设计的甲胄,甲胄里面装有电极。有一天,在通常认为无误的测试过程中,甲胄却没有记录任何数据,这使技术人员感到非常吃惊。默菲后来发现甲胄里面的电极每一个都放错了,于是他即席说道:如果某一事情可以有两种或者两种以上的方法来实现,而其中有一种会导致灾难性的错误,那么这一错误往往就会发生。

      默菲的这一说法后来得到广泛的流传并被总结成默菲定律:如果坏事有可能发生,不管这种可能性多么小,它总会发生,并可能引起更大的损失。

      我们对于幸福快乐的事情总是容易忘记,而对于不幸郁闷的事情却总是耿耿于怀。

         我们在日常排队时也不是总排在最慢的队伍中,排上快或慢的队伍发生的概率大致是相同的,也是一个随机的事件。在一些其它的事情上,原因也与此很相似。

    32.“垃圾桶”理论:有效解决员工在工作期间偷懒的问题

       荷兰有一个城市为解决垃圾问题而购置了垃圾桶,但由于人们不愿意使用垃圾桶,乱扔垃圾现象仍十分严重。该市卫生机关为此提出了许多解决办法。第一个方法是:把对乱扔垃圾的人的罚金从25元提高到50元。实施后,收效甚微。第二个方法是:增加街道巡逻人员的人数,成效亦不显著。后来,有人在垃圾桶上出主意:设计了一个电动垃圾桶,桶上装有一个感应器,每当垃圾丢进桶内,感应器就有反应而启动录音机,播出一则故事或笑话,其内容还每两周换一次。这个设计大受欢迎,结果所有的人不论距离远近,都把垃圾丢进垃圾桶里,城市因而变得清洁起来。

      在垃圾桶上安装感应式录音机,丢垃圾进去播出一则故事或笑话,效果远比那些惩罚手段好得多,既省钱,又不会让人们感到厌恶。同样,要解决员工在工作期间偷懒的问题,用监管和处罚的手段实际上也是很难奏效的,因为员工的工作成效主要还是要靠其用心努力。员工偷懒,是故意偷懒还是忙里偷闲?是员工自身的原因还是公司管理出了问题?具体问题要具体分析。在处理员工偷懒问题上,加强沟通很重要。须注意的是,让员工超时且拘束地工作,已是不合时宜的管理方法;给员工多点理解、关心和体谅,会有助于发挥员工的工作积极性和创造力。

    33. 比马龙效应:如何在“加压”中实现激励

      人会期待别人对自己好印象,就会认真的表现良好行为;若期待别人会讨厌自己,就会随便表现。让人比成龙,自己就会像龙一样地表现,反之,被比成马,会像马一样地反应。这种现象称之为“比马龙”效应。

      现代管理科学研究表明,如果一个人长期不能面临挑战,甚至无事可干,那他必然会产生一种“怀才不遇”的挫折感,极有可能失去原有的一腔抱负和凌云壮志,甚至产生抵触情绪,进而离开他最初的组织。因此,任何一个组织都应该给新参加工作的人员以必要的压力,为他们提供成长锻炼的机会和施展才华的舞台。松下公司的“中级人才”观以及“让B级人做A级事”等都是高期望式激励,这些无一不是人力资源管理中“比马龙效应“的具体实践。

    34. 横山法则:自发的才是最有效的,激励员工自发地工作

      提出者:日本社会学家横山宁夫。

      点评:有自觉性才有积极性,无自决权便无主动权。在管理的过程中,我们常常过多地强调了“约束”和“压制”,事实上这样的管理往往适得其反。如果人的积极性未能充分调动起来,规矩越多,管理成本越高。聪明的企业家懂得在“尊重”和“激励”上下功夫,了解员工的需要,然后满足他。只有这样,才能激起员工对企业和自己工作的认同,激发起他们的自发控制,从而变消极为积极。真正的管理,就是没有管理。

        促进员工自我管理的方法,就是处处从员工利益出发,为他们解决实际问题,给他们提供发展自己的机会,给他们以尊重,营造愉快的工作氛围。做到了这些,员工自然就和公司融为一体了,也就达到了员工的自我控制。

    35. 肥皂水效应:将批评夹在赞美中

       提出者:美国前总统约翰·卡尔文·柯立芝

    点评:约翰·卡尔文·柯立芝于1923 年成为美国总统, 他有一位漂亮的女秘书, 人虽长得很好, 但工作中却常因粗心而出错。一天早晨, 柯立芝看见秘书走进办公室, 便对她说:“今天你穿的这身衣服真漂亮, 正适合你这样漂亮的小姐。”这句话出自柯立芝口中, 简直让女秘书受宠若惊。柯立芝接着说:“但也不要骄傲, 我相信你同样能把公文处理得像你一样漂亮的。”果然从那天起, 女秘书在处理公文时很少出错了。一位朋友知道了这件事后, 便问柯立芝:“这个方法很妙, 你是怎么想出的?”柯立芝得意洋洋地说:“这很简单, 你看见过理发师给人刮胡子吗?他要先给人涂些肥皂水, 为什么呀, 就是为了刮起来使人不觉痛。”

    36. 威尔逊法则:身教重于言教

      提出者:美国行政管理学家切克·威尔逊

      点评:领导的指导是员工克服困难的后盾。每个组织都有自己管理绩效和指导员工的方法。指导有助于个人的成长并对组织的成功产生作用。如果对员工的指导很出色,绩效管理就转变成为一个协作的过程,这个过程可以让每一个人受益。

      麦当劳快餐店创始人雷·克罗克是美国社会最有影响的十大企业家之一。他不喜欢整天坐在办公室里,而是大部分工作时间都用在"走动管理上",即到所有分公司部门走走、看看、听听、问问,随时准备帮助下属解决工作中遇到的问题。。

      最先创造"走动式管理"模式的惠普公司,为推动部门负责人深入基层,又创造了一种独特的"周游式管理办法"。为达此目的,惠普公司的办公室布局采用美国少见的"敞开式大房间",即全体人员都在一间敞厅中办公,各部门之间只有矮屏分隔,除少量会议室、会客室外,无论哪级领导都不设单独的办公室。这样,哪里有问题需要解决,部门负责人就能以最快的速度赶到现场,带领自己的员工以最快的速度解决问题。正是这些保证了惠普公司对问题的快速反应能力和解决能力,并成就了它的辉煌。

      通用电气公司的韦尔奇也是一位专注于带领部下解决问题的优秀管理者。

    37. 麦克莱兰定律:让员工有参加决策的权力

      提出者: 哈佛大学教授戴维.麦克莱兰(David McClelland)

      点  评:麦克莱兰经过大量深入研究发现从根本上影响个人绩效的并非人们通常所认为的是智商、技能或经验,而是诸如“成就动机”、“人际理解”、“团队影响力”等一些可被称为资质的东西。1973年,麦克莱兰教授发表了题为《测量资质而非智力》的文章。

      成就需要理论:成就的需要是权利的需要、归属的需要、等等需要中的一个重要的需要。

      必要的时候,为自己的员工贴上一个权力的标签,可以极大地提升他们的工作热情与主人翁意识,而且它所产生的效果许多时候是其他激励方式所不及的。

    38. 蓝柏格定理:为员工制造必要的危机感没有压力便没有动力。

      提出者:美国银行家路易斯·B·蓝柏格

      点  评:压力只有在能承受它的人那里才会化为动力。

      一天一头驴子,不小心掉进一口枯井里,农夫绞尽脑汁想办法救出驴子,但几个小时过去了,驴子还是在井里痛苦地哀嚎着。最后,这位农夫决定放弃。于是他便请来左邻右舍帮忙一起将井中的驴子埋了,以免除它的痛苦。农夫的邻居们人手一把铲子,开始将泥土铲进枯井中。当这头驴子了解到自己的处境时,刚开始哭得很凄惨。但出人意料的是,一会儿之后这头驴子就安静下来了。农夫好奇地探头往井底一看,出现在眼前的景象令他大吃一惊:当铲进井里的泥土落在驴子的背部时,驴子的反应令人称奇──它将泥土抖落在一旁,然后站到铲进的泥土堆上面!

      就这样,驴子将大家铲在它身上的泥土全数抖落在井底,然后再站上去。很快地,这只驴子便上升到了井口,然后在众人惊讶的表情中快步地跑开了!

      就如驴子的情况,在生命的旅程中,有时候我们难免会陷入"枯井"里,会被各式各样的"泥沙"倾倒在我们身上,而想要从这些"枯井"脱困的秘诀就是:将"泥沙"抖落掉,然后站到上面去!

      对一个企业的发展来说,压力的促进作用尤为明显。对于一个成功者来说,压力越大,动力越大。

    39. 赫勒法则:有效监督,调动员工的积极性

      提出者:英国管理学家H·赫勒

      点  评:当人们知道自己的工作成绩有人检查的时候会加倍努力。没有有效的监督,就没有工作的动力。

      从本质上来说,人都是有惰性的。管理之成为必要,一部分原因也就在此。管理的主体是人,客体也是人,要真正达到调动员工的工作热情,提高员工的工作积极性,就要良好地运用起你手中的激励和监督机制,调动好你的指挥棒。

      企业不仅要建立起科学有效的激励机制,还必须要进行科学的实施和管理,监督各项工作的顺利进行。有效的激励机制能大大加强员工的工作主动性和热情。但光有激励是不够的,建立一个有效的监督机制。

      美国著名快餐大王肯德基国际公司的连锁店遍布全球60多个国家和地区,总数多达9900多个。然而,肯德基国际公司在万里之外,又怎么能相信它的下属能循规蹈矩呢?

      有一次,上海肯德基有限公司收到3份国际公司寄来的鉴定书,对他们外滩快餐厅的工作质量分3次进行了鉴定评分,分别为83、85、88分。公司中外方经理都为之瞠目结舌,这3个分数是怎么评定的?

      原来,肯德基国际公司雇佣、培训了一批人,让他们佯装顾客、秘密潜入店内进行检查评分。这些“神秘顾客”来无影、去无踪,而且没有时间规律,这就使快餐厅的经理、雇员时时感受到某种压力,丝毫不敢懈怠。正是通过这种方式,肯德基在最广泛了解到基层实际情况的同时,有效地实行了对员工的工作监督,从而大大提高了他们的工作效率。

    40. 激励倍增法则:利用赞美激励员工

      员工从管理者的赞美中所得到的要远远大于管理者的付出。学会使用激励的杠杆,就会明白做人和管理的真谛。

    41. 倒金字塔管理法则:赋予员工权利

      “倒金字塔管理法”能激发员工的工作热情。员工一旦受到信任与重视,就会为企业发展提出好的建议,就会使自己甚至使整个企业的工作效率大大提高。

    42. 古狄逊定理:不做一个被累坏的主管

      提出者:英国证券交易所前主管N·古狄逊

      点评:一个累坏了的管理者,是一个最差劲的管理者。管理是让别人干活的艺术。

      在现实生活中,我们会发现有不少管理者常常忙得焦头烂额,恨不得一天有48小时可用;或者常常觉得需要员工的帮忙,但是又怕他们做不好,以致最后事情都往自己身上揽。虽然一个称职的管理者最好是一个“万事通”,但一个能力很强的人并不一定能管理好一家企业。管理的真谛不是要管理者自己来做事,而是要管理者管理别人做事。

      管理者要做的也不是自己亲自处理困难的工作,而是去发现能干的人去做这些事。而要做到这一点,一方面是给下属成长的机会,增强他们的办事能力,另一方面是要懂得授权。

      企业的发展壮大不能光靠一个或几个管理者,必须依靠广大员工的积极努力,借助他们的才能和智慧,群策群力才能逐步把企业推向前进。再能干的领导,也要借助他人的智慧和能力,这是一个企业发展的最佳道路。

    第四章:沟通是管理的浓缩

      松下幸之助有句名言:“企业管理过去是沟通,现在是沟通,未来还是沟通。”管理者的真正工作就是沟通。不管到了什么时候,企业管理都离不开沟通。

    43. 霍桑效应:1)让员工将自己心中的不满发泄出来

           2)由于受到额外的关注而引起绩效或努力上升

      提出者:哈佛大学心理专家梅奥为首的研究小组

      点  评:1)社会心理学家所说的“霍桑效应”也就是所谓“宣泄效应”。霍桑工厂是美国西部电器公司的一家分厂。为了提高工作效率,这个厂请来包括心理学家在内的各种专家,在约两年的时间内找工人谈话两万余人次,耐心听取工人对管理的意见和抱怨,让他们尽情地宣泄出来。结果,霍桑厂的工作效率大大提高。这种奇妙的现象就被称作“霍桑效应”。

          2)1924年11月,以哈佛大学心理专家梅奥为首的研究小组进驻西屋(威斯汀豪斯)电气公司的霍桑工厂,他们的初衷是试图通过改善工作条件与环境等外在因素,找到提高劳动生产率的途径。他们选定了继电器车间的六名女工作为观察对象。在七个阶段的试验中,支持人不断改变照明、工资、休息时间、午餐、环境等因素,希望能发现这些因素和生产率的关系——这是传统管理理论所坚持的观点。但是很遗憾,不管外在因素怎么改变,试验组的生产来效率一直上升。

          历时九年的实验和研究,学者们终于意识到了人不仅仅受到外在因素的刺激,更有自身主观上的激励,更有自身主观上的激励,从而诞生了管理行为理论。就霍桑试验本身来看,当这六个女工被抽出来成为一组的时候,她们就意识到了自己是特殊的群体,是试验的对象,这些专家一直关心的对象,是这些专家一直关心的对象,这种受注意的感觉使得她们加倍努力工作,以证明自己是优秀的,是值得关注的。

           有一所国外的学校,在入学的时候会对每个学生进行智力测试,以智力测验的结果将学生分为优秀班和普通班。结果有一次在例行检查时发现,一年之前入学的一批学生的测验结果由于某种失误被颠倒了,也就是说现在的优秀班其实是普通的孩子,而真正聪明的孩子却在普通班。但是这一年的课程成绩却如同往年一样,优秀班明显高于普通班,并未出现异常。原本普通的孩子被当作优等生关注,他们自己也就认为自己是优秀的,额外的关注加上心理暗示使得丑小鸭真的成了白天鹅。

    44. 杰亨利法则:运用坦率真诚的沟通方式

      在企业里,人际的沟通是无可避免的,沟通问题也同样无可避免,开放、真诚、坦率是人际关系中的重要元素,是促进沟通渠道畅通的有效保证。

    45. 沟通的位差效应:平等交流是企业有效沟通的保证

      提出者:美国加利福尼亚州立大学

      点  评:沟通的位差效应是美国加利福尼亚州立大学对企业内部沟通进行研究后得出的重要成果。他们发现,来自领导层的信息只有20%-25%被下级知道并正确理解,而从下到上反馈的信息则不超过10%,平行交流的效率则可达到90%以上。

      进一步的研究发现,平行交流的效率之所以如此之高,是因为平行交流是一种以平等为基础的交流。为试验平等交流在企业内部实施的可行性,他们试着在整个企业内部建立一种平等沟通的机制。结果发现,与建立这种机制前相比,在企业内建立平等的沟通渠道,可以大大增加领导者与下属之间的协调沟通能力,使他们在价值观、道德观、经营哲学等方面很快地达成一致;可以使上下级之间、各个部门之间的信息形成较为对称的流动,业务流、信息流、制度流也更为通畅,信息在执行过程中发生变形的情况也会大大减少。他们得出了一个结论:平等交流是企业有效沟通的保证。

    46. 威尔德定理:有效的沟通始于倾听

      提出者:英国管理学家L.威尔德

      点评:说的功夫有一半在听上。一问一答之间就可以受益无穷。在企业内部,倾听是管理者与员工沟通的基础。但在现实中很多人并没有真正掌握“听”的艺术。

    47. 踢猫效应:不对下属发泄自己的不满

      点评:是人与人之间的泄愤连锁反应。

      某公司董事长为了重整公司一切事务,许诺自己将早到晚回。事出突然,有一次,他看报看得太入迷以至忘了时间,为了不迟到,他在公路上超速驾驶,结果被警察开了罚单,最后还是误了时间。这位老董愤怒之极,回到办公室时,为了转移别人的主意,他将销售经理叫到办公室训斥一番。销售经理挨训之后,气急败坏地走出老董办公室,将秘书叫到自己的办公室并对他挑剔一番。秘书无缘无故被人挑剔,自然是一肚子气,就故意找接线员的茬。接线员无可奈何垂头丧气何地回到家,对着自己的儿子大发雷霆。儿子莫名其妙地被父亲痛斥之后,也很恼火,便将自己家里的猫狠狠地踢了一脚。

    48. 雷鲍夫法则:认识自己和尊重他人

      提出者:美国管理学家雷鲍夫。

      点评:在你着手建立合作和信任时要牢记我们语言中经常使用“我承认我犯过错误 / 你干了一件好事 / 你的看法如何 / 咱们一起干 / 不妨试试 / 谢谢您 / 咱们 / 您。”它会让你事半功倍。

    49. 特里法则:坦率地承认自己的错误。承认错误是一个人最大的力量源泉。

      提出者:美国田纳西银行前总经理L·特里

      点评:正视错误,你会得到错误以外的东西。

      谁都难免会犯一些错误。当我们犯错误的时候,脑子里往往会出现想隐瞒自己错误的想法,害怕承认之后会很没面子。其实,承认错误并不是什丢脸的事。反之,在某种意义上,它还是一种具有"英雄色彩"的行为。因为错误承认得越及时,就越容易得到改正和补救。而且,由自己主动认错也比别人提出批评后再认错更能得到别人的谅解。更何况一次错误并不会毁掉你今后的道路,真正会阻碍的,是那不愿承担责任,不愿改正错误的态度。

      勇于承认错误和失败也是企业生存的法则。市场不是两军对垒的战场,企业不是军队。承认失败,企业可以避免更大的市场损失,可以重新调整自己的市场策略,也就可以重新取得市场机会。

    第五章:崇尚团队合作精神

      比尔·盖茨说:“团队合作是企业成功的保证,不重视团队合作的企业是无法取得成功的。”建设一支有凝聚力的团队,已是现代企业生存发展的一个基本条件。

     50. 华盛顿合作定律:团队合作不是人力的简单相加

       点  评:1964年3月凌晨3点的时候,在纽约一位年轻的酒吧女经理被一个杀人狂杀死。作案时间长达半个小时,附近有38人看到或听到女经理被刺的情况和呼救声,但没有一个人出来保护她,也没有一个人及时给警察打电话。

      事后,美国大小媒体同声谴责纽约人的异化与冷漠。然而,两位年轻的心理学家——巴利与拉塔内并没有认同这些说法。他们专门为此进行了一项试验。

      他们寻找了72名不知真相的参与者与一名假扮的癫痫病患者参加试验,让他们以一对一或四对一两种方式,保持远距离联系,相互间只使用对讲机通话。事后的统计数据出现了很有意思的一幕:在交谈过程中,当假病人大呼救命时,在一对一通话的那组,有85%的人冲出工作间去报告有人发病;而在四个人同时听到假病人呼救的那组,只有31%的人采取了行动!

      两位心理学家把它叫做“旁观者介入紧急事态的社会抑制”,更简单地说,就是“旁观者效应”。他们认为:在出现紧急情况时,正是因为有其他的目击者在场,才使得每一位旁观者都无动于衷,旁观者可能更多的是在看其他观察者的反应。

      这种现象产生的原因之一,正在于“旁观者效应”,与人们一般以为的世态炎凉之类的社会氛围或看客的冷漠等集体性格缺陷没有太大关系。

      如果把这当作一次合作,那么合作失败的最根本原因就在于“旁观者效应”,众多的旁观者分散了每个人应该负有的解救责任。因此,社会学家认为责任不清是华盛顿定律产生的最主要原因。

       人与人的合作,不是人力的简单相加,而是要复杂和微妙得多。在这种合作中,假定每个人的能力都为1,那么,10个人的合作结果有时比10大得多,有时,甚至比1还要小。因为人不是静止物,而更像方向各异的能量,相互推动时,自然事半功倍;相互抵触时,则一事无成。

          我们对合作研究得不多,最直观的反映就是,目前的大多数管理制度和行为都是致力于减少人力的无谓消耗,而非利用组织提高人的效能。换言之,不妨说管理的主要目的不是让每个人做到最好,而是避免内耗过多!

       对一个组织来说,进行详细的职务设计是绝对必要的,只有让每个人都知道自己该做什么,才能遏制“华盛顿合作现象”的发生。

     

  • 微软五大经典经营之道

    2008-07-04 16:23:00


      (1)公司支持人人平等

    资深人员基本上没有“特权”,依然要自己回电子邮件,自己倒咖啡,自己找停车位,每个人的办公室基本上都一样大。有一次,一些从中国来访微软的教授在等待听JimGray(发明数据库的著名科学家,图灵奖的获得者,加州研究院的院长)的演讲时,看见一个满头华发的老头趴在地上接电线,还以为他只是一名老工人。等他站起来时,大家却惊讶地发现,他就是演讲者JimGray。这些教授都很震惊,没想到连Jim这样的人都亲自动手接线装电脑。微软就是这样一个崇尚技术、人人平等的公司。

    (2)公司主张施行“开门政策”

    也就是说,任何人可以找任何人谈任何话题,当然任何人也都可以发电子邮件给任何人。一次,有一个新的员工开车上班时撞了比尔·盖茨停着的新车。她吓得问老板怎么办,老板说:“你发一封电子邮件道歉就是了。”她发出电子邮件后,在一小时之内,比尔不但回信告诉她,别担心,只要没伤到人就好,还对她加入公司表示欢迎。

    一个平等的公司可以降低公司内部的信息阻塞,增加所有员工的主人翁精神,还能更早地发现公司在发展中遇到的问题。平等的公司可以说是微软发展的必备平台。

    (3)自我批评、追求卓越

    微软文化的一大特色就是自我批评。在科技呈指数趋势飞跃发展的今天,不愿意批评自己,不承认自己的错误,不追求卓越的公司将面临灭亡。

    一个刚加入微软的市场经理,代表产品去参加一个商品展。回来后,他兴高采烈地发了一封电子邮件给整个产品小组。他说:“我很高兴地告诉大家,我们在这个展览获得了令人振奋的成绩。十项大奖中我们囊括了九项。让我们去庆祝吧!”但是,他没想到,在一个小时内,他收到了十多封回信。大家问他:“没得到的是哪一个奖?为什么不告诉我们?为什么没得到那个奖?我们得到什么教训?明年怎么样才能得到这第十个奖?”他告诉我,在那一刻,他才理解了微软为什么会成功。

    自我批评在公司早已被系统化。每一个产品推出后,会有一段特别时间空出来给产品团队做“post-mortem”,也就是系统化的“自我批评”。所有小组成员都会被询问,什么地方可以做得更好,每一个动作和决定都会被分析,结果将在公司公布,以帮助别的小组避免同样的问题,让公司的项目能越做越好。

    比尔·盖茨鼓励员工畅所欲言,对公司的发展、存在的问题,甚至上司的缺点,毫无保留地提出批评、建议或提案。他说:“如果人人都能提出建议,就说明人人都在关心公司,公司才会有前途。”微软开发了满意度调查软件,每年至少做一次员工满意度调查,让员工以匿名的方式对公司、领导、老板等各方面作回馈。其中有选择题(例如:“我对我的副总裁有信心。以下选一:非常同意、同意、无意见、不同意、非常不同意),也有问答题(例如:你对公司战略有什么建议?)。每个经理都会得到多方面的回馈和客观的打分。比尔、史蒂夫、其他高层领导和人事室都会仔细地研究每个组和经理的结果,计划如何改进。

    除了自我批评,还要有能接受别人批评的胸怀,和改变自己的魄力。

    1995年,当比尔·盖茨宣布不涉足Internet领域产品的时候,很多员工提出了反对意见。其中,有几位员工直接发信给比尔说,你这是一个错误的决定。当比尔·盖茨发现有许多他尊敬的人持反对的意见时,又花了更多的时间与这些员工见面,最后写出了《互联网浪潮》这篇文章,承认了自己的过错,扭转了公司的发展方向。同时,他把许多优秀的员工调到Internet部门,并取消或削减了许多产品,以便把资源调入Internet部门。当时,有些员工在某一天上班时,老板会告诉他:“我们的产品被取消了,因为公司需要我们做更重要的IE浏览器。明天起,我们整个部门将加入Internet部门。”那些批评比尔·盖茨的人不但没有受处分,而且得到重用,今天都成了公司重要部门的领导。在软件这个市场变化迅速的领域,调整企业方向对微软无比重要。从这个例子里我们看到的是:平等的环境、直接的沟通、宽大的胸怀、宏大的魄力拯救了公司。

    (4)责任至上、善始善终

    公司和领导者有了关注的目标之后,还要有足够的责任心,才能把事情做好。微软公司要求每一个部门、每一个员工都要有自己明确的目标,同时,这些目标必须是“SMART”的,也就是:

    。S–Specific(特定的、范围明确的,而不是宽泛的)

    。M–Measurable(可以度量的,不是模糊的)

    。A–Attainable(可实现的,不是理想化的)

    。R–Result-based(基于结果而非行为或过程)

    。T–Time-based(有时间限制,而不是遥遥无期的)

    只有每个人都拥有了明确的目标,并可以随时检查自己是否达到了预先设定的目标,公司员工才能在工作中体现出强烈的责任感和工作热情。

    微软公司要求部门和员工制定的目标必须是可分享的,即,每个人都应当通过某种渠道,如公司的内部网站等将自己的目标公布出来(当然,某些需要保密的工作目标除外)。这样,当某位员工对领导或其他员工的工作方式不理解的时候,就可以去查看对方的工作目标,以寻求最好的沟通和理解。

    除了针对目标、结果的负责,公司更需要在决策方面有负责的框架。微软的“决策制定框架”下,每一项重要决策都有一定的制定流程和人员角色划分。每一个决策流程的推动人很自然地就是决策的责任人。对该决策有支持和认可权利的人是决策的审批者。对该决策进行核查、提出支持或反对意见的人是决策的复核者。在整个决策流程中,虽然复核者可提出反对意见,但审批者仍拥有决策的最终决定权。有了这样的框架,公司的决策流程更加清晰,人员责任更加明确,决策不会被轻易拖延或推翻,决策的效率也大大提高了。

    (5)虚怀若谷、服务客户

    微软公司对技术相当重视,对合作伙伴和客户也同样重视。作为软件平台公司,合作伙伴和客户都是公司的命脉。微软公司在价值观中强调,所有员工都要信守对客户和合作伙伴的承诺,而且在产品研发过程中,不仅要考虑到产品的技术特性,还更要关注客户和合作伙伴最需要的功能。

    微软的大企业产品部鼓励每一个员工在加入公司的前几个星期到技术支持中心工作,帮助客户解决问题。无论一位员工的资历有多深,公司都希望他经过最基层技术支持工作的锻炼,能理解客户的困难。在大企业产品部的近一万名员工如果以前没有做过技术支持工作,在公司就没有晋升过某一级别的机会。

    除了要求员工悉心聆听客户意见之外,微软的软件也会自动收集客户的反馈意见。多年前,当Office开发者无法决定该把哪些功能放进常用工具栏时,Office的程序员制作了一套特别的Office软件。这套Office在用户允许的情况下,记录用户最常用的功能,传送到微软。最后,借助这些统计数据,开发者就可以决定什么样的用户界面才会对大多数用户有利。今天,微软把这个技术做进了所有的产品。任何微软的软件碰到问题(如宕机)时会搜集数据,并在用户的允许下经过网络把这些数据传到总部的服务器,以帮助开发人员诊断和测试软件。有了这样的技术,WindowsXP推出一个月后,微软就把用户碰到的一半问题都解决了,然后再通过网络自动帮助合所有法用户升级软件。此类工作集中体现了公司的创新精神以及借助软件技术解决问题的目标,当然也体现了公司悉心聆听客户意见的决心。
     

1214/7<1234567>
Open Toolbar