作者: 吉日嘎拉 不仅权限设计 发表于 2010-04-16 12:08 原文链接
最近公司的一个小项目的实施,让我充分感受到合作的快乐,老板把项目安排给了公司的朱晓春去负责,这也是我们国内的典型软件公司的做法,这个东西不难,就交给谁谁负责,公司现在人手也短缺,就让他一个人搞定就可以了,其实很多问题往往没那么简单的。
不管项目有多简单,往往是一个小麻雀,什么都需要有,虽然功能不用很强大,但是一个人从头到位什么都做,往往哪个环节也做不好,有些项目是大客户的,有些项目是老板朋友的,有些项目是利润空间比较大的,老板也没魄力把这些项目统统拒绝,毕竟我们不是IBM啊。
这么个麻雀小的项目,由我们两个人合作完成后,结果就完全不一样了,我也有了成就感,公司的项目里用了我的劳动成果,给公司做了贡献,他也不是一个人做项目,跟我一起分享了合作的快乐,他也给我展示他的劳动成果,很开心,同是他也是这个项目的项目经理,在合作的过程中我也有了提高、他也应该有不少收获的。同样的事情用了不同思想、不同的做法、最后的效果是完全不一样了,一个人打星际争霸一局也懒得玩,几个人打星际争霸,就是光打电脑也愿意打半天。
============================================================================================
人能经历N多失败也不是什么坏事,只要你不被失败打到就好,没有惨痛的教训往往不会有深刻的体会总结。由于从小没几个人教我做人的道理,只知道学习、写程序,虽然我不邪恶,但是为人处事方面往往会出现很多不足。
1:以前总想证明,自己是最强的、就用实力来证明是最强的,把实力拿出来了,别人会不得不承认你是最强的。这样好强的性格、在工作的前几年了到处碰壁,同事们也会反感,你越是想证明自己是最强的,别人越是往死里找你的缺点,甚至是打击你,其实现在写博客过程中也往往会有隐约有这样的恶习的阴影。
2:往往大家都明明是知道这个事情是好事,由于你没能得到大家的心,大家本来抱有排斥的心里对你,所以就是对的事情,大家也不愿意跟你合作,或者按你的思路来,想尽一切办法,找你麻烦,谁叫我们大家讨厌你呢?当然我也是属于那种比较自私的家伙,第承认的。
3:其实,我们不管做什么事情,需要记住一点,首先需要得到了领导的认可,从上而下执行的事情,往往会更顺利一些,但是从下而上的事情往往是执行不好的,这也是我们中华民族的优良传统之一,一直比较关注领导的执行力。
这些是以前在公司里推广代码质量检查、数据库设计规范、通用权限管理、单点登录、数据中心、统一架构、组件化等等理念时遇到挫折总结出来的,我觉得我的这些理念应该都是没错的,都是对的,但是我做事的方法有很多不对,特别是以上3个主要问题上,都是有些错误的,新的一年也应该有新的变化,新的提高吧,有错就改,不断提高自己的境界,这是我一直保持的良好心态。
解决以上问题的方法:
1:再也不在公司想表现出来我最强了,我写了N多文章、写了N多思想,大家自然而然就可以有些认可你了,就是被大家认为是最强了,又能怎么样呢,结果新公司里也是有很多人才,有一个家伙居然是1个人把工作流都做得很棒,还有一个家伙叫“朱晓春”也是技术爱好者,对很多新的技术都有深入的了解,我跟同事们硬是拼技术,绝对是一个字“死”,那我怎么做呢?难道我辞职走人?
2:先不要急于做事情,低调低调再低调,先跟大家打成一片,就像做业务的,先别一上来就是做广告做推销,那人家会很反感,我也用真诚的心跟大家交流,帮大家解决问题,帮大家检查代码,然后把理由都讲清楚,更不能一味的批评人,要知道人家也有人家的长处的,我给你检查代码,不是为了证明我比强,而是为了帮你写出质量更高的代码,做同样一件事情,用不同的心境去做,效果完全不一样,不会有任何人再排斥你了,写代码的人提高了、检查代码的人也提高了、公司产品的质量也提高了,客户满意了,公司的效益也好了我们的收入也高了。
3:先没必要跟同事们沟通,沟通了也是瞎扯蛋,大家都很忙的,一个个人去讲自己的思路价值观,那得讲到什么时候,同事们说话的分量、理解事情的深入程度还是会有些不够的,毕竟他们有些人是刚工作没多久的,很多事情也没经历过,不会有那么深刻的体会,我这次学聪明了,直接找老板,老板只有一个人,拿上纸和笔,给他讲我的理念有多么多么好?又不需要老板烧钱,只是想得到老板的支持而已,除了傻瓜老板,哪个老板会不同意你做好事啊,当然不能瞎干、搞劳民伤财的事情。
接下来主要写(与同事合作的快乐)
===================================================================================
我一直坚持在整个公司,所有的项目都统一权限配置、调用方法的核心理念、当然不只是权限了,公司有个小项目,老板授权这个项目里可以尝试有用我的权限,我有一个很实在的理念,连自己的同事都不用,连自己的公司都不用,那哪里还能指望全世界用啊?先从自己的身边开始革命,由于我做了一些管理工作,所以这个项目的项目经理是不是我,是上文中提到的“朱晓春”。
有了以前失败的经历,这些做事情就慎重了很多,因为第一个上失败了,那就彻底被否决了,还不如不去做,会很难下得了台阶,接着我就这么开始入手了。
1:首先需要彻底解敌情,敌人的情况怎么样也都不知道,怎么跟他战斗啊?程序员与程序员的PK,先从代码开始吧,我得先知道敌人手里都有什么?那就慢慢的开始进行渗透工作了,公司里的谁都是什么职位,都有什么两下,没2周,我就摸清楚了。
我的敌人很强大,他首先有已经工作4年了,快到了一个质的飞跃了,而且也有了丰富的工作经验,我看了他给公司做的进销存系统,功能也很多,软件运行也很稳定,架构代码也仔细阅读了,条理也很清晰,平时工作也很有条理性,早上从来不迟到,气质也非常一般,我们公司估计唯一他是带那种又粗又大的黄金项链,虽然我跟我老婆逛街时,经常会跟他讲,等我成了暴发户,我想买那个“又粗又大的黄金项链”。
从这个项链上,我就看出,他不是为了谋生写程序,而是为了兴趣爱好写程序,写程序是乐趣,而不只是工作,这些有些难办了,要说服这样的人,需要有很强的道理才可以千万不能硬来,日常的工作上的交流中也能感觉到他有一股杀气、自信、而且是年轻有为啊。
通过查看代码,真的可谓是长江后浪推前浪,技术都是用最新的,跟人家的代码比,我已经在技术上无法100%说服他了,这个事情真有难度了,我得走以理服人的路子才可以。
2:其实开发人员也很愿意交流技术的,那我就从这个方面开始入手了,我诚心诚意的看他的架构,跟他交流心得体会,学习人家架构中的优点,然后找出他的架构中的缺点,毕竟我在编码规范、思路严谨上还是有一定的造诣,他新技术掌握上再厉害,也总会有些缺点,结果没几周下来,我们倒是成了好朋友,先是我看他的架构,接着他也有兴趣看我的架构,也给我找找架构中的错误等等,特别是在泛型的应用、一些新的函数等上,他成了我师傅了,我虚心向人家学习,其实做一个软件项目的架构上,并不是非要你死我活,而是你的容量有多大,其实大家都可以互相包容的,有些问题用你的思路去解决见效更好,有些问题用他的方法解决会更好,就这样我们2个的架构,都更上了一层楼,他也开始不排斥我了,偶尔也会主动跟我交流几下,我也发自内心的很开心,因为我多年的架构又完善了一些。
3:以前往往是要么用我的架构,要么用你的架构,其实条条大路都可以通杭州,也不是非要指定走一种路线,只要最终目的达到了,用不同的路线,用不同的方法能到达杭州就可以了,管他什么飞过去的,还是自己开车过去的,先达到目的,大家开开心心更重要,当然没有一定的技术把控能力、一个高度,也是难做到这个程度的,只要他能静心维护,不断提升改进、不要写得凌乱,还是可以的,我也仔细看了他的架构人家架构也不差,非常小巧、还能解决多数据库的兼容性问题,何必打击人家的架构呢,互相取长补短就可以了,若遇到他辞职,他留给公司的东西,是可维护的,那问题不太严重,若是留下了一个凌乱的架构、那真的是要人命的,主要还是在于,思维是否严密、条理是否清晰。
4:当然我认真看他的架构,他也会认真看我的架构,每个人都有优点,当然他也能看出我的架构里哪个函数是否可以写得更精确,怎么调用会更好,特别是WCF的服务配置设置上、泛型的应用上,帮了我不少,我感觉多与身边的同事沟通沟通,也是很没好的,当然需要有些水平,互相都有收获,他也从我的系统架构里学到了,严格的分层、严格的分工优点,也很快就进行了相应的调整,一些函数命名、参数命名等我们也进行了深入的交流、很快我们写的架构很多环节都有了兼容性,说得直白一些,以后有可替换的余地,我辞职了,可以把我的给替换了,若是他辞职了,可以把他的给替换了,毕竟现在谁也说不好,谁会一直留在公司的,只要我们离职时不要给公司带来包袱就可以了。
5:朱晓春的工作计划里,权限管理这部分是10天的工作量,我按他的实际能力及客户对这个项目的权限要求来讲,10天是足够了,但是想怎么去说服人家不要花10天去开发这个了,而是用我的现成的就可以了,若一个软件工程师的月薪是5000元来计算,10天的成本是就是半个月(2500元),但是对项目而言不只是10天的问题,若把这10天的精力放在业务、放在测试、放在代码质量检查上,那对项目的意义是非常大。
A:我来耐心的说服他,权限这10天,何必跟你过不去,搞得自己很累呢,还不如我帮你做了,实在不行,这10天,你就算是休息好了。
B:权限我帮你做了,以后这部分出了问题,责任不在你,你何必给自己找麻烦呢,出了问题我来负责,你可以安心做好你的业务,我是来帮你解决问题的。
C:我做出来的权限,有足够的扩展余地、不用修改程序,有很多API可以调用,将来的扩展性非常好,你现在花费10天,就是花费100天,也难做到啊。
D:我有比较好的后台管理工具、有个工具总比没工具强吧,而且你不想要哪些功能,我这里都可以灵活配置,三下两下就可以完成了。
E:再说了,领导也都同意我的做法了,你要不要听老板的呢?又不是我给你瞎搞,我是专门研究权限的,成果是可以看得到的。
接下来,他就安心做业务部分了,用了Silverlight,WCF开始做项目了,根本不用关心用户的管理、权限的管理等等,等他做得差不多,系统都稳定了,我就花费了3天多的时间,按他的页面风格,给他做了一个用户管理、角色管理、权限配置相关的几个页面,也不用他自己折腾了,登录页面也帮他弄了一个,把程序都写写好,就这样公司的项目走上了单点登录、集中权限管理,统一的后台工具的第一步了。
当然在开发过程中,他也会遇到一些权限方面的问题,直接问我就可以了,有兴趣就研究一下是怎么用的,没兴趣的话就知道调用哪个函数,我是怎么解决的就可以了,省事了,懒得在这个无聊的问题上动脑子了。
当然我在给他集成权限的时候,也重返展示了我的编程能力,集成能力,就在他的电脑上折腾了1-2个小时,权限函数什么的都调试好,该调用的DLL什么的,都配置好,毕竟系统是他架构的,我要是技术方面考虑得不够深入,是很难无缝集成到他的系统里去的,就花费了1-2个小时,权限都可以正确调用了,他也会蛮开心的,毕竟他的项目可以提前几天完工,我的权限也是修正了上千个Bug,维护了很多年,才能到今天的程度,换来的是现在只需要花费几个小时,就可以集成在别人的架构里了。
=============================================================================================
通过这次成功的在新公司内部的集成,我充分感觉到,一方面权限集成需要有过硬的技术能力,另一方面需要有足够的稳定性,不能出一个错误,而且需要迅速能集好,若是这个集成工作做了4-5天,反复出现错误,没完没了的打扰人家的工作,没完没了的崩溃、漏洞、升级、补丁,那人家也会非常反感,甚至他会向领导报告,这玩意儿太折腾人了,干脆给他10天时间,自己弄一个算了,虽然10天内他未必能做得完美,但是足够能对付他目前的业务系统,将来的事情将来再处理了。
通过这次的集成,我也能感觉到哪些环节我应该更加注意,我如何做,才能让更多人接纳我的统一权限思想,应该做哪些准备工作等等。
同样是工作有4年经验的朱晓春,与其他来我们公司面试的一些技术人员也做了一些比较:
1:对相对来说是新技术、新的函数功能等的了解很深入,例如Silverlight,WCF这方面完全超过我的能力,后浪啊。
2:精力充沛、年轻有为,干活干净利落,一是一,二是二,平时外表气质也不俗,给人一种清新的感觉。
3:做事情有原则,有时候敢批评我做事效率不高,也的确是,有时候我想的问题太多了,也效率低一些。
4:不像大多数技术人员一样固执、只要把道理讲清楚了,都能及时采纳人家的好的意见建议,不怎么以自我为中心,这方面我需要多向人家学习。
5:新技术的突破性的能力方面很强,那些Silverlight特效等,也是第一个在公司里的实际项目里应用,大多数同事也都是在应付日常工作上都忙不开了。
6:与很多同样有4年工作经验的同行来比,他掌握的新技术过关一些、应用也过关一些、在公司有他能拿得出手的的成果物,能自己独立架构系统,有自己的思想、追求、我也从来感觉不出来他有多少对技术迷茫、对未来迷茫的感觉。
7:相对来说技术是属于精湛、深入类型的,在架构与架构的PK,过程中人家有不足的,就可以马上修正、调整,若技术不行,是经不起折腾的,几下就完蛋了。
8:能听得进去别人的劝告、能明白事理,不像我,就总觉得自己的是最好的,错误都是别人的,对的都是自己,呵呵,当然他也难免有些那股点点的固执。
当然他也有大多数技术人员的普遍缺点:
1:大部分时间都花费在研究新技术上,缺少与同事的沟通交流,平时也不太重视交流的重要型。
2:不擅长写文档,特擅长学技术、做项目、多少难的项目给他,他也不怕。
3:喜欢自己架构、精力大多都放在架构系统上,架构自己心目中的完美架构上,不乐于接纳别人的架构、其实把别人的架构看透需要更高的水平与境界。
公司里过多的架构,很可能分散公司的精力、将来甚至是成为公司的沉重包袱,这个就很像计划生育一样,要讲优生优育比较好,还有一个重点就是客户买的不是我们的架构,买的我们的解决方案,再好的架构也难抵挡过世界知名的开源架构,再好技术也难抵挡微软的新技术强,你好不容易花费几年时间自己架构了一个,刚到稳定成熟时,新技术又出来了,呵呵,白玩了,生命浪费了,拿来注意最终能战胜自己刻苦专研,何必跟自己过去不去,跟钱过不去呢。
省下拉的时间,多去泡泡妞,多关心关心家人,多想想社会在需要什么软件,做什么业务更有前途?哪里有什么好东西,可以拿过来直接用,或者有什么好东西在哪里卖?多去认识几个朋友,多去走访几个客户,多研究一下自己的业务领域,那最终带来的经济效益会更好一些。
一个人的力量架构的系统,往往是在某一个方面有优点,整体上都做好,那得努力7-8年才能做好,毕竟你平时还需要做一些架构系统以外的事情,老板是不会让你天天在那里研究技术儿买单,这些研究技术的微软会买单的,我们开的不是技术公司,我们开的是咨询公司,有那么强的技术、学习能力,也不会是小本科了,早就是博士、博士后后者留美学者了,我们大多只是普通老百姓而已。
真的有那么强的架构系统的能力,那你的系统就是全国有名、甚至是世界知名的架构了,这也当然会给你带来不小的名与利的,跟随而来的还有相应的社会地位,大部分人还是没有钱好赚的架构坚持不了那么久,因为你卖给谁?谁认可你?大家谁服谁啊,我觉得我比你还强,我想架构的比你的还好呢。
我也开始学会与牛人一起合作,去认可别人比我牛,比我强,我发现也没损失什么,反而人家也更加尊重我、接近我了,也没有因为他比我还牛,老板就把我开除了、失业了,反而大家更加融洽、更加开心的一起生活了,毕竟我工作了10来年,这个优点他是赶不上的嘛,哈哈,我也只能这么安慰自己了。
软件开发合作分工明确,使得我可以更加深入对权限的实践、优化、集成方面的经验积累,他也可以更关注他的业务系统,权限出了问题或者有疑问,也不用瞎折腾直接找我来解决了,他也不用分心了,大家都可以更专注,结果是双赢的局面,很开心啊,互相合作就不孤单了。