权限管理、用户权限系统、开源用户权限系统、信息化建设标准基础数据管理平台
代码改变世界

中国特色管理类软件项目开发之通用权限必杀技 -- 权限自由配置设定、实现智能化自动检测校验

2009-09-24 20:39  通用C#系统架构  阅读(4724)  评论(43编辑  收藏  举报
   看博客的人群中绝大部分还是做国内项目为主的应该会多,毕竟我们都是中国人,大部分都在国内生活工作,大多都没能真正走上国际化,我们对软件项目的功能定位、开发质量管理与发达国家的软件项目比的确有明显的差距,而且不一小点儿。
   几年前参与过日本大型软件外包项目,一个大阪大学的附属医院为了做一套IT信息化管理系统,就可以投资接近几千万甚至1亿人民币的研发资金,小鬼子还真有钱,不服不行,在国内做软件项目能碰到几百万的就非常不错了,大多都是几万几十万的比颇多,并且国内的软件项目是期望值高、定位高、非常理想化、功能要求大而全好像要做全世界最好的管理系统一样,相反欧美、小日本的软件项目是小儿精、有明确的定位、设计、功能要求、质量要求,项目还没开始外包,预期结果一经事先知道了。

   最近半年接手了一个典型的国内项目,需要完成17个功能模块的设计及开发工作,具体模块有“信息门户模块公共信息管理模块个人信息平台模块邮件管理模块生产监控、调度模块工程管理模块材料管理模块(进销存)水表管理模块资产管理模块营销数据统计模块管网数据统计模块客户服务处理模块合同管理模块人力资源模块档案管理模块财务管理模块;后台权限配置模块”,这么多模块都需要按客户的个性化需求定制开发,工作量是相当的庞大的,当然每个模块与专业化的商品软件比又是需要简易、简化版本,所以无法直接购买现成的软件模块进行集成、只能全部按客户的要求进行定制开发,要懂这么多业务,也不是1个人能短时间能理解透的。
   很多国内的大型管理类软件,经常会有:
   1:定位不确定
   2:功能不确定
   3:范围不确定
   4:深度不确定

    并且这个单子是从中国电信手里抢过来的单子,需求是电信的人做的,我们是半路杀出来的程咬金,对需求不是很了解,我们总不能做第2次崭新的需求分析了,只能硬着头皮开发了。

   集团公司的杭州分公司成立没多久,再加上开发团队也是最近半年开始组建的,再加上领导对成本的严格控制,我们开发组里只有1个3年工作经验的开发工程师,其他人都是新人,都需要培养出来才可以,甚至有的还第一次做开发工作,新人有几个好处:听话,不倔强,不老顽固,肯干,干劲足;当然有优点必然有缺点:经验不足,简单的问题也经常犯错误,技术不过关,稍微有点儿难度的程序审计就搞不定。

   我们项目组采取的对策是:对新员工进行统一的正规培训,开发架构培训一周,权限体系、编码规范、核心设计思想、数据库思想、页面处理逻辑、页面注意事项、例子程序等至少培训一周,开发阶段严格检查他们每天的工作成果,严格按例子程序编写各个功能模块,这么坚持半年下来,我们项目还真靠这么一大对新员工,将上百万的软件项目顺利开发出来,现在已经进入了验收阶段了,胜利在望、志在必得了。
   在开发阶段虽然也遇到了很多返工、推倒重来、丢弃、人员离职、总公司派开发人员协助等等很多事情,但是总的来讲整个项目还是比较顺利,客户也比较满意,就靠这么写虾兵蟹将,第一次磨合就把这么一个庞大的工程做下来了。
   公司也是为了开发成本,利润空间,没有配置过多的资深开发咨询人员,大多是一个项目经理搭配个10个8个刚毕业的大学生,几十万的国内管理类软件项目就开始瞎折腾了,我们经常是瞎设计、客户是瞎提意见撤东扯西、我们是瞎改,测试人员是瞎测试、项目主管是瞎管理,随后项目就瞎验收瞎搞了,哈哈,其实我也喜欢混水摸鱼的感觉,瞎折腾身心不累,最后哭的只有老板一个人,我们顶多拍拍屁股就走人了
   若在这种瞎折腾的前提下,你的权限配置也能经得起瞎折腾才可以,你想怎么折腾,我就陪你怎么折腾,否则就是水土不服了,你做出来的软件绝对没有销路、也不能满足我们国内特色的需求了。

   稍微资深的开发人员觉得继续做软件行业身体吃不消、收入太低,能转行的都转行了,积累下来的丰富开发经验也就这么人间蒸发了,稍微有点儿想法的没经营能力的开公司都当了炮灰了。像我这样勉强能维持生计、还没失去信心还没放弃软件行业的也有一部分人在。

   很多人一同开发同一个大型管理类软件项目,每个人各负责各自的业务模块,很容易出现一团乱的局面,例如接近20个功能模块,哪个模块到底需要设置什么权限一个人跟本没有精力设计好全部项目中的权限配置,毕竟人的精力是有限的,而且时间、人力成本上也不允许你那么干,并且我们自己也很可能对这些业务模块没什么兴趣的,哪里可能对那么多模块都能主动有了解,就算项目经理也达不到那么牛X的水平,几百个页面啊,这可不是开玩笑的,光把业务理解好,就需要耗费个巴月,难道其他事情不干了?再说了领导又给我们发了多少薪水?又不是几万一个月对吧,那么拼死干啥?
  那怎么办,只能有各个模块的程序开发人员,自己设置自己模块的权限了,各管好各的模块还是很实在的责任明确,项目经理只能对大家进行统一的指导思想、设计思路、相关培训等工作做好,由于这些开发人员的水平也各自不一,有利害的、有菜的、有思路混乱的、有水平高的,你不监督管理,那会是更乱。
   在开发过程中经常还会发现,原先设计的权限有不对了有多了有少了或者推倒重来的,经常是在不断变化中走向成熟稳定,当然在这个变化过程中,辛苦配置的权限数据又不能丢了,几个百个人的权限总不至于每次都需要重新配置吧?。
  而且经常会发现,今天设置了这么几个权限,过几天又变成那么几个权限,到后来连项目经理也搞不清楚整个系统里到底需要设置几个权限?哪些权限是有用的?哪些权限已经是被废弃了?
   还有更邪乎的,前台是写了判断权限的功能,但是由于种原因,后台忘记配置这个权限了

   为了解决这些权限方面的问题,采用了有如下方法:
   1:(测试时智能化的前台与后台对应关系检查)只要前台判断了某个权限,在测试运行阶段发现这个权限在后台是没有配置过的,那系统会自动把这个权限加入到,这样项目经理很容易知道,前台页面里还有那些权限配置,在后台没有配置好,并通过命名、查找项目里的程序,就很容易定位出来,谁还把哪个权限给漏了,人工查几百个程序页面,那是不太现实的。
   例如下图:就发现2个发文功能模块的2个权限没有在后台进行配置过,敦促相关开发人员尽快配置好权限。
   
