背景
IT已经成为当代企业必不可少的竞争手段,从无到有到标配,可以说以后不懂IT的就是文盲这句一点也不过,而软件开发是个复杂工程,零零碎碎各种理论工具和技巧,一言难尽。
本文意在言简意赅,简述软件开发流程当中重要的环节,以此思路作为明灯,以更好地思考和完成工作。
开始
IT业务系统的开发(APP、网站,大中小型业务系统等等)生命周期大致可用一张图简单概括下:
无论那个环节都互相影响,产品和开发相对更紧密一些,运营相对独立,不断迭代产品直到产品周期终结
需求
产品是来解决问题的,所以做产品之前要做需求分析,需求分析影响产品的设计和开发,所以很重要,应该力求保证做该做的事。如下:
- 领导的愿景:领导想实现的产品;
- 用户的需求:源于广大用户的需求,如小米有了MIUI后,各种系统的改进和建议就上来了,汇聚成新功能和优化需求;
- 头脑风暴:几个人围在一起突发奇想(乔布斯和库克坐一起谈笑说做一部手机:于是有了"谈笑风(phone)生")
- 需求文档:通过最终分析论证形成文档(产品我想做这些东东,解决什么问题,但是只是记录愿景,具体细化在产品设计环境)
设计
根据需求文档定下来的需求设计产品的过程,并且循环迭代产品,直到产品生命周期终结,这个不但适用软件产品,其他产品也是适用的,如一个游戏APP的周期可能就1到2年时间,iphone一般是1年一型号),产品设计一般有如下步骤:
- 功能设计(功能模块,业务逻辑,流程图等)
- 原型设计(UI风格,基本界面元素,产出物:PSD文件等物料)
- 交互设计(控件样式,功能跳转,效果,产出物:交互UI图)
- 产品设计文档:以上产出物的汇总文档,与物料一同交由开发人员进行产品开发
设计必须考虑到每个细节:如界面表达,功能跳转,各种逻辑情况等
开发
根据设计文档实现产品功能,技术是复杂的,但是也是有条理的,可以按一下步骤循序渐进
- 读懂需求文档和产品设计文档(有问题可以修订下最终版)
- 确定技术要点(如各种实现框架,系统架构,各种指标,技术选型等等)
- 通用组件设计(如APP开发:UI(样式设定,基础控件等),框架(网络,工具库等),资源管理(字符,图片,声音))
- 功能开发(开发工具、技术运用,技巧等)
- 测试(单元测试,集成测试等)
- 上线 (跟踪反馈,需求完毕)
开发应尽量最大限度配合设计和需求,遇到不合理或者更好的实现应及时提出,避免走弯路
运营
推动产品的过程,如用户活跃度,体验满意度,盈利能力等,暂不详细讲述。
最后
- 项目管理(关键字:计划,甘特图,参与人天,里程碑,deadline,上线)
- 文档能力(一份言简意赅的清晰的文档能减少信息孤岛和沟通成本)