posts - 103, comments - 1864, trackbacks - 6, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
     终于到了编写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)              专用技术阶段是程序员认知了这个软件和技术有很大的市场价值,全身心投入到这个领域中去,使得程序员在这个领域成为专家。程序员不但要懂技术,更要懂客户业务,技术和业务变得不可比,这种稀缺性造就了程序员极大的价值。

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

下篇:《我的程序员成长之路:EOM简介2(程序员篇)

Feedback

#1楼  回复 引用 查看   

2010-03-18 08:48 by onlyfew      
现在想起来IASG离我已经有20年了.
博主名副其实的前辈!

#2楼  回复 引用 查看   

2010-03-18 09:28 by Mr.欧阳      
前辈。说得很实在,很有道理。关注中。

#3楼  回复 引用 查看   

2010-03-18 09:39 by peace      
应该顶一下

#4楼  回复 引用 查看   

2010-03-18 11:03 by Aaron_Aanubis      
很好的一篇文章,对我们今后的职业规划有很大帮助!谢谢楼主的分享!

#5楼  回复 引用 查看   

2010-03-18 12:57 by dege301      
自我评价了一下,按照10个阶段的的分发,我现在只处于第5阶段,天天在琢磨这个东西,谢谢楼主,能对自己几十年的经历做一个如此有价值的回顾总结,对我们这些晚辈来说简直是“看君博文一篇,胜过代码千万!”

#6楼  回复 引用 查看   

2010-03-18 13:52 by Robin Zhang      
应该写个
《程序员之路还有多长》

#7楼  回复 引用 查看   

2010-03-18 14:16 by 易简.道      
程序员之路,从无到有,再从有到无。
什么都不懂,到略知一二。
从略知一二,到知道很多。
从知道很多中,精炼总结。发现很多的曾经认为的很多不同中有相同。
从知道很多中就会察异求同,
仅指一二就可。
到不再执着于有形的一、二。
从有到无。

#8楼  回复 引用 查看   

2010-03-18 15:38 by lola      
过了第五阶段之后上升会有瓶颈

#9楼  回复 引用 查看   

2010-03-18 20:21 by geruger      
楼主能否 具体表带 一下eom的思想...

#10楼[楼主]  回复 引用 查看   

2010-03-18 21:01 by n216      
引用onlyfew:
现在想起来IASG离我已经有20年了.
博主名副其实的前辈!

好在自己还能坚持!坚持!没有时间回头看看,于是和你们一样,都是向前看的。

#11楼[楼主]  回复 引用 查看   

2010-03-18 21:02 by n216      
引用Mr.欧阳:前辈。说得很实在,很有道理。关注中。

谢谢关注!有读者的支持!我会更加努力的!

#12楼[楼主]  回复 引用 查看   

2010-03-18 21:03 by n216      
引用peace:应该顶一下


希望坚持顶下去!

#13楼[楼主]  回复 引用 查看   

2010-03-18 21:04 by n216      
引用Aaron_Aanubis:很好的一篇文章,对我们今后的职业规划有很大帮助!谢谢楼主的分享!


希望能看到你们的职业规划,并且从中看到自己的影子!也谢谢你们的关注!

#14楼[楼主]  回复 引用 查看   

2010-03-18 22:11 by n216      
引用dege301:自我评价了一下,按照10个阶段的的分发,我现在只处于第5阶段,天天在琢磨这个东西,谢谢楼主,能对自己几十年的经历做一个如此有价值的回顾总结,对我们这些晚辈来说简直是“看君博文一篇,胜过代码千万!”

处在第5阶段也是程序员一个技术重要转折阶段,程序员想通过库函数来减少程序的重复开发,减轻自己的工作量!有这种想法的程序员是一个有上进心的程序员。我看到周围一些程序员他们鲜有编写库函数的想法,他们是编到那算到那,热衷于复制粘贴。经历了库函数的阶段能使程序员对程序有了更好的价值判断,他们对函数调用(自己的函数)充满自信和自豪,这些自信和自豪反过来促使程序员去编写更多的库函数。
但是这个阶段其实是很难的,程序员需要大量的实践才能沉淀出一些可用的库函数。越过这个阶段后,你就会发现过去编写的库函数是那么的幼稚,你就会有新的冲动去建立新的软件构架,你就会发现过去所经历的是那么那么的重要和必要。程序员要脚踏实地一步一步向前的!
另外,当程序员能够摆脱代码的约束,站在更高的层面看待代码,那他又上升到另一个高度了。

#15楼[楼主]  回复 引用 查看   

2010-03-18 22:12 by n216      
引用Robin Zhang:
应该写个
《程序员之路还有多长》

程序员之路无止境呀!

#16楼[楼主]  回复 引用 查看   

2010-03-18 22:13 by n216      
引用易简.道:
程序员之路,从无到有,再从有到无。
什么都不懂,到略知一二。
从略知一二,到知道很多。
从知道很多中,精炼总结。发现很多的曾经认为的很多不同中有相同。
从知道很多中就会察异求同,
仅指一二就可。
到不再执着于有形的一、二。
从有到无。


从无到有,从有到无,此乃大道也!

#17楼[楼主]  回复 引用 查看   

2010-03-18 22:16 by n216      
引用lola:过了第五阶段之后上升会有瓶颈

是的,越高越难嘛!第5阶段是从语言到函数,现对容易一些。但是,从函数上升到软件则需要更多的积累!从技术到市场又是一个瓶颈!无论什么瓶颈,只要努力都是可以突破的!

#18楼[楼主]  回复 引用 查看   

2010-03-18 22:17 by n216      
引用geruger:楼主能否 具体表带 一下eom的思想...

且听下回分解!

#19楼  回复 引用 查看   

2010-03-20 21:15 by 一滴water      
受教也.....

#20楼[楼主]  回复 引用 查看   

2010-03-21 22:06 by n216      
引用一滴water:受教也.....

谢谢,“一滴水也可以救活几颗秧苗呀”

#21楼  回复 引用 查看   

2010-05-10 10:25 by mdw110      
师者可以传道、授业、解惑也;