若发现有后台遗漏的,那就可以进行重新整理调整权限的设置,当然我的权限策略可以随时进行调整、重新整理划分。
 

  2:(测试时智能化的检查被废弃的权限)在测试时,哪个权限被调用过就记录这个权限的最后被调用时间,若这个权限一直没被调用过,或者已经几个月没被调用过了,那就能知道这个权限很可能是被废弃了,但是开发人员马虎了,还没再后台把这个权限项目删除了?代码理是否有被调用,通过 VS开发环境很容易就搜索一下就知道了。
  

   通过以上2个方法,解决了开发人员每个人可以自由设计自己负责的模块的权限、并能指导哪些模块的权限变动了,由于思路不严谨,没把后台的相关配置删除掉,有垃圾数据存在。

   开发项目的并不是人人都是牛人,但是需要提供一个牛工具,防止他们犯错误,你有你的管理思想,又有配套的牛B工具,开发平台可以达到事半功倍的效果,这就是你拿着菜刀去战斗与拿着机关枪去参加战斗的区别。
   你自己制作个菜刀很容易,但是制作一个机关枪就很难,但是你有机关枪去打仗,绝对是比拿菜刀的要厉害很多,有大炮更牛B,但是大炮并不是为个人战斗准备的,用处定位不容易,杀鸡嘛,顶多用牛刀就可以了。

    可能你会觉得你自己是很牛的,管理能力很强,你一个开发团队可以管理,但是同时有3-5个开发团队,有的又在异地开发某个大型管理类软件,那你就知道,你再厉害,也无分身术、而且别人也都很固执,根本不会按你的管理来,那就好提供个好用的工具,那就他们也喜欢用,你管理也方便了,他们自己也会用你的管理工具调试、测试,因为给他们也减轻的负担,不用自己人工配置、人工检查,全自动检查了,又不要钱,何乐而不为呢?当前前提是你的工具能减少工作量、不会增加负担,而且运行稳定,功能强大别人才容易接纳。

    权限及工作流程处理是管理类软件开发的核心基础组件、若这几个模块处理好了,会少浪费很多精力,节省很多开发成本,降低项目失败的风险也有关键性的作用。

   以上功能介绍是给开发人员针对的,当然客户是不懂这些细节的,我们不能依赖人的自觉性、也不能以来人的勤奋刻苦,我们要有我们自己的配套辅助工具才可以,就像软件工程理论一样,软件项目开发配套的小工具小发明也是非常关键的必杀技,还是那句俗话:磨刀不误砍柴工。

C:产品导读:
疯狂.NET架构通用权限后台管理工具演示版2.0下载
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 操作权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 角色权限
疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 数据集权限





C# ASP.NET 通用权限设计、通用权限管理、通用权限组件、单点登录、集中式权限管理、统一授权体系、分级管理分级授权


微信扫一扫加好友