关于软件设计的心得:
之前做过一个投资管理系统
甲方负责的项目经理是公司的管理层,可以说一辈子都是在做公司的投资管理活动;对这一套流程和各方面的把控都非常了如指掌,用他自己的话来说:我其实自己脑子里面有一套系统的,只不过现在是结合贵公司的实施能力,把它具现出来了。
最后的结果是,系统按照预想的完整的投资管理流程,实现,对投资管理的事前事中事后都进行了管控,特别是事前和事中,进行了非常详细的管理,颗粒度也很细。但是由于客观的原因(软件过于复杂,使用者需要很大的学习成本;系统管理颗粒度过于明细,实际的管理过程缺乏的灵活性;管理水平没有达到要求),系统之后没有使用(后续还做了一套比较简单的,粗颗粒化的投资管理系统)
就单个项目而言,这个投资管理系统是失败的,绝对失败了,他连成本都没有回。
不过我现在聊的是她好的地方。
这个系统设计的真的很细,几乎把投资管理的全流程都考虑到了,同时也对控制住了各个环节。这样一个新业务系统的搭建,是需要非常多的时间和精力的。在这之后,我陆续接触到了几家做sass产品实施的公司,虽然各子业务不同,但是策略很相似,而且在获得了一定的市场。他们的实施难度不大,但是却获得了成功,让我开始对软件设计有了自己的思考。
这几家sass产品的实施,承载着的是业务,但是产品偏协同作业方向。给用户带来的是沟通协调的便利,业务其实很简单,或者说有意做的非常简单,考虑到影响工作效率最大的是沟通(srm和工程管理,参与方不是一个公司内部,而是供应链上的各方)。
这是Figme
一个在线设计的软件,点链接可以下载汉化版
这里整理一下软件设计的心得:
1、其实无论是本地化的实施,还是sass 产品,我们都需要有一个特别懂业务的项目经理或者是甲方负责人。他们对业务的理解是方方面面的。在了解自己要做什么系统之后,才去考虑怎么去组方案。目前很多sass 产品的小伙伴,方案和业务能力真的很弱。
2、在梳理了业务流程的基础上,我们要知道,信息化最简单,最原始的目的是为了提高相率,简单的线下业务提到线上,就是为了提高效率,协同也是。
所以有一个原则,设计是为了提高效率。涉及到人的工作,提高效率很重要的一点,就是灵活度。信息化有一个好处,可以让线上流程严格按照逻辑设置的流转。这也是一个不好的地方,他太笨了,不知变通。
其实之前碰到过很多次,在保留业务完善度和灵活性之间,去做取舍。
很多的项目经理或者产品经理,会说,我的业务非常完善,我的流程考虑了所有的情况,但是,实际是,这个业务流程特别复杂和僵硬。其实可以非常简单,让参与的双方沟通,给他们不同的选项,给他们不同选项的原因,就够了,复杂的流程,得简单化。
我们不是做数学题,是为了提高效率 。
3、最近学习新的业务时候,发现工程管理的内容,要复杂真的很复杂(可以看一下下面的流程图)。
如果要按照之前做投资管理的方式,对他做事前事中事后的管理,这个不工程量太大了,而且也不会适合每个工程项目。
我能预想的是和如果按照投资管理一样去做,也会像投资管理一样,碰到相同的“客观问题”。
目前这家公司的做法(其实产品真的一言难尽)有一个可取之处,就是他们业务很简单,非常简单。方向主要集中在app端的操作(目前操作和界面都需要简化,很多操作和界面真的不人性化)。但是这些简单的操作确实可以复制到整个工程管理流程中。
总结一下任务:初始化,任务定义,然后是用户使用。
使用的方式再说一遍,就是协同,各方按照简单的业务先后,在系统中协同,保证业务流程进行下去,也给了各方很大的操作空间,我觉得这个是好的想法,也是软件设计的可取之处,软件,就应该简单
总结:设计是要在日常作业与设计中慢慢积累的经验与审美,在完成老师布置的作业外还要自己花时间去练习提升自己。