《我的程序员成长之路:EOM简介

终于到了编写EOM简介时间了,什么是EOM?从字面上来说EOM就是企业经营模型(Enterprise Operating Model) 英文字母的缩写。大家先记住EOM就是企业经营模型就行了。我想我还是把自己的程序员各个阶段的经 历与大家分享吧,或许大家从中可以得到一些启发,或许能看到EOM产生的过程。至于什么是EOMEOM有什么作用和意义?EOM与程序员有什么直接的关系?我将放到下篇再讲。

第一阶段,我最初是在学校里学习计算机基础知识,学习经典的程序设计语言,编写测试用的小程序。这段时间可以说是对计算机和程序设计的入门阶段。这个 阶段主要是培养了自己 对计算机软件的兴趣,打下了良好的计算机知识的基础。

第二阶段,而后参加工作,从事计算机软件开发工作,按照工作要求,边学边编,终于可以让自己的程序投入运行了。这个阶段突然 感觉到了自己的价值,感觉到软件的神奇,软件成了实用产品。这个阶段实现了学习到生产的过渡。

第三阶段,随着工作的增加,开始编写各种程序,开发各种系统,这个时候忙于编程知识的积累和应用。应该说这个阶段自我感到很 充实,有做不完的事,还属于程序设计的语言级阶段。

第四阶段随着编程技巧有了 一定积累后,我(开始)想这样的问题:我是不是最好的程序员?我能否编写出最好的程序?这个阶段是一个反思的阶段。我对自己的要求是:不但要会编程序,而且要编好程序,从数量开始转向了质量

第五阶段,开始在提高自己的软件水平上作文章。经过各种系统开发,尤其是大系统的开发,发现软件中有许多功能是重复的。因此,有一段时间把精力花在编制各种库函数上,通过不同系统调用相同的 函数,来减少重复开发,实现功能共享。当时比较得意的是库函数不是我一个人在调用,而是整个项目小组都在调用,甚至不同的系统也能调用,从而体会到编写库 函数特别有价值这个阶段的标志是库函数程序员水平上升到库函数那一级。

第六阶段,到了库函数那个层次后,很快就发现,单单实现程序函数级的调用是远远不够的。当你做了很多项目,包括大项目和小项目,尤其是跨行业的项目之后,你就会把库函数的共享思想, 用于项目开发。你就会想一个问题:为什么一个项目能有相同的构架?如果有相同的构架,那么开发就有了相对的标准,我们就有可能通过配置的方法实现相同构架的系统。于是我提出了IASG(交互式软件自动生成器)思想,并在C语言和其他一些语言实现IASG实例。记得最快的一次编写一个系统(公安自行车信息管理系统,主要用于丢失自行车信息登记)只用了3个小时(从需求到安装盘)。这个思想对我影响很大。这个阶段是上了一个很大的台阶,从程序上升到软件。其核心思想就从库函数共享上升到软件共享,具体过程是建立一个系统的构架,构架中有许多共同的功能,例 如,参数设置,用户权限管理,库表管理等等。另外,还提供信息建立查询开发模板,通过配置和特殊功能的编制就很快形成了一个系统。现在想起来IASG离我已经有20年了。

第七阶段,到了IASG阶段后,我发现无论技术如何提高,都无法改变开发落后于需求的 现实。通俗地说就是:程序员水平再高,仅仅是拉车水平高, 但是,应该在什么路上拉车程序员并不知道。如果这条路是一条光明的路,则程序员越拉越有劲,有奔头;如果这条路是条死路,则程序员拉功尽费;如果这条路是 条漫长的路,不知明不知暗,则程序员可能要拉死为止。现实中程序员水平低、收入低、被称之“IT农民工”;系统需求不明确,系统开发周期一拖再拖;系统重复开发多,信息 甚至不能在一个企业中实现共享,更不用说在企业之间,行业之间实现共享了;各种企业级的软件ERPCRMSAPBI层出不穷,也没有哪个能满足中国 的市场;各种新技术新概念也在不断出现,也没有哪种技术概念能真正发挥其内在价值,还是处于被学习被运用的下场。

这个阶段是程序员脱离了技术本身,开始思索开始求源的阶段。这个阶段是程序员的思想上有了飞跃。以前光拉车不看路,现在要抬头看路了。

第八阶段,有了抬头看路的想法,于是我踏上寻路之途。我首先看一下我们脚下的路是什么路,为什么这条路是那么不平坦、不宽 广?从软件生命周期来看,软件主要由用户需求发起的,用户需求是软件生存的根本理由。由于企业的不同、用户的不同导致不同的需求,这种大量的无序的需求, 这种需求驱动方式必然造成了我前面说的各种现象。这个阶段是寻找根源阶段,找到了根源,我们就可以有机会去解决问题。这个过程相对比较困难,这不仅需要编程技术还需要很多方面的知识,要了解 这个根源就迫使你去学习和积累更多程序以外的知识。

