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