一般的软件开发,从类型上看,可分为2种:
第一种: 外包软件开发
第二种: 自有产品研发
软件的研发流程,不管是大公司,还是小公司,核心流程基本一致,只是在流程的执行上会有侧重点,或者在某个流程进行拆分和细化。
核心流程如下:
软件需求分析:用来明确产品目标和用户需求。需求可来自客户(外包软件)、来自用户(自有产品)。其中客户/用户,根据不同类型又可细分为个人用户、企业用户等。这里面主要解决做什么的问题,配对的人员有项目经理 、 产品经理 或者更高一级的战略规划。
产品功能定义:用来明确功能规格和内容,通过对软件需求的分析,pm可以提取出需要落地的功能点,不一定非常细致,但是可通过这些功能来达到产品目标和满足用户需求,这个阶段主要是pm负责,同时会参考研发的一些建议。
软件原型设计:用来描述这个软件的样子和与用户交互的方式。是对产品功能点的一个细致定义,具体到每一个功能点的用户交互流程和使用路径。所达到的目标是软件可用和易用,这个阶段仍然是pm负责,可能包括交互设计师、UI设计师。
软件开发与测试:这里研发可以开始设计框架,同时如果有测试人员,可以开始设计测试用例。
软件试用与发布:通过小范围的试用或者灰度发布,可验证功能的完整性、稳定性,及时收集反馈,并进行优化。
软件上线:观察数据,并收集用户反馈和为下一版本改进提供依据。
以上6个流程,实际在执行的时候,根据不同的公司规模,可灵活调整,比如小公司,可能在需求分析、产品功能定义和软件原型上面,就统一归为需求分析,由项目经理全部搞定。而在一些大公司,在软件需求分析上面可能包括数据分析、用户调研等等,用于挖掘靠谱的用户需求,对于一些大型的功能,还包括市场调研等等,当然所投入的人力也是不小。
小公司的作战方法,不一定是正规军的方式,野战军有时候效率会更高,在一些未明确的功能上面,通过小成本的快速开发和改进,效果会更好。
领取专属 10元无门槛券
私享最新 技术干货