一张沉淀了九年的说明书,LeaRun技术创业指导篇
Posted zxc168
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一张沉淀了九年的说明书,LeaRun技术创业指导篇相关的知识,希望对你有一定的参考价值。
一张沉淀了九年的说明书,LeaRun技术创业指导篇
都说十年磨一剑,现在离十年,仅有咫尺之遥了。
记得当初因为工作的迷茫,才走上创业这条路的。既然是创业,就要选好发展方向,那年互联网异军突起,导致各大行业需要转型。所以很明确地做了管理类软件开发,但是做哪方面呢?这个过程是相当长且痛苦的,刚开始没有太在意自己最熟悉的行业,反而跑去琢磨教育类软件,养老院相关软件,诊所管理软件等。而且在每一个方向都琢磨了很长的时间,甚至都拿出了初步的方案。但是到实际操作时,发现没有相关行业的资深人员参与,做出来的东西根本没法用。
几个志同道合的人,经过无数次的讨论,最终确定了我们的发展方向:集中开发业务管理软件,协调办公软件。
系统的管理思路闭环由老领导凭借其几十年的管理经验提出,再经过我们不同知识背景人员的补充形成。经过可行性分析、管理思路完善之后,从大的框架到实现细节,历时几个月终于完善了。然后拿着方案跟业内的管理专家和企业高管沟通,所幸的是在沟通的过程中所有的人都很赞同我们的东西,觉得对企业的帮助应该非常大。
一.系统初步规划
按照我们的规划,系统起码应该有这几个功能:
1.能快速开发出各种漂亮的报表。这款软件主要是给企业使用的,数据的展示必须简洁美观。
2.即时通讯,方便管理层的命令下达。
3.工作流引擎,通用性强。
4.方便的数据导入导出功能。由于这套系统是一个跨业务平台,很多数据取之于不同的管理系统,有的来自ERP,有的来自财务软件,有的来自CRM等等,那么简单高效的数据接口是成功的关键。
5.严密、完善的权限安全控制体系模块。由于系统管理的数据是企业的核心机密,一旦泄漏给竞争对手,那将是毁灭性的,因此要从各个方面控制权限。我们规划至少应该从这几个方面控制:
1)服务器的硬件隔离。数据库及应用都在企业内部网,不考虑B/S架构,而且服务器的连接要加密,不能让管理员之外的人员知道。
2)系统登录使用动态口令。考虑给系统使用人员都配备动态口令牌,登录时除了需要输入静态密码外,还需输入动态口令牌中的动态口令。账户和口令牌一一对应,口令牌半分钟或一分钟变更一次口令。
3)系统登录与IP地址或MAC地址绑定。对于关键岗位人员,能登录本系统的IP地址或MAC地址必须是有限制的。
4)严密的授权体系。首先必须要有部门、角色、人员的三级授权体系。其次要能做到原子级授权,即各个功能的各项操作都要有权限控制。最后要有数据权限控制,不同的人打开相同的功能,其能看到的数据是不同的,有得多有的少。
6,快速开发。除了系统平台的功能外,大量的是业务实现功能,开发这些功能时要能快速实现,要是一个中等复杂的功能需要好几天的时间开发,那么等系统开发完,就好几年以后了。
按照这样的思路规划完系统后,我们突然发现,这对我们来说几乎是不可能实现的。像我这样的非专业开发人员(工作以后,很大一部分时间在做ERP实施,开发做的不是很多),能否将这些需求设计出来还是一问题,谈到开发出来简直是天方夜谈。自己开发不出来,是否可以考虑招人呢?也不行,手头的开发资金预算有限,没有办公场所,招了人去哪办公?又没有太多的精力管理开发人员?一系列的问题目前是没办法解决的。
唯一可行的还是硬着头皮自己开发,没招了。
二.开发平台选择
只能是购买一个现成的平台,在此基础上开发我们的系统。既然是购买平台,那就要慎之又慎,我们几个人都把身家性命、前途未来押在这上面了,不管哪个环节出问题,都将是致命的。出问题不仅仅是金钱的损失,原来的同事怎么看,丢不起人,三四十岁的人了,也输不起。处于这种考虑,详细讨论了好多次,最终形成了我们的需求。
1,平台必须要提供源码,不加密,开发的产品在销售上不能有任何约束,不用购买其任何授权。很鲜活的例子,有同事的公司曾经购买了别人的平台,开发时需要供应商授权(每个开发者都需要一个授权),每销售出一套产品之后还要分成。这不还是给别人打工吗?这种三毛、哪吒、金刚葫芦娃级的损己利人的事咱还是别干了吧。
2,系统稳定。一定要稳定,别让花费很大的精力去沟通、处理平台的BUG,光业务功能的实现已经够我喝一壶的了,再要是平台经不起折腾,出问题,再换平台,还是杀了我算了,人生已经浪费不起,30多岁了。
3,底层应用丰富。底层的服务或应用要完善,如果需要我自己从底层开始,开发一个平台应用模块,我没有精力,也不愿意在这上面消耗耗费时间,都是软件开发行业的过来人,都知道开发软件有多少说不出的辛苦、平常人无法理解的痛。有尽可能多的函数、类,只需要熟悉其调用方法,在开发新功能应该不是难事。这样不但用着爽,而且节约时间。
4,为了能长期使用,平台应该与业务是分离的。平台的修改或升级不能影响到我的业务模块。另一方面,由于开发周期紧张,如果除了开发业务,还要处理平台问题,一个是能力不够,另外时间、身体、精力方面都不允许。最好的模式应该是,平台的问题由平台开发者处理,我只需专注于处理业务,我也想有个正常人的生活,工作之余陪陪家人孩子,有个好身体,再活他500年。
5,有示例可以参考。不管是项目的示例还是功能的示例,我相信只要给我参考的示例,怎么着我也能模仿着做出自己的功能来,这么多年的开发工作经验,让我很坚信这一点。发明创造是难了一点儿,但是模仿的水平绝对是一流的。
6,完善的服务。不要是一把一清的只买了产品,在开发中是否能提供指导,以后能否提供产品升级,这也是非常关键的问题。这个年代,已经不缺好的产品了,缺的是完善的服务。很明显的例子,买车的时候,是不是都会考虑售后呢?车是每个家庭的大件物品,而这个平台是我们公司的核心产品,都选择好的服务,道理是一样的。
于是在将近一个多月的时间里,疯狂的上网查资料,找同学帮忙介绍,各种途径找适合我们的开发平台。由于自己熟悉的是JAVA开发,因此想找个成熟好用的JAVA平台,但是努力一番之后,查找无果。只好放弃这个思路,管他用什么开发的,只要是成熟的平台,开发语言现学就是了。
找到了不少平台,但是仔细琢磨之后,发现成体系的不多,能直接拿来做商业系统开发的,为数更少了。经过一段时间筛选,初步框定了几个平台,对着这些平台,我们几个做了详细分析,这些平台各有所长,很难取舍。怎么办呢,总不能都买吧。最后转换了下思路,重新审视我们自己的状况,我们几个组合后的长处是管理创新,能提出很多管理方面的思路,但是技术方面很薄弱,对平台的要求除了前面的基本需求之外,能快速开发出实用的业务功能才是我们最关注的。因为按照我们以往的工作方式,在软件选型时,吹嘘有多么先进的技术,多么花里胡哨的界面,我们根本就不关注,甚至是抵触的。挤掉这些水分,真正能帮企业解决管理问题的,少之又少。
反而是我们自己开发的,看起来异常丑陋的东西,很实用,也很能解决问题。就这个问题,我们专门做过分析,为什么拿着软件给客户演示的时候,他们会提一些界面、实现技术等一些莫名其妙的问题,我们认为原因有三方面。1,提这些问题的,很大一部分是信息部的人,懂一些技术,不太懂管理,那么为了体现自己的价值,除了提这些问题,还能提什么呢?2,如果使用者中有人提出这个不好用,那个难用之类的问题,那么你的这套系统肯定触动了他的利益,否则作为一个打工者,才不会在这上面费那么多心思(我不否定真有人花心思深入的考虑系统问题,但是这样的人很少,退一步说,既然他这么有心思,那么他肯定不会仅仅关注这些问题,我们有自信能在管理角度说服他)。
给客户讲解的时候,企业的高层很少提好不好用,界面是否漂亮,技术是否先进之类的问题,高层关注的是能不能提升管理,能不能解决我的问题,才不会去关注这些细枝末节的问题,本来就给他们工资了,管你怎么干只要给我出结果就行,每天的工作那么多,难道会去关注一个小办事员在处理数据的时候是否方便?简直是笑话。
按照这样的标准分析之后,有个叫力软敏捷开发框架的东西就冒出来了,系统的功能很符合我们的需求。
经过一周多的QQ、电话沟通,心中有谱了,这就是我们要找的实现业务系统开发的实实在在的基础模板,完全符合我们的需求,而且价格也在我们可接受的预算范围之内。于是很快的做了一个分析报告,给老领导汇报了,几乎没有任何争议,大家一致决定购买这个平台,最终我们购买了其企业旗舰版。
旗舰版的好处是有个长期稳定的售后服务,虽然也可以从其他平台手中拿到一些东西,但是学习曲线太陡,没有售后服务,没有正式授权。公司稳定良好的工作都要放弃了,甚至人生未来都赌上了,还是挑个省心、安心、靠谱的东西要紧。这是对未来5-10年,甚至是20年的长远规划的起步。
3.系统开发
进入了正式开发,力软指导了一个月时间之后,我在业务功能开发方面就没有问题了,而且在这一个月内,竟然开发出了大部分的业务功能,不到两个月,第一个版本的软件系统开发完成。虽然后期我们对系统的业务功能做了无数次的调整,而且有些很复杂的功能,但是系统自带了大量的组件,只要按照需求,东拼西凑,想要的功能基本都能开发出来。到后期熟练之后,业务功能的开发速度非常快,曾经一天能开发出7,8个功能。
4.系统展示
时至今日,软件已经开发完毕,业务功能基本按照我们的规划完成了开发,而且平台方面的各种功能也能按我们的预计实现。没有很高的技术含量,一起从实用触发,但是符合我们设想的实际流程,实际工作、管理需要。下面截图仅展示系统功能,由于涉及到商业方面的因素,只提供基础框架的图片。
5.开发总结
虽然创业中有各种各样的问题、困难、瓶颈需要处理,但由于我是负责技术的,大量的时间花在系统开发上,因此在这方面还是有点感触,写下来作为以后的参考。
1)老生常谈,开发之前需求一定要讨论得非常清楚。无数次,在讨论之后,感觉思路比较清晰了,就动手开发,结果往往由于细节所限,推倒重来,浪费了大量的精力。
2)虽然是单兵作战,在动手之前还是要做好各种设计,否则很可能由于思路不完善,导致大量的返工,吃一堑长一智。现在的做法是,在开发任何功能之前,都会先理清功能需求,功能界面和数据流,最后列出开发步骤,然后按步骤一步一步开发。
3)相关的文档一定要完善,比如设计文档,使用文档等。若是不做记录,过一段时间,连自己都不知道当时怎么考虑的了,当然代码也要写好注释。
不管怎么样,经过无数个日日夜夜的激情工作,系统开发出来了,真心感谢我们这个团队,面对问题时专心处理问题的态度,毫无保留的贡献自己的智慧,是一个志同道合的,实实在在做事的团队,各自不同专业累计的经验正好形成一个互补的团队,相信一定会成功的。
还得感谢这个开发平台,基础功能非常完善,底层应用也很全面,服务也相当到位,无论何时何地都能方便的联系到开发者本人。在我的开发过程中,力软能不厌其烦的指导我,通过电话、QQ、远程桌面等各种方式,帮我解决了很多问题。无论如何,能够顺利开发出我们的业务系统,很大一部分原因是,我不用担心权限控制,审批流等、消息提醒、基础数据管理等等平台底层的开发问题,所有的精力只放在了核心业务的开发上。
就写这么多吧,从给人打工到给自己干,感觉是个比较大的改变,因此啰啰嗦嗦写这么一堆,无他,纪念而已。
6.后记
总感觉意犹未尽,再多谈谈力软的这套框架,毕竟对我的帮助特别大,而且直到现在我们仍然认为这平台非常值,不管这句话在别人看来是多么的矫情,但是我真是想表达自己的感谢之情。
在开发我们系统的这段时间,曾经花了不少时间看底层源码,力软能坚持这么多年改进一个软件,坚持着把反馈的问题修正,再考虑兼容性,通用性,业务与系统底层的分离等等,还是挺不容易的。
目前来看,我的业务系统还是比较稳定成熟的,模仿力软的例子做出来的功能,规避了好多有可能出现的BUG(在看代码的时候感触特别大,有些我没想到的地方,他都有容错处理)。系统自带的权限等模块就更不用担心了,反正有问题找他处理就行了。
希望力软的路也能走得越宽,能得到更多人的理解与同情,都是追逐梦想的人,力软想开发通用的简易快速开发平台,我要做信息化传统行业的业务系统,都是你为我服务,我为你服务的事情。现在这年代的创业,光凭自己的力量从头做起,傻子才干的事,我们始终认为最经济有效的是途径是购买别人的组件,快速组合成自己的产品。
往深了说,还是因为东西好用,如果不好用,是忽悠人的东西,以我这性格,还真做不出这种事来,也没心思花好几天的时间扯这些闲淡。如果有跟我相似情况的同仁,建议还是多做分析参考,各种因素分析之后再做出自己的判断,毕竟鞋合不合脚,只有自己清楚。创业没那么简单,别一冲动给自己的将来埋下隐患,一定要冷静再冷静。
以上是关于一张沉淀了九年的说明书,LeaRun技术创业指导篇的主要内容,如果未能解决你的问题,请参考以下文章
从博士论文到被各大厂应用,Alluxio 如何走过 7 年创业路