背景

IT已经成为当代企业必不可少的竞争手段,从无到有到标配,可以说以后不懂IT的就是文盲这句一点也不过,而软件开发是个复杂工程,零零碎碎各种理论工具和技巧,一言难尽。
本文意在言简意赅,简述软件开发流程当中重要的环节,以此思路作为明灯,以更好地思考和完成工作。
 

开始

IT业务系统的开发(APP、网站,大中小型业务系统等等)生命周期大致可用一张图简单概括下:

无论那个环节都互相影响,产品和开发相对更紧密一些,运营相对独立,不断迭代产品直到产品周期终结

需求

产品是来解决问题的,所以做产品之前要做需求分析,需求分析影响产品的设计和开发,所以很重要,应该力求保证做该做的事。如下:

  • 领导的愿景:领导想实现的产品;
  • 用户的需求:源于广大用户的需求,如小米有了MIUI后,各种系统的改进和建议就上来了,汇聚成新功能和优化需求;
  • 头脑风暴:几个人围在一起突发奇想(乔布斯和库克坐一起谈笑说做一部手机:于是有了"谈笑风(phone)生")
  • 需求文档:通过最终分析论证形成文档(产品我想做这些东东,解决什么问题,但是只是记录愿景,具体细化在产品设计环境)

设计

  根据需求文档定下来的需求设计产品的过程,并且循环迭代产品,直到产品生命周期终结,这个不但适用软件产品,其他产品也是适用的,如一个游戏APP的周期可能就1到2年时间,iphone一般是1年一型号),产品设计一般有如下步骤:

  • 功能设计(功能模块,业务逻辑,流程图等)
  • 原型设计(UI风格,基本界面元素,产出物:PSD文件等物料)
  • 交互设计(控件样式,功能跳转,效果,产出物:交互UI图)
  • 产品设计文档:以上产出物的汇总文档,与物料一同交由开发人员进行产品开发

设计必须考虑到每个细节:如界面表达,功能跳转,各种逻辑情况等

开发

  根据设计文档实现产品功能,技术是复杂的,但是也是有条理的,可以按一下步骤循序渐进

  • 读懂需求文档和产品设计文档(有问题可以修订下最终版)
  • 确定技术要点(如各种实现框架,系统架构,各种指标,技术选型等等)
  • 通用组件设计(如APP开发:UI(样式设定,基础控件等),框架(网络,工具库等),资源管理(字符,图片,声音))
  • 功能开发(开发工具、技术运用,技巧等)
  • 测试(单元测试,集成测试等)
  • 上线 (跟踪反馈,需求完毕)

开发应尽量最大限度配合设计和需求,遇到不合理或者更好的实现应及时提出,避免走弯路

运营

推动产品的过程,如用户活跃度,体验满意度,盈利能力等,暂不详细讲述。

最后

  • 项目管理(关键字:计划,甘特图,参与人天,里程碑,deadline,上线)
  • 文档能力(一份言简意赅的清晰的文档能减少信息孤岛和沟通成本)

软件开发杂谈之从需求到上线---valen的更多相关文章

  1. Atitit.软件开发的非功能性需求attilax 总结

    Atitit.软件开发的非功能性需求attilax 总结 1. 运行环境约束:用户对软件系统运行环境的要求. 1 2. 兼容性 2 3.   7.6 数据库 database (imp by ati) ...

  2. Atitit.软件开发的非功能性需求attilax 总结At

    Atitit.软件开发的非功能性需求attilax 总结 1. 运行环境约束:用户对软件系统运行环境的要求. 1 2. 兼容性 2 3.   7.6 数据库 database (imp by ati) ...

  3. APICloud:轻松6步完成App软件开发

    现如今,谁不知道App绝对就是OUT,谁不用App简直没法过日子!但是说到App软件开发,不懂编程,不懂技术的人就一脸懵圈.在门外汉来看,App软件开发是一件非常困难的事情,然而APICloud却说, ...

  4. App软件开发的完整在线流程(一看就懂)

    App软件开发其实并不复杂,完整的在线App开发不过9个步骤,一看就明白到底是怎么回事. 第一步:需求评估 在App项目正式启动前,客户应该对自己的需求进行评估,确认项目的开发周期和成本.登录APIC ...

  5. 上海洋码头(www.ymatou.com)急招技术人才(职位:互联网软件开发工程师,.NET网站架构师,Web前端开发工程师,高级测试工程师,产品经理)

    对公司招聘职位有兴趣的童鞋可以把简历发送到zhangzhiqiang@ymatou.com,我们HR会快速给你答复. 互联网软件开发工程师 岗位职责: 1.参与洋码头各个平台(www.ymatou.c ...

  6. Day4 - Python基础4 迭代器、装饰器、软件开发规范

    Python之路,Day4 - Python基础4 (new版)   本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...

  7. java游戏开发杂谈 - 实现游戏主菜单

    经常玩游戏的同学,大家都知道,游戏都会有个主菜单,里面有多个菜单选项:开始游戏.游戏设置.关于游戏.退出游戏等等,这个菜单是怎么实现的呢. 有一定桌面软件开发基础的同学可能会想到,用JButton组件 ...

  8. Python基础4 迭代器、装饰器、软件开发规范

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需 ...

  9. KVM&Libvirt基本概念及开发杂谈

    导读 大家好,本次肖力分享的主题是KVM&Libvirt基本概念及开发杂谈,内容有些凌乱松散,主要基于自己早期整理的笔记内容和实践感悟,有些内容难免有失偏颇,望见谅.前面先介绍下需要了解的基本 ...

随机推荐

  1. C++:成员运算符重载函数和友元运算符重载函数的比较

    5.2.4 成员运算符重载函数和友元运算符重载函数的比较 (1)对双目运算符而言,成员运算符重载函数参数表中含有一个参数,而友元运算符重载函数参数表中有两个参数:对于单目运算符而言,成员运算符重载函数 ...

  2. HDU5099——Comparison of Android versions(简单题)(2014上海邀请赛重现)

    Comparison of Android versionsProblem DescriptionAs an Android developer, itˇs really not easy to fi ...

  3. SELinux开启与关闭

    SELinux是「Security-Enhanced Linux」的简称,是美国国家安全局「NSA=The National Security Agency」 和SCC(Secure Computin ...

  4. Django admin的一些有用定制

    Model实例,myapp/models.py: from django.db import models class Blog(models.Model): name = models.CharFi ...

  5. VB 语言学习笔记.

    暂时用到,学习学习. 变量声明 Dim 变量名 as 数据类型类型 Set 实例 = new 类名 自定义数据类型 Type 数据类型标识符 域名 As 数据类型; 域名 As 数据类型; 域名 As ...

  6. LRU缓存算法

    http://blog.csdn.net/beiyeqingteng/article/details/7010411 http://blog.csdn.net/wzy_1988/article/det ...

  7. [POJ1236]Network of Schools(并查集+floyd,伪强连通分量)

    题目链接:http://poj.org/problem?id=1236 这题本来是个强连通分量板子题的,然而弱很久不写tarjan所以生疏了一下,又看这数据范围觉得缩点这个事情可以用点到点之间的距离来 ...

  8. bzoj2085

    首先看到k的范围就该知道这题不是倍增就是矩乘 首先肯定要求出任意一对串(a,b) a的后缀与b的前缀相同的最长长度是多少 考虑到kmp求出的失配指针是一个串最长后缀和前缀相等的长度 这里多个串我们只要 ...

  9. C#基本知识点-Readonly和Const的区别

    什么是静态常量(Const)和动态常量(Readonly)   先解释下什么是静态常量(Const)以及什么是动态常量(Readonly). 静态常量(Const)是指编译器在编译时候会对常量进行解析 ...

  10. oracle 11g rac 无法自动启动

    如果以上的操作依然不能使数据库资源自动启动,那么参考下面这篇文章修改资源AUTO_START属性. 查看资源状态: crsctl status resource 资源       -p     crs ...