我有个老板朋友,一点编程技术都不懂,但是决定自研软件,弯路走了不少,他跟我说,他们公司研发换了好几波了,每波研发留下来的代码他都不敢用,招到新的研发以后,他会把之前研发开发的代码直接扔掉,重新开发!听他这么说,我皱起了眉头,要知道,我跟这个软件公司老板已经认识了一年多了,照他这么说的话,他起码已经扔了好几个版本的代码了,具体是怎么回事呢?

打开网易新闻 查看精彩图片

这个公司的老板本身不是做软件开发的,他是专门做电商ERP的,在此之前,他考察了很多电商ERP软件,都觉得不合适,包括他现在自己正在用的那个电商ERP软件,最后决定自己开发一套,完全按照自己的想法来,自己用,如果开发出来的东西好用的话,未来再做商业化。

扔代码

他扔代码并不是没底气的,按照他的话说,他开发不开发其实都不影响公司运营,只是不想受制于人。所以,软件开发并不着急,如果研发人员不稳定或者不靠谱,他宁愿扔掉之前的研发写的代码,

他公司已经来了几波研发了,因此,代码也扔了好几套了。

之所以代码要扔,是因为之前招聘的研发都不怎么靠谱,当然,这只是他一面之词,我这里不做评价,只知道之前的研发都是自己主动离职的。

这个老板不懂编程,他认为前面人开发的东西不一定适合他后面招聘的人,所以为了让后面招聘过来的人能够按照自己的想法开发软件,所以就把之前人写的代码给扔掉了,当然,这也需要征得后面招聘人的同意。可以我对程序员的了解,大部分程序员是很很乐意重新开发的!

他这么做虽然很浪费,但是这种做法我是喜欢的,但也不是盲目喜欢,也是有原因的。

因为前面几波研发的任职时间都不长,基本上都在一两个月左右。

电商ERP软件开发周期实际上是很长的,一两个月时间估计连开发基础框架都不够。因为老板不懂编程,因此框架搭得怎么样,后面招聘进来的人能不能适应前面人开发的框架都是未知数。所以,从头再来对于后面招聘进来的研发是比较友好的。

现在,他招聘的研发已经任职半年多了,总算稳定了下来,他悬着的心也放了下来。

但是,聊着聊着,我发现他在自研软件这个事情上,实际上踩了很多坑,尤其是当我看了下他们已经研发一半的软件框架后,我发现了一个大坑!

软件无拓展性

这个老板跟我说,目前他们研发的软件只是自用,所以对于页面排版没什么要求,但是未来做商业化版本,他准备让下面研发人员好好捯饬捯饬下软件前端页面。言下之意,他觉得目前的前端页面太丑了!

他们公司的源码我是看过的,我听他这么一说不由得开始了担忧。

于是我问他,未来的商业化版本,他是想纯粹得换个页面还是想换前端框架。

他不懂我什么意思,于是我就跟他说,前端其实只是软件的展示部分,可以随意改的,甚至是把用C#写的前端页面改成Java写的、Vue写的都没问题。

他点点头,说就是这个意思!

结果我深吸了一口气跟他说:“你们公司现在开发的软件未来可没什么拓展性啊!”

老板眉头一皱,问我何意!

其实是这样的,他们公司目前开发的电商ERP软件肯定是能用的,但是内部用是没有什么问题,可是未来想换个前端,比如说把桌面端改成Web端,比如说现在前端是用C#的WinForm写的,未来改成Web端,前端是Vue写的,那么可能整个系统要重新研发!

我这么一说,老板立马紧张起来了,由于不懂技术,所以让我给他讲明白些。

简单得说,他们公司的软件就没有做成前后端分离或者客户端加服务的那种模式,所有功能都是写在一起的,唯一可分离的,其实就是数据库!

几乎所有商业化的软件都会做成C/S或者B/S模式,即客户端加服务端的这种设计,目前比较流行的软件设计方式就是后台统一WebApi接口,不管前端是用什么写的,只需要对接WebApi接口即可。传统一点的,可能就做成服务但无论如何都离不开Client+Service的这种模式。

但这个老板公司的软件,顶多算单机软件!因为它压根就没有服务端!

说了半天,老板也没说明白,还跟我说,他给研发部门买了服务器!

我跟他说,有服务器不代表就有服务端,服务器目前他们是用来放数据库的。

我说了半天,老板也没明白我说的意思,最后我放弃了!

但是,我知道,这个老板未来在软件商业化上面肯定会踩到今天他们研发留下的坑!

我能想到的,就是所有东西都得推倒重来,除了数据库不用重新设计,其他的可能需要再按照客户端加服务端的模式再开发一遍!

结语

我最后跟他说的话就是,让他专门招一个既懂技术他又信任的人来管理研发团队,目前来看,他现在公司研发团队里面的人肯定是不合格的!

但是,因为老板不懂技术,即使不合格,他也不会知道,他只知道,软件能用,那就说明开发人员的能力是没有问题的,其实这个认知是很有问题的!

其实,很多自己组建研发团队的老板都会因为不懂技术而踩很多坑,比如说研发工资定得过高、不设研发经理,自己掌握研发进度等,这里文字有限,就不多说了,像这个老板踩得坑就很典型了!