奥卡姆剃刀原则在ERP项目的应用
一向崇信“奥卡姆剃刀原则”,如非必要,绝不新增。
在我所实施的项目中,自定义字段、自定义报表非常少。很极端的一个例子是,曾经有一家工厂,生产打印机的部件,产品百分之百外销。
在项目实施完成,成功上线后,我发现整个系统中的自定义的查询报表不超过5张,自定义字段不超过10个,格式化搜索不超过5个……
但实施的项目,又可以说是非常复杂。还以上面那家工厂为例,虽然打开他们的系统,你会为它的简单而大吃一惊,但如果真的
按照业务蓝图所规定的流程实际操作一次,你又会很头痛它的复杂。
只要一个不小心,一个输入错误,或者想偷偷懒绕过某张基础单据、绕过某个需要预先定义的设置项,系统都不会允许你保存。
要走通我的流程,估计得花很长的时间吃透我业务蓝图上规定的流程逻辑、单据的流转逻辑,你才可能很顺利地一次性操作成功。
当然,这对真正的用户来说不存在问题,他只要完全按日常的业务去操作,没有犯错,那系统会很乐意接受他的数据。
所以,其实并不是方案简单,而是习惯把复杂的逻辑藏在背后,用户看到的东西越简单明了越好,但系统中的逻辑一定要非常精细、严谨,经得起错误操作和新手操作的考验。
把一些复杂的事情,花一点时间封装起来,让用户也好,顾问也好,都能简单地应用,这就是在这篇文档里所描述的“方案”的概念。
不断积累可移植移强、通用性强的方案,这就是我追求的目标和我一贯的做事方法。也是为什么几年前要花50个人天去做的项目,现在也许只需要30个人天的原因。
做任何事情,都需要有自己的积累。这就好比走路一样,不喜欢走同一条路,同样我也不乐意换一个项目就得重新去做一个方案,或重新去写一段SQL代码,或者重新去开发一个报表、加一个字段……
如果有一个很特殊的需求,我们只需要从之前的通用方案中随手拈取一个,花几秒钟的时间简单改一改配置,就能放到新的数据库中,那会有更多的精力去关注如何达成项目的目标,而不会为软件的功能限制了你的拳脚而苦恼。所以,需要思考的是:设计任何方案,都不应只满足于当前的客户和他当前的需求,而是要考虑这个方案是否可以扩展它的健壮性,让它能尽量通用,尽量提高可移植性,尽量能做一个简单的勾选和配置,就能满足下一个客户的不同需求?只有这样不断积累自己的方案,才能越做越轻松,越玩越能感觉到ERP的无穷乐趣。
一个项目实施如何才能算完美,什么才算是实施能达到最好的目标?我经常思考这个问题,其实并不认为一个方案有多么出乎意料,或者有多么让人赞赏的巧妙思路,或者是否能完全涵盖客户的所有需求,甚至有多么高的技术含量这些东西是一个完美项目的判断标准。一个项目成功的关键只有简单的两点:
- 达到管理提升的目标。那么如何才算是管理提升了呢?从中小企业定位来看,它能给企业带来的最大提升,就是将先进的管理理念通过顾问设计的管理流程固化和推广,让成长型的中小企业摆脱作坊式管理的桎棝,获得高速成长的助力。当然这是理论化的说法,如果我们把这个概念说得通俗一点,就是通过上ERP系统,老板可以制定一个游戏规则,然后用ERP这个工具控制住关键点,不按这个规则走就走不通。然后老板可以带着小秘出去晃悠半年回来,发现他的企业还是规规矩矩按着这个游戏规则在运作,不需要他去盯着,ERP这个工具就帮他达成他想要怎么管理企业的思路了,这就是ERP能给企业带来的管理提升!
- 项目实施完成后,客户能自行维护。这也是评价一个项目实施成功的关键点。如果项目实施完成,顾问离场几年后,客户还不断为添加过账期间、为某个新业务要改变某个设置,或者为不理解某个单据、某个报表的数字而头痛,那么顾问也烦,客户也对这个系统心里也没底。所以在项目实施过程中,必需注意培养客户成长起来,永远不要害怕客户知道得比你多,相反,他知道和了解得越多,对这个系统也就会更有信心,同时对你的难点也会体谅得越多,不会再无休止地给你出难题。
所以,在项目实施中,不会太多关注操作人员的利益,会更多关注流程是否会被操作人员绕过去,会关注是否某个流程的关键点会失去监控,会为那些依赖于操作人员的“自觉性”或者过于依赖操作人员的素质才能干好的事情而难受,在设计的流程中,往往更多会体现部门间的互相牵制,而不会去在意操作的快捷和便利。所设计的外协加工流程,需要横跨采购、计划、仓库、财务部门共同协作才能完成,会禁止用户直接用MRP的结果生成采购和生产订单,甚至我还会禁止销售订单直接生成采购订单。如果只能选择其一,那会选择让系统去检查必填项,而不会指望一个自动刷新的格式化搜索去减轻输入工作量。我相信站在老板的角度,他也会更关注控制而非便捷。毕竟请个文员的成本,远不如流程失控带来的隐性损失大。
因此大家在下面的方案中,其实可以看到,大多数的方案都是偏向于逻辑的控制,而非减轻操作人员的负担。目标始终在于把ERP做成老板的工具,而不是操作人员的OA工具!
在每个项目中,为了保证我的流程有效,控制点都有将近上百个。或许有人会怀疑这会影响系统的运行效率。我不想在这里阐述这个担心是多余的,只想说明一点,只要目标是正确的,那我们付出多大的代价都可以接受,并且“影响效率”的事还可以通过科学的代码编写来很好地规避。所以当项目实施上线后,不用担心脱离我的指导,系统会因为错误操作而带来致命和不可挽回的影响。我会非常放心地放手让客户的系统管理员去接手项目,我宁可不赚客户的维护工单,宁可远程指导,也逼着系统管理员迅速成长起来,能够自行维护他的(而不是我的)系统。
基于这种风格,在项目实施中和系统上线后,很多时候的表现可以称得上是“残酷”和“无情”。不会让操作用户直接找我,有事情一定要汇报给系统管理员,只会回答系统管理员提出的问题。而在一个项目实施结束后,惊讶地发现,我几乎都叫不出某些操作人员的名字,只知道这张脸孔是哪个部门的!而系统管理员在一年以后,成长为一个合格的顾问,自己的职业生涯也拓宽后,在他心里,他不会后悔曾经承受的压力和付出的汗水,他对你也会有那么一点点的感激之情!
要做到这点,其实不难,只要在上线后,你足够放心地放手就行!
而你放手的资本,就是你在你的方案中,已经尽可能地把所有的意外情况考虑进去,杜绝了所有难以回滚的灾难性操作错误,你的方案容错性已经最大程度得到扩展。这就是你最大的资本!
所以,大家在这里阅读这些方案时,稍有一点可供分享的,不是ADDON,不是技术,也不是多么巧妙的SQL语句,而是设计和思考这些方案的思路,以及期望这些方案能达到的目标,这才是希望与大家一起共勉的!
奥卡姆剃刀原则在ERP项目的应用的更多相关文章
- 如何用ABP框架快速完成项目(7) - 用ABP一个人快速完成项目(3) - 通过微服务模式而不是盖楼式来避免难度升级和奥卡姆剃刀原理
这节文章十分重要!十分重要!十分重要! 很多同学在使用ABP的过程中遇到很多问题, 花费了很多时间和精力都还无法解决, 就是卡在这节文章这里. Talk is cheap, just show ...
- 分享学习——ERP项目管理经验
为什么在实施过程中有的项目就能做的非常好,有的项目应用效果就非常差?原因在哪里?下面本人就从下面几个方面进行分析: 1.什么是项目? 2.在ERP软件行业项目应该怎么做? 3.为什么有一些项目会失败, ...
- Okam(奥卡姆):小程序开发框架
Okam(奥卡姆):小程序开发框架 Okam 是什么 `Okam` 一个面向小程序开发的开发框架,开发体验类 `Vue`.详情 Okam 对各小程序的支持情况 支持 百度小程序 支持 微信小程序 支持 ...
- 企业应用开发模式 ERP项目中应用到的技术和工具
一.基础技术选型 C# .NET 3.5/4.0 这两个版本的.NET已经相当方便(Linq, Lambda,Parallel),语法简洁,配合WCF和WF两项技术,可以满足快速开发,维护方便的目标 ...
- 一个ERP项目实施工程师的若干体会
本人在多年的工作中,参与了ERP的研发和实施,对ERP有较深的认识.在这里,根据自已的实施过程中的一些经历,把自已在实践中的一些体会贡献出来和大家共享,由于时间和精力所限,内容难免有不当之处,挂一漏万 ...
- 选错实施顾问公司 ERP项目九死一生
今天接到一个朋友的电话,他是一家企业老总.这位老总感到非常头疼的是他的企业选择了一款国际上名气很大的ERP软件,但实施效果却强差人意.他的疑问是"不是说只要选对了ERP产品,谁实施都能成功吗 ...
- KB奇遇记(6):搞笑的ERP项目团队
早在我们来之前,KB公司这边就已经组建了ERP项目组了,当时IT就只有一个人,属网管出身.而关键用户分两种类型:专职关键用户和兼职关键用户.专职关键用户组织结构上已经调动到信息部,常驻在项目组里工作, ...
- ERP项目案例:澳科利辊业科技有限公司
企业简介: 上海澳科利公司成立于1995年,在主要股东LASERLIFE的支持下,创始人归霆先生带领他的精英团队--一支陶瓷网纹辊专业制造队伍和资深专业的柔版印刷服务机构,致力于发展中国包装印刷业,服 ...
- 我人生做过的第一个信息化项目--TIPTOP 5.0 ERP项目
我人生做过的第一个信息化项目--TIPTOP 5.0 ERP项目 2008年8月毕业不久,我参与了我人生的第一个信息化项目:TIPTOP 5.0 ERP项目.
随机推荐
- Core + Vue 后台管理基础框架7——APM
1.前言 APM,又称应用性能统计,主要用来跟踪请求调用链,每个环节调用耗时,为我们诊断系统性能.定位系统问题提供了极大便利.本系统采用的是Elastic Stack体系中的APM,主要是之前部门搞P ...
- 【Weiss】【第04章】AVL树例程
普通的二叉搜索树可能会由于数据不平均.删除产生高度差等原因,使树倾向于不平衡生长,导致操作慢于O(NlogN). 为应对此现象,将搜索.删除.插入的最坏时间也控制在O(NlogN)上,产生了平衡二叉树 ...
- 蓝桥杯vip题阶乘计算
蓝桥杯vip题阶乘计算 详细题目 输入一个正整数n,输出n!的值. 其中n!=123*-*n. 算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法.使用一个数组A来表示一个 ...
- JDK14的新特性-Switch新功能
2020年3月17日,Oracle正式发布了JDK14版本,共新增了16项新特性 本文重点写一下关于switch的新功能: switch 表达式扩展了 switch 语句,使其不仅可以作为语句(sta ...
- 欢乐水杯(happy glass)中流体的一种实现!图文视频讲解 ! Cocos Creator!
使用cocos creator v2.2.2 实现流体效果 ! 图文+视频讲解! 效果预览 实现原理 整体思路是参考论坛中的一个帖子 这款游戏中水的粘连效果在Construct3中利用图层很容易实现, ...
- python浅学【网络服务中间件】之Celery
一.关于Celery: 什么是任务队列: 任务队列一般用于线程或计算机之间分配工作的一种机制. 任务队列的输入是一个称为任务的工作单元,有专门的工作进行不断的监视任务队列,进行执行新的任务工作. 什么 ...
- SqlBulkCopy批量插入数据 显示 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 smalldatetime。错误
因为需要大量插入数据,linq ef无法达到速度的要求,因此把模型转换成SQL ,使用SqlBulkCopy快速插入.但是去提示 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 s ...
- 配置ssh免密登录遇到的问题——使用VMware多虚拟机搭建Hadoop集群
搭建环境: 虚拟机 VMware12Pro 操作系统 centos6.8 hadoop 1.2.1 1.导入镜像文件,添加java环境 1.查看当前系统中安装的java,ls ...
- POJ - 1276 二进制优化多重背包为01背包
题意:直接说数据,735是目标值,然后3是后面有三种钱币,四张125的,六张五块的和三张350的. 思路:能够轻易的看出这是一个多重背包问题,735是背包的容量,那些钱币是物品,而且有一定的数量,是多 ...
- Hive学习笔记七
目录 函数 一.系统自带函数 二.自定义函数 三.自定义UDF函数开发案例 压缩和存储 一.Hadoop源码编译支持Snappy压缩 1.资源准备 2.jar包安装 3.编译源码 二.Hadoop压缩 ...