中国特色管理类软件项目开发之通用权限必杀技 -- 权限自由配置设定、实现智能化自动检测校验
2009-09-24 20:39 通用C#系统架构 阅读(4731) 评论(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前台调用源码样例程序源码下载之 --- 数据集权限
几年前参与过日本大型软件外包项目,一个大阪大学的附属医院为了做一套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前台调用源码样例程序源码下载之 --- 数据集权限
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。