了解到一个普遍现象:各企业各职能部门在信息化系统和业务数据方面的需求越来越多。一直在做业务工作的同学,在对需求到底应该怎么实现出现了很多困惑。今天就想把我个人工作几年的一些方法分享给大家,希望能帮助各位伙伴。
先了解几个名词
这里介绍我以大白话的方式说明,这样应该更好理解。
自研:就是由公司开发团队提供一条龙软件或功能实现。这里面的开发团队主要角色包括项目经理、产品经理、架构师、UI设计师、前端开发、后端开发、测试工程师等。这里面说一下如果团队资源不够是可以进行人力资源采购的,就是大家经常听到的人力外包。一般人力外包的可以是前端开发、后端开发、测试;当然以项目为驱动的也会进行产品经理外包和UI设计师外包。但原则上项目经理和架构师是不外包的。
外采:就是买别的企业已有的技术软件或产品。这里面一般采购的形式是软件+服务费。如果涉及到私有化部署或在人家软件上做些定制开发。会涉及项目资源外采,项目资源外采和人力资源外采的区别主要在于项目经理属于哪一方,如果是甲方(出钱的)一般情况都是人力资源采购;反之是项目资源采购。不管哪一项项目经理都是对交付结果负责的。
二开:二开主要是指在买的别人家的软件或产品上进行代码开发。举个例子:在新买的黑色汽车上,贴上了一个粉色的车衣。
运维:一个系统使用期间,需要有人员一直保障系统能正常运行,并监测或接收问题,快速解决。举个例子:汽车买来了定期需要做保养和维修检修。一般情况企业都有专门的应用运维团队或自研的研发团队就把运维的工作包了;还有的是外采的系统如果确实有技术壁垒等要求的,也会通过支付供应商服务费购买运维服务。当然也有的企业把应用运维整体外包给第三方。
迭代:在正在使用的系统上进行功能的调优或增加。举个例子:在买的汽车上添加一个智能导航或者换个智能导航。
如何判断自研还是外采?
有个自查表供给大家使用
当然选择自研或外采是需要综合评估的,也会和底层技术是否成熟有较大的关系。对于市场上底层技术例如您公司要做企业内部工作审批流或工单系统,那么优先建议考虑采买工作流引擎平台,在成熟的流程引擎平台进行低代码开发。
自研的一般工作流程
step 1:输梳理业务要做的事情。说清楚当前业务现状,痛点,希望通过什么样的方式解决什么问题,来达到什么目的。
step2:梳理当前业务运行的工作流程。
step3:行政业务需求文档和业务老板核对。主要是为了确定是否可以做这个事儿。
step3:联系公司IT部门,同步需求,确定对接负责人(项目经理)、关键成员。
step4:根据研发项目团队的建议组织调研、访谈等工作。
step5:研发项目团队出方案设计(业务分析、项目目标、软件架构、关键流程原型设计、软件发布路线、预算、项目成员、保障机制等),并组织相关领导和干系人评审。
step6:进入软件详细设计(高保真原型、数据库设计、功能说明、项目计划等),并组织关键业务人员进行评审。
step7:研发团队开发实施
step8:组织关键业务人员进行UAT测试
step9:上线评审(测试质量、产品手册、上线计划、推广运营策略等)
……
特殊说一下,自研系统的开发和后续迭代一般比较难抓住资源的,一般企业信息部门会把大部分资源投入到关键业务系统上,所有项目都是需要整体排期。如果重要的且着急的项目一定要业务老板们推动,尽量提升自己的优先级顺序。
外采的一般工作流程
step1:输梳理业务要做的事情。说清楚当前业务现状,痛点,希望通过什么样的方式解决什么问题,来达到什么目的。
step2:企业调研及学习,并提出可借鉴点。
step3:选择供应商,沟通现有产品和其推荐的方案。这个过程强烈建议引入IT方面的专家。
step4:总结前三项,并提供厂商对比方案,可能花费的预算,工期等形成XXX系统方案,并组织相关领导和干系人评审。
step5:编写技术需求说明书(业务部分一般由业务项目牵头人编写,技术部分一般由IT专家编写)
step6:组织招投标,邀请三家以上厂商参与竞标。竞标前期建议企业提供poc测试支持、性能报告、产品白皮书。
step6:组织竞标会。
step7:中标后启动实施。
……
大体上流程很相似,但是外采的情况会比自研的方式更累。如果外采还涉及二次开发,那么也是需要提前梳理的。外采除了考虑产品部署、二次开发,还要考虑后续的运维和迭代。尽量提前约定收费细节。例如服务费、在发生开发的时候的收费模式或者定价结构。不能仅仅考虑项目的成本,还要考虑持续投入。