日期:2009年2月7日 凌晨 分类:技术架构 搞IT软件很多年了,我也有个人的终极梦想,就是能有个属于自己的公司,只要不亏钱,并按我的意愿、采用我的开发思想开发软件,就是一个月只有5000元的纯利,我也很开心,只要够我生活就可以,当然能赚大钱,买宝马,买别墅,还有N多年轻美女每天围绕在我身边更好啊。我老婆的同事跟我讲,男人只有两种,一种是色男,另一种是很色的男人,不知道屏幕前的帅哥你是归类到哪种,哈哈。 由于家境及出生环境的原因,说白了更多的是由于我的个人能力还不过关,自己去赚钱开公司还真得饿死,所以只好屈才打工,毕竟打工的话老板会每个月按时发工资,不管公司有没有项目,不管这个月是不是又偷懒。打工的生活会有保障,干得勤快些听话些,还可以多发点儿奖金。但我永远不会甘心,等到某一天,我有能力了,开一个公司绝对会比现在的公司好,至少我更了解程序员应该怎么管理。 好像总结出来,做管理软件只要会实现添加、删除、修改、查询列表就可以了,整天搞来搞去就这些,你会说啥也学不到,这个是天大的谬论。你真的把你眼前的框架的核心思想掌握了吗?说白了,你都没仔细读过里面是如何架构的,如何运行的,好像跟你没关系一样,然后就总结出来“啥也学不到”。我做日本外包,学到了很多很多,不是一般地多。我只能这么讲,光NEC公司的分层架构我就研究了一个月,我很多现在的做法,也都是借鉴了当时NEC的思想,甚至我的整个架构都是按NEC的架构来的,当时这个架构也是日本微软为NEC架构的,并不只是NEC工程师的成果。我把能读到的源码,都彻底研究了一下,到今天为止这依然是我见过的最好的架构,网上主流的我也几乎都看过一番,当然不能说全部。 遇到过比较糟糕的公司,软件搞得一塌糊涂,自己在里面也会渐渐迷茫。开发人员稍微懂了点技术,就开始不听话了,也不好好干了,能看新闻就看新闻,能聊QQ就聊QQ,工作能磨蹭一天就磨蹭一天。心目中总会勾画一个理想化的系统,让你拿出来吧,你却啥也拿不出来,让你用别人的吧,谁也不服,来一个排斥一个。然后就抱怨在公司里啥也学不到,待遇还很低,几年后就变成老油条了,超级能跟上级打太极,成天在寻找哪个公司干得少,给得多,公司又大,前途又好,天天投简历、跳槽,这里也不满意那里也不满意,站在这个山上,望过去那个山更高,最好是能去微软、IBM工作,时刻给自己充电,就是不喜欢干活,累、烦。若这期间水平不错,给客户做项目时表现好,跟客户关系也不错,工作7~8年了,手上总会积累一些客户资源,然后这些客户为了省钱,会绕过公司找你个人开发一些小东西。这时候,你才会逐渐体会到原来完整地架构一套系统还真不容易,因为全靠你自己折腾。折腾得很累。晚上干了很久很久,白天到公司了就打瞌睡。不去上班吧,扣工资,请假吧,老请假不好。你平时并不重视公司里的架构及整体的处理,说白了在你眼里那些都是垃圾,更何况公司的事情跟你无关,能少做一点算一点儿,因为你心目中有更完美的想象,有朝一日你要自己搞个完美的系统,现在的你只是还在酝酿学习阶段,用不了多久这个系统就会出来了,那也是自己出名之日。 工作几年后,你会陆续接到一些客户的小订单,这些订单都大同小异,你自己也会开始琢磨自己的模块的通用性。但是若完全靠这些小单子,饥一顿饱一顿,生活也没有保障,说白了,一年的收入也没公司发给你的工资高,所以你又不能辞职只干这些小单子。 公司里一套,你自己一套,若你是公司的技术骨干,你就希望这些东西不要乱改,因为乱改了就要让你折腾更多的东西,所以你会奋力阻拦这些改进,并且以前你也为公司开发了很多东西,那些东西还要修改,会产生很多工作量,所以你死活不修改。你比以前变懒了、老了,说不定已经成了公司发展的绊脚石了。 若你是公司的小兵,你可能平时维护公司的东西;业余时间,你可能也想架构一个系统,可能也接了小单子,用了公司的一些架构或者一些组件,这样大家每个人都搞了自己的小山头,经常在维护自己的小山头,有明的有暗的,大家都很累,效率也低,因为力气没往一处使,经验成果没有积累到同一个山头上。 我觉得这时候当领导的心胸可宽一些,尽量别让大家个个搞个小山包,公司的东西,有些不是太重要的可以允许私人用,你私人的项目里发现公司的东西不好有缺点,也别太自私,把公司的东西也改进一下,提提意见,因为开发项目早晚会遇到各种问题,今天不解决明天也需要解决。 以前我的命名空间都叫ESSE.Common.* 什么什么的。给自己、给私人的小项目用吧,好像犯罪了一样,其实里面的东西都是我辛辛苦苦写出来的。但给客户这么发布吧,好像是偷了公司的东西似的,拿给客户了一样心里很不爽。我们的其他同事吧,更不理会这个 *.Common.* 了,大家都要搞自己的,因为在他的眼里,那是你的东西,我才不想用呢,我比谁差,难道这些我不会搞?他自己又搞一个小山包,然后业余时间不断完善,最后还是超越不到哪里去,大家都在重复搞这些东西。 我经过了三年多的琢磨,干脆,就把这东西叫做DotNet.Common.*吧,源码也公布了,你直接拿过去用吧。公司也用这个,个人也用这个,大家都往这么一个山包上积累经验吧,力气都往这一个方向用力,改进完善这么一个东西。这样大家的工作效率就提高了,生活质量也提高了,可以积累起大家的精华。 若一个公司的赚钱能力跟个人行为竞争,若一个公司不能最大化员工的利益,我想这个公司也没多大发展潜力及竞争优势。ESSE.Common.*修改为DotNet.Common.*后,我心里爽了很多,就没有啥罪恶感了,不管大家自己玩技术还是自己接的小项目里都可以用了,因为这个命名空间很爽哦,发现了错误也会跟我及时反馈,我来统一修改就可以了,或者他们会告诉我,如何写会更好一些,把大家的积极性也都带动起来了。我才不会计较你是在做公司项目时发现的错误,还是偷偷搞私活时发现的错误,只要你在正常的8个小时里好好干公司的活儿我就睁一眼闭一眼。 公司的业务永远不要与个人竞争,公司的利益有时候跟个人的利益也没啥冲突的。你自己也别太自私,公司有类似的需求时也直接拿过来吧,毕竟你也受到了公司的恩惠,老板不管有没有单子也给你发工资了,你也要想一下老板亏钱的时候。 我的终极梦想,是大家开发的软件都能互相兼容,别买七八十套软件,那要记忆七八十个用户名和密码,七八十个页面操作方式。七八十个系统还需要很庞大的维护人员,要培训七八十个系统的后台管理。不要制造电子垃圾,不要给人家制造麻烦。软件系统是为了提高生活质量,是为了提高工作效率。一个庞大的集团公司,存续多年,前后上了几十套系统,那真的是一个噩梦,也会成为公司发展过程中的重大累赘。 别太封建,别太国企,别太顽固,别太倔强,别太好胜,多为公司着想,多为整体着想,别老是太多借口,借口是发展前进的绊脚石。