第九阶段,当我找到软件是需求驱动方式之后,我就开始去考虑什么是用户需求?用户为什么要提出这些需求?我们可以更深入地分 析用户需求产生的根源,我们能否让无序需求变成有序需求呢?当然这些问题我们都进行了深入分析,其过程也很难在这里进行展开说明。我只是说,最后结论是用 户的需求来源于企业的经营。很多人思考问题还是就需求而需求,并没有站在企业经营角度上去考虑问题。千万不要小看这个变化,这个变化最终会导致一个理论的产生。于是我们尽可能地站在企业经营角度上看待企业经营方式、企 业管理、企业信息化等。但是,我们最终要解决企业经营这个概念问题,如果我们都不能明确企业经营这个概念,或者我们不能科学地定义企业经营这个概念,那我 们的一切基于企业经营的各种具体现象就会如同无本之源无序的泛滥。就像ERPCRM等所谓企业信息化产品,都没有一个企业经营定义的支撑,只能就企业经营 的某个方面提出解决方案。这些产品不缺乏需求的支持,缺乏的是最最基本的企业经营定义的支持。而这个概念就是EOM

EOM是从定义企业经营角度入手,把我们今后要开展的各种研究和开发 活动都放在一个理论可支持的基础之上。有了企业经营定义之后,我们才有可能来分析我们需要什么软件,我们的软件采用什么技术才能实现企业经营的目标。而程 序员则通过EOM了解到企业经营需要什么样的软件,这个软件有多大的价值,这个软 件采用什么技术才能实现,自己要提高什么方面的技术水平才能获得更大的价值。

这个阶段就是EOM阶段,通过EOM了解软件的根源和有价值的软件所在,进而选择自己的未来的方向。

第十个阶段,当我建立了EOM之后,我便开始EOM实现阶段。当我们明确了EOM之后,我们就可以根据EOM来重新规划企业信息化的整体构架,我们可以细分这个构架中的各 种平台产品、各种通用产品、各种专业产品、可以细分出这个构架实现的各种技术构架和实现手段,可以细分出这个构架中的各种标准功能和标准信息。这样我们的 程序员就可以根据自己的特长和爱好以及价值的判断来选择其中的软件产品和技术。在明确目标,看好大路的情形下,通过自己的努力,不断提高自己的各种技能水 平,让自己的价值和企业经营价值有机的结合在一起,实现自己的理想。

 

从我程序员经历可以看出,程序员成长是无止境的,只要有的放矢地去努力,就会一个台阶一个台阶登高向上的。我认为程序员成长经历主要有三大阶段,通用技术阶段、市场阶段、专业 技术阶段。

1)              通用技术阶段是程序员专注 编程水平提高的阶段,也就是说“只拉车不看路”阶段。这个程序员能做的那个程序员也能做,程序员的替代性很强,程序员市场价值相对较低,程序员只关注编程 技术本身。

2)              市场阶段是程序员跳 开技术层面开始考虑为什么要开发这个软件,这个软件有什么价值,程序员开始不甘于“农民工”作为,通过求软件之源来重新认知自己的方向。

3)              专用技术阶段是程序 员认知了这个软件和技术有很大的市场价值,全身心投入到这个领域中去,使得程序员在这个领域成为专家。程序员不但要懂技术,更要懂客户业务,技术和业务变 得不可比,这种稀缺性造就了程序员极大的价值。

这三个阶段其实就是三个过程,每一个过程都是一次飞跃。程序员知 道程序员可以飞到多高,那是程序员的学习和眼界;程序员能飞到哪里,那就要靠程序员自身的努力。一个程序员可以没有能力,但是不可以没有眼界。

上一篇从两个方面谈到了程序员的自身价值:收 入价值和市场价值。其主要目的是要提醒程序员不要埋头编程序,要树立市场意识,计算一下自己的自身价值,通过自身价值的计算可以客观地评价自己的技术能 力,评价自身编制程序的价值,对未来有一个更科学预计。当然价值问题是一个仁者见仁智者见智的问题。这里我就不在评判回帖中的一些看法了。

   很多程序员 不关心自己编制程序的价值,一些新手沉迷于“学习”,编制一些“学习”程序,以达到练兵学习的目的;有的程序员天天忙于公司布置的工作,也不清楚这个程序 用在什么地方,这个程序能卖多少钱,他们认为这些都是公司的事,一点市场意识都没有,因为他们认为在市场方面他们是毫无话语权的。也有一些程序员虽然市场 意识很强,通过各种关系去找项目,但是项目也仅仅是杯水车薪,远远达不到挣大钱的目标,而且是饥一顿饱一顿,永远处于项目的“有”和“无”之间。

那到底什么是有价值的软件呢?可以从以下几个角度来看。

1、              软件层次

我们可以从软件的应用层次上来看,软件是分层的,从低到高:操作 系统软件、各种驱动软件、工具类软件、办公软件、开发工具、数据库、BI、应用软件等等,这些软件的价值可以通过他们的使用价值和软件 的销售价格就能知道它们的价值了。象操作系统、开发工具、数据库、BI等低层的核心的软件基本由国外公司所垄断,虽然其价值很高,但 是中国很少有公司有能力与其竞争的。因此,在中国这种急功近利的现状下,鲜有程序员去研发这些重要的基础软件。但是,不排除未来我们会补习这些重要功课 的。另一方我们看到应用软件是中国软件公司和程序员最可发挥才华的地方,而应用软件的价值有高有低,不可一概而论。

2、              软件数量

我们也可以从软件的数量上来看,有的软件至此一套,称之为定制软 件。有的软件可以拷贝无数,称之为通用软件或商品化软件。当然通用软件套数是受到这个软件的可能用户数所限制的。例如一个杀毒软件,它最高不可能超过电脑 用户数。一个财务软件可售套数它最高不可能超过企业总数。一般情况下,软件可销售的套数约多,软件的价值就越大。当然也有一套吃天下的定制软件的。

3、              软件售价

我们也可以从软件的售价上来看,有的软件(含项目)价格极高,有的甚至达到亿计,有的软件价格很低,甚至只有几十 元。我们一方面可以从价格上来给这个软件作个价值判断,比如这个软件在100万上就感觉价值很高了。另一方面我们要通过计算软件数量*软件单价来计算这个软件的价值。例如,软件A的单价是1万元,软件预计销售套数为5,则软件A的价值约为5万元。软件B的单价是100万,软件预计销售套数为1,则软件B的价值约为100万。软件C的单价是1万,软件预计销售套数为1000,则软件C的价值为1000万。就软件ABC来说,软件C价值要大于软件B,软件B价值大于软件A

4、              销售形式

我们也可以从软件销售形式上来看,有的软件通过产品方式提供给客 户,软件公司收入的软件的产品销售价。有的软件是通过收取服务费方式提供可客户使用的。通过产品方式的价值比较容易计算,有一算一的。而通过服务方式,尤 其是通过网上服务方式,则相对比较复杂一些。服务方式的价值往往取决于用户数和用户使用的年限。另外,服务方式的各种折扣也先对多些,例如10用户会收取90%的服务费,1000用户可能会收取70%的服务费。从发展的角度上看软件服务方式比重将逐步增加,其价 值也在逐步增大。

5、              是否收费

我们也可以从软件的是否收费上来看,绝大部分软件是要收费的,但 是也有一些软件被称之为绿色软件,可以供用户免费使用的。关于免费软件的价值情形比较复杂,有的免费软件是软件公司的赠品,有的免费软件是程序员自身能力 表现,有的免费软件是其他原因所致。但是,本文所谈的重点都是收费软件。

软件的价值无论大小,都体现的软件有用性的大小,软件的有用性则 又受制于软件用户数多少和软件的功能多少。中国的程序员无论在单位或是在家,都要注重自己所编制软件的价值,只有编制有价值的软件中国的程序员自身收入才能提高,程序员 社会地位才会提高,程序员自我实现度才能提高。而有价值的软件的增加说明软件在国民经济和居民生活中的应用程度的大大提高。

我们可能听到一些程序员说出这样的话:

1、              我们编什么程序我们 作不了主,公司叫我们编什么我们就编什么。我们才不管软件有什么价值不价值呢。

2、              我们想知道自己编程 的价值,但是我们无法获得自己编制软件的销售价格和套数。

3、              我们每天忙死,加班 加点,知道价值怎么样,不知道价值又怎么样?

4、              我们很想编制有价值 的软件,但我们不知道什么软件是有价值的。

我只能说程序员命运掌握在自己手中还是掌握别人手中,虽然不能完全取决于自己,但是要争取取决于自己,放弃自己的选 择只能是听天由命,程序员可以通过编制软件的价值的判断,来判断公司成长性的高低,进而选择自己的未来。程序员职业特点说明程序员有很多的自有空间,这个 空间可以做自己想做的事,而选择有价值的软件制作则是中国程序员内在的和可行的目标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值