[小溪畅流观点]软件定制开发不应该有按模块的报价方式

2020-04-18 10:34:37

    这两天在与新客户沟通时发现一个问题,客户要求出报价单,即客户想要开发的软件按照模块来报价。这种情况我相信很多同行都有遇到过,今天表达一下小溪畅流的观点。

    软件定制开发有按模块的开发方式但不应该有按模块的报价方式,因为软件开发是一个系统性的整体工作,不能拿出某个功能单独的评估开发周期和价格。

    软件定制开发

    软件定制开发是根据客户的需求,量身定制一系列符合客户实际应用的软件。这个关键词很容易理解,就想我们定制一套衣服一样,普通的服装设计师会把我们全身的尺寸量一遍,客户选择所用的材料,厉害一点的服装设计师还会根据客户的性格,喜好,从事的职业,出席的场合等等因素为客户提供整套的服务定制结局方案。软件定制开发也是这样,但是现实情况是很多不规范的软件公司没有能力站在客户的角度考虑软件的开发和最终的应用效果,从第一次接触客户开始,为了签下这一客户,就无限降低行业的原则。

    一套软件的定制开发,从最初的需求确认,到最终用户使用上需要做很多的工作。而编码,只是其中一小部分内容。在于客户沟通需求时,由于客户不专业,那么就应该花较多的时间让客户能尽量多的了解软件开发的专业性知识。

    分模块式的软件开发

    小溪畅流曾经参与开发过中国重汽旗下动力有限公司的生产执行系统MIS,这个系统仅仅是编码开发过程就耗费了20人的研发团队整整一年的时间。而为了研发团队的工作效率更高,我们采用了模块化的开发方式,即插件式软件。某个业务模块相对独立,注意是相对独立。比如:仓库管理模块。这个模块是我主导开发的,是最先进的JIT(Just In Time)无库存管理方式。这个模块与系统的整体框架约定好了通讯协议,用户权限处理、数据读取处理等规则,开发完成后,需要配置这个功能模块的相关参数到整个系统里,才有最终的应用效果。

软件开发流程

    客户绝大多数情况不专业,不了解软件系统的开发工作都有哪些,不了解软件的运行都需要哪些条件。很多客户简单的认为,软件开发就是把你们之前开发过的模块稍微一拼就能够出来一个新的软件。

    在软件报价评估需要的考虑的因素中确实有这个代码的复用率这个参数,但,绝不是直接拿来主义。

    首先不能复用的则是软件的UI,即软件的界面。任何一家软件公司不可能直接拿别人的UI给到新的客户,任何客户也不能接受使用别人家的软件UI。那么,就需要UI设计师根据客户的具体需求设计软件的UI。比如客户公司的LOGO,VI的色调,比如客户使用习惯等等因素。而软件的UI一换,前端的数据接口就需要重新来一遍。

    小溪畅流的长期合作伙伴济南公交集团,有一次与领导汇报升级计划,领导直接就说了,我以为换个样子就像换书皮一样简单呢!

    我想有这种想法的客户应该很多,因为客户不专业。

    第二,就是涉及到数据结构的调整。人家的产品包含10个属性,你们家的产品包含20个属性。那么数据结构必须要调整,数据结构一旦调整,所有的接口,业务规则处理就要重新开发一遍。

    所以说,软件定制开发代码的复用率极其有限。

    

    再说按模块报价,上面已经说过插件式开发模式,相对独立而不是绝对独立。而且任何软件都不是能够将模块独立出来的。我们举一个很简单的例子。比如,微信商城或者小程序商城中的购物车功能,我们不能把购物车挡车某个独立的模块来报价,将商品添加到购物车,然后结算,支付,是一个完成的业务流程。涉及到用户数据,商品数据,订单数据和支付数据。而其中的业务逻辑是整体存在的。

    

    再遇到有类似的客户,希望做好售前的沟通,尽量让客户理解,明白。软件定制开发是一个系统的工程,而不是在菜市场买棵大白菜那么简单。