软件开发大致流程及时间周期

本文将粗略介绍软件开发大致流程及其时间周期

基本人员:项目经理、UI、web后端、web前端、android开发、iOS开发、测试、运维

  1. 项目经理:与客户沟通、理解需求、原型设计、进度控制、范围管理、成本管理、质量管理、风险管理、人力资源管理、采购管理。
  2. UI:风格的设计、输出整套高保真UI设计图。
  3. web后端:软件逻辑设计、输出API等。
  4. web前端:输出前端页面。
  5. android开发:android开发、上架。
  6. iOS开发:iOS开发、上架。
  7. 测试:测试计划编写、设计测试用例、编写测试报告、编写BUG报告单、跟踪BUG修复情况、还需要良好的沟通能力、以及各种测试阶段所使用的测试方法、单元测试、功能测试、集成测试、系统测试等等
  8. 运维:软件部署,调试,联调,测试

一、商务阶段

  1. 功能规划思维导图 产品经理跟甲方对接了解清楚整个项目需求,产出清晰明确的功能需求说明。
  2. 需求报价方案 产品经理跟客户确定好功能需求后,输出整个项目开发的报价方案。
  3. 技术开发合同 初步确认合作意向后,提供技术开发合同,如果乙方对合同协议会异议,双方协商修改。签好合同好,项目进入到设计开发阶段。
  4. 开发进度文档 签订合同后,甲方会根据总的开发周期,制订各个开发阶段的里程碑节点,并根据制订的开发计划,推进后续的整个设计开发过程。

二、设计阶段

  1. 原型设计稿 项目经理根据合同确认的功能需求,进行整个项目前端界面的原型设计,经过双方确认,定下最终的产品原型。
  2. 原型交互流程图 在原型设计稿的基础上,加上每个页面的跳转交互流程标识,以便能够清晰了了解各个页面间的跳转和交互流程。
  3. UI风格页 UI设计师会挑出几个主页面进行风格页的设计,一般会提供3-5个风格页的设计,确认整个UI的设计风格。
  4. UI高保真设计稿 风格确认后,UI设计师根据产品经理提供的产品原型图进行页面的设计,最终输出整套高保真UI设计图。

三、开发阶段

  1. 注册相关账号 开发过程中,需要注册相关的开发者账号, 包括部分但也不限于以下的开发者账号: a.苹果开发者账号 b.应用宝账号(各应用市场账号) c.微信公众号 d.支付账号 e.推送账号 f.阿里云账号 g.APP统计开发者账号 h.短信开发者账号 i.地图开发者账号
  2. 购买服务器 上线前半到一个月,需要购买云服务器(如阿里云服务器)。 根据项目预估的运营情况,如未来一段时间的注册用户数,日活用户数,用户增加预估,用户的并发访问情况等,确认服务器的采购配置。
  3. 注册域名,备案 如果项目需要分享到微信,或者有官方网站,则需要配备域名使用,需要提前购买好域名和服务器,并进行备案,备案一般需要(阿里云)7-10个工作日。
  4. 交付测试版本 完成项目的所有功能开发及内部测试后,将打包发布测试的版本给甲方进行反馈测试。期间,双方都需要配置相关的人员进行项目的测试反馈问题。在经过1-3周的测试与反馈后,最终版本功能达到稳定流畅的上线状态。
  5. 申请软著为发布到市场准备

四、项目上线

  1. 准备上架相关的资料 如发布市场的打包版本,应用说明描述,截图,部署服务器和录入正式的数据等工作;
  2. 部署正式服务器 将数据库,后台系统部署到正式的服务器上面,并录入正式的上线数据到系统的后台;
  3. 发布APP应用到市场 国内的应用一般是发布到苹果的APPSTORE(iOS版本)和腾讯的应用宝(安卓版本)。APPSTORE提交后一般需要10个工作日左右可以通过应用的审核并上架,应用宝一般当天提交APP,当天就可以通过应用的审核并上线
  4. 发布H5或小程序到微信公众号 如果是微信H5的网站,只需要将网站部署并挂到小程序的菜单上面; 如果是微信小程序,则需要把小程序发布提交给微信团队审核并上架;

五、运维阶段

  1. 免费运维阶段项目上线后,项目便正式进入免费运维的阶段(三个月不等)。期间,会解答甲方的咨询服务,指导甲方的软件使用等事项,以及程序Bug的修复、版本更新等内容。
  2. 交付项目资料免费运维期到后,项目运行基本达到稳定状态。会打包所有的项目资料交付给甲方,包括但不限于:a.前后端项目的所有最新源代码b.数据库设计文档c.API设计文档d.所有的开发者账号资料e.测试文档f.原型设计稿g.UI设计稿h.项目相关文档等资料
  3. 付费运维阶段后续如果甲方需要继续提供运维支持,需要签订运维合同。一般运维费用为项目总开发成本的10% ~ 20%,根据项目的用户数量,功能量级及运维工作量进行费用的评估。

开发周期预估:

以下为评估周期的大概思路, 在具体实施的时候,同一个项目,不同的目标,不同的执行人来操作最后的时间差别会很大。
比如在产品设计环节,照着某个产品来抄,那么产品和设计部分工作量会减少,在开发环节,如果用开源的框架或者开发者之前开发过类似的产品, 那么开发的时间也会大大缩短,如果采用敏捷开发的方式,时间预估按小时预估会更准确。如果团队里面有大牛级别人物,时间会减少成本也会增加。
遇到具体的项目,还需要具体分析。

  1. 需求梳理:7天,输出物为包含功能点,功能描述及优先级排序的需求文档;
  2. 产品设计:10天,输出物为流程图,产品原型和产品需求文档;
  3. UI设计:7天,输出物为UI设计图;
  4. 开发任务分解及排期:1天,输出物为甘特图;
  5. 开发:60天,包含客户端和服务端开发,客户端和服务端联调(客户端按照每天一个页面计算,服务端按每天一个功能点计算,因为客户端和服务端时间有重合端部分,所以算了60天)
  6. 试并修改bug:10天,输出物为最后可上线运行的产品。
  7. 提交各应用市场审核、上线 10天

ps:以上为粗略预估

admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: