背景

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. create user 'root'@'localhost' identified by 。。。

  2. 8、SpringMVC源码分析(3):分析ModelAndView的形成过程

    首先,我们还是从DispatcherServlet.doDispatch(HttpServletRequest request, HttpServletResponse response) throw ...

  3. Size Classes with Xcode 6

    转载自 http://www.cocoachina.com/ios/20141015/9919.html 总结:通过在Size Classes不同的模式下设置,可以实现不同设备在横屏.竖屏下UIVie ...

  4. uva 1642 Magical GCD

    很经典的题目,愣是没做出来.. 题意:给出一个序列,求一子序列,满足其GCD(子序列)* length(子序列)最大. 题解: 类似单调队列的思想,每次将前面所得的最大公约数与当前数进行GCD,若GC ...

  5. dom4j修改,获取,增加xml中某个元素的属性值

    XML文件: <?xml version="1.0" encoding="UTF-8"?> <vrvscript> <item I ...

  6. 移动APP服务端API设计应该考虑到的问题

    2014年,移动APP的热度丝毫没有减退,并没有像桌面软件被WEB网站那样所取代, 不但如此,越来越多的传统应用.网站也都开始制作自己的移动APP,也就是我们常说的IOS客户端.android客户端. ...

  7. The resource could not be loaded because the App Transport

    Xcode7 beta 网络请求报错:The resource could not be loaded because the App Transport Xcode7 beta 网络请求报错:The ...

  8. Java [Leetcode 160]Intersection of Two Linked Lists

    题目描述: Write a program to find the node at which the intersection of two singly linked lists begins. ...

  9. C++类的构造、拷贝构造、析构函数等

    1: 一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,如果你写 class A{}; 编译器处理后,就相当于: class A{ pub ...

  10. TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...