精华内容
下载资源
问答
  • 开发流程
    万次阅读
    2020-04-11 14:02:34

    软件开发流程规范

    第一版
    作者:Charles
    时间:2019-05-16

    第一章、目的和作用

        为了规范互联网软件产品开发项目管理过程,指导开展项目研发、管理等活动,缩短开发周期,提高软件开发质量,降低开发成本,提高开发效率和效益,制定软件开发流程管理规范。

        本规范的作用范围为互联网软件产品开发立项至结项管理过程,其作用如下:

    1. 对项目经理开展产品规划及设计活动以及项目管理手段和应遵循的开发流程提供了指导。
    2. 对项目团队的日常管理活动及内容进行了指导。

    第二章、总则

        为保证日常工作正常有序的进行,让开发中各个环节更紧凑,更可控,需要尽可能实现项目管理的正规化,工作过程的流程化,以便提高软件质量,按期交付,软件开发必须满足以下原则和流程:

    1. 软件开发总体遵循项目管理和软件工程的基本原则。
    2. 项目管理涉及项目立项、项目计划和监控、配置管理。
    3. 软件工程涉及需求分析、系统设计、软件实现、系统测试、用户测试、试运行、系统验收、系统上线和数据迁移、产品维护。

    第三章、工作流程和阶段性成果

    根据软件工程的过程,制定以下工作流程,并规定了各个重要环节需要提交的交付物。各阶段需提交的文档:

    1. 立项:项目申请表,软件需求报告或设计方案。
    2. 需求分析:项目研发主计划、需求规格说明书。
    3. 总体设计:概要设计说明书或功能模块描述。
    4. 详细设计:详细设计说明书,包括软件接口说明、单元测试计划。
    5. 软件实现:软件功能说明、源代码说明或者注释。
    6. 产品测试:测试报告。
    7. 产品发布:产品说明书、使用手册。
    8. 项目总结:提交客户方的项目总结和公司项目汇报的PPT。

    第三章、工作流程和阶段性成果

    软件过程成果表:

    阶段形成文档职责及文档成果描述负责人涉及范围备注
    需求阶段 项目立项报告(Word)明确甲乙双方责任及义务,需双方签字确认项目经理验收报告明确甲乙双方责任及义务,需双方签字确认
    业务需求说明书(Word)需求定义,阐述业务范围及内容,开发组负责制定最优技术设计方案项目经理/分析员验收报告
    项目开发计划(Project)用户、领导、项目组都了解项目进度项目经理验收报告
    设计阶段 业务流程总体设计书、详细设计说明书(Word/Visio) 项目组成员分配任务,并召开讨论会议,讨论项目的技术架构和可能存在的技术难点,梳理业务流程,统一开发规则和风格等 项目经理/分析员 验收报告 大部分分析设计,部分实施编程及测试,开始考虑部署 数据库关系设计图、流程图(PowerDesigner) 便于项目开发 分析员 验收报告 任务分配文档(Word) 明确每个组员的开发任务及职责 项目经理 过程报告 问题说明报告(Word) 让用户、领导及组员及时了解和发现问题 项目经理 过程报告 业务变更文档(Word) 记录开发过程中用户提出的业务需求变更情况 分析员 过程报告 测试阶段 项目测试方案及报告(Word) 记录项目测试的方法,验证系统功能与性能的记录 测试员 验收报告 反复测试直至系统稳定 用户使用手册(Word) 方便用户使用软件而提供的使用说明书 测试员 验收报告 上线及运行 系统切换报告 系统部署后的操作记录 项目经理 过程报告 部署及维护 用户培训报告 用户培训文档 项目经理 过程报告 项目验收报告(Word) 记录甲乙双方签订项目验收报告 项目经理 验收报告 项目总结性报告 项目组通过此项目总结经验及不足 项目经理 总结报告

    第四章、岗位设置

        根据公司目前的开发过程主要分为分析、开发、测试三个阶段:

    1. 分析阶段:完成用户需求文档的编写,系统总体设计的编写;
    2. 开发阶段:完成设计文档的编写,代码的编写、代码的维护。
    3. 测试阶段:完成系统的测试,测试文档及其他材料。

        根据开发过程,故设置项目经理,软件设计师,程序员(分UI,前端,后端),测试工程师的岗位。

    岗位工作内容责任
    项目经理 1. 选定项目组成员,成立项目组,安排任务分工
    2. 与客户进行沟通和协调(业务需求或非业务需求方面),以及需求调研工作
    3. 制定开发主计划,包括需求,设计,编码,测试这几个阶段的计划
    4. 估计项目开发费用
    5、制定小组开发进度表, 对组内人员工作进度监控
    6、和客户进行沟通,进行需求调研,汇总需求分析文档,并编写系统总体设计方案
    7、对文档的质量进行检查、把关
    8、对组内成员的工作进行指导
    1. 对客户的沟通协调工作负责
    2. 对软件的开发效率、质量、费用负责
    3. 对用户的需求分析的质量负责
    4. 对系统总体设计、详细设计文档质量负责
    软件设计师 1. 负责系统的模块设计,详细设计文档
    2. 绘制界面原型demo等,设计功能使用的具体描述、行为者、前置条件、后置条件、UI描述、业务流程/子流程/分支流程,界面说明等,完成大部分的前端设计,小部分的后端设计
    3. 负责技术难度大的模块的代码或者公用模块代码的编写、维护
    4. 对自己负责模块的详细设计、代码编写
    5. 对小组内人员进行技术指导
    6. 代码框架选定和优化,统一规范代码书写格式,定义接口格式等 1. 对组内人员的开发效率负责
    2. 对产品整体风格负责
    3. 对项目整体设计流程负责
    4. 对自己模块的开发效率和质量负责
    UI 1. 与软件设计师沟通和确认UI界面,以PSD的格式输出素材
    2. 负责各个模块的界面UI设计、维护
    3. 根据前端的要求生成不同格式和大小的图片
    1.对产品界面的美观负责
    前端 1. 对素材进行切片并实现界面的布局和展示
    2. 根据软件设计师前端框架进行界面的功能实现
    3. 与后端程序员对接API接口
    4. 负责与测试人员的交互,处理测试人员的问题
    1.对前端代码质量和效率负责
    后端 1. 与项目经理沟通和确认某个模块的需求和实现方法
    2. 负责某个模块的代码编写、维护
    3. 对其他模块的代码的维护
    4. 根据软件设计师的规范,设计API返回接口并和前端对接
    5、负责与测试人员的交互,处理测试人员的问题
    1. 对自己模块的开发效率和质量负责
    测试工程师 1. 根据用户需求分析和系统总体设计,编写测试文档和测试用例
    2. 对系统的功能、性能、异常进行测试
    3. 编写测试文档和操作指导手册
    1. 对测试的质量负责
    2. 对测试文档和操作手册的质量负责

    第五章、项目立项

    1. 分析人员进行应用调查与分析,确认软件的应用需求。
    2. 成立项目评审会,开发总监、部门经理和指定人员必须参加。对项目进行可行性研究,编写项目建议书,评估项目的难度和工作量,形成可行性研究报告。
    3. 根据项目配置的优劣成立项目开发组,制定软件开发计划,确定项目经理,由部门和项目经理共同来确定具体项目配置,知识技能要求,团队成员及团队的角色。

    5.1 立项详细流程(建议):

    互联网软件产品开发项目的立项过程:通常是指从准备项目启动会到召开会议这个阶段。

    在立项过程中,需要完成项目目标,需求范围的初步确认,项目团队成员,其他资源的安排,确定项目的初步目标并达成共识。
    对于项目目标,需要和干系人在以下几点上达成共识:

    1. 项目的背景、目标用户、核心人员及产品定位是什么
    2. 项目的资源投入预算是多少
    3. 项目的资源投入是多少
    4. 各人员在项目中扮演的角色和对项目的作用是什么
    5.1.1 准备启动会议文档,内容包括:
    1. 用户画像
    2. 产品定位
    3. 市场策略
    4. 业务目标
    5. 技术可行性
    6. 研发成本预算
    7. 路标规划
    8. 召开项目启动会
    5.1.2 参加人员包括:
    1. 管理层代表
    2. 项目经理及项目团队
    3. 其他干系人代表
    4. 主要议题包括:
    5. 申明项目目标范围及对组织目标的贡献。
    5.1.3 内容:
    1. 管理层正式任命PM,设定期望,统一思想
    2. 文档内容的宣讲。
    3. 与PM小组确定项目管理要求
    4. 项目启动会完成后,需要与PM小组成员确定项目立项机制以及公司项目管理要求。

    第六章、项目计划与监控

    1. 以项目为单位,项目经理负责整个项目的计划、组织和控制。
    2. 在整个项目过程中,项目经理定期检查项目进度和完成情况,调整人员分工和安排。
    3. 项目计划需要变更时,需要明确变更内容并及时汇报。项目经理需要说明客户变更原因并将变更说明提交公司领导审核,以便根据变更内容及时调整计划。

    流程(参考)

    A、迭代N的需求细化

    1. 考虑每个迭代需要完成的用户故事;
    2. 用户故事需包含几个部分,工作量评估、功能性需求、非功能性需求。具体的可参考《用户故事模板及样例及拆分说明》
    3. 用户故事编写完成后需要在团队内部进行需求评审,一方面是为了向团队成员解读该需求,另一方面团队成员也可在评审时给出指导性意见。

    B、测试用例评审

    1. 测试人员根据用户故事要求编写对应的测试用例,并组织项目团队进行测试用例评审。根据评审意见修改测试用例

    C、开发

    1.将用户故事的需求开发的过程。

    D、开发自测

    1. 在开发过程中,每完成一个功能点,都需要及时的进行开发自测并通知产品策划人员进行验收体验。

    E、验收

    1. 开发完成后,产品策划需要对开发完成的成果进行验收,验证其是否符合用户故事的要求,验证通过后方可流到测试环节,否则需与开发详细讨论其不符合性,其验收的checklist可以参考《产品验收checklist及模板》

    F、测试和回归

    1. 提交测试时,必须要有正确的版本。测试人员根据测试用例进行测试,在IT平台中提交测试bug,并根据测试的角度给出产品是否发布的意见,输出《测试报告》

    G、bug修改

    1. 在IT平台中获取分配给自己的bug进行修改。

    H、showCase

    1. 阶段性必须有可体验版本进行showCase.需要
    2. 确定showCase时间:某个迭代开发、自测完成,准备提交测试前
    3. 会议前1-2天发出体验版给到参与人员
    4. 会议期间,由项目经理组织大家体验、反馈问题、记录问题。
    5. 项目经理根据问题情况,与开发或产品确定问题的解决时间并发出会议纪要。

    I、灰度发布

    1. 迭代一定版本后,由项目经理与团队共同决定是否需要进行灰度发布。
    2. 监控方式 :

    每日站立会

    • 主持人轮流担任,负责控制节奏,记录问题,以备会后跟踪。
    • 每人讲自己昨天做了什么,有什么问题,今天的计划是什么;
    • 其他人了解别人的工作情况,并发现指出可能存在的问题。
    • 对于发现的问题,鼓励认领,其余由项目经理指定责任人。
    • 时间通常控制在15分钟内。
    • 会议期间,更新任务墙,任务墙样式如下:

    周报

    • 反馈项目计划的执行情况,强调本周工作要达成的目标
    • 暴露出项目的问题,特别是需要领导或其他团队需要协助的问题。
    • 周报可在IT平台中输出。

    月报

    • 反馈项目当月的执行情况,包括进度、人力及质量。
    • 反映项目存在的问题和风险。

    迭代回顾

    • 每人讲述本次迭代做的好的地方和不好的地方
    • 回顾上个迭代不好的地方,看看改进情况。
    • 让每个人发言。
    • 每次迭代回顾会议完成后,可更新燃尽图

    第七章、需求分析

    1. 对用户提出的需求进行分析汇总,梳理用户的业务流程和详细的功能定义。
    2. 做出简单的界面原型,与客户进行有效的沟通, 编写需求详细说明书。
    3. 根据现有条件进行估计,制定项目进度,制定详细的软件开发计划。

    第八章、总体设计

    1. 在该阶段确定总体结构和软件开发架构,文件命名规范,编码规范。可按软件需求划分成子系统,也可直接定义目标系统的功能模块及各个功能模块的关系。
    2. 确定软件模块结构,给出每个功能模块的功能描述、数据接口描述,并完成系统概要设计说明书。
    3. 完成数据库的设计,并编写数据库设计说明书。
    4. 完成的文档需提交公司进行归档管理。

    第九章、详细设计

    1. 调整前一步设计的不足,确认各模块之间的详细接口信息。
    2. 设计功能使用的具体描述、行为者、前置条件、后置条件、UI描述、业务流程/子流程/分支流程,界面说明等。
    3. 确定模块内的数据流或控制流,对每个程序模块必须确定所有输入、输出和处理功能。
    4. 汇总并提交所有相关文档,审核确认质量和进度。

    第十章、软件实现

    1. 项目组根据概要设计说明书、详细设计说明书制定系统实现计划
    2. 有条件的情况下保证开发、测试和生产环境独立。选择软件工具,明确项目成员的职责分工,按照编码规范和详细设计实现软件功能。
    3. 代码应满足结构良好,清晰易读,且与设计一致,符合编码规范。
    4. 开发人员需要软件实现过程中编写软件功能说明,源代码说明。软件功能说明文档应说明项目名称、编号、软件名称和版本号,软件功能、主要功能实现过程。源代码说明应说明项目编号、软件名称、功能,全局变量、数据库字典、函数功能、接口。该文档包含在源代码文件中,以注释形式存在。
    5. 项目组进行单元测试和集成测试。开发人员处理测试人员反馈的测试问题,并以书面形式反馈主要问题及解决办法,直至系统运行稳定。
    6. 汇总并提交所有相关文档,提交公司备案。

    第十一章、软件测试

    1. 根据单据测试和集成测试两个过程,制定测试计划。按阶段设计测试实例,并将测试结果记录,未通过的的反馈给开发人员调整。
    2. 完成测试文档、操作手册、安装维护手册的编写。

    第十二章、用户培训

    1. 准备用户培训计划、培训手册
    2. 确定培训时间、培训地点,向用户进行系统使用培训、操作指导及提供软件操作手册。
    3. 保留培训签到表,用户意见等存档。

    第十三章、系统上线

    1. 制定上线计划,确定上线工作时间表,部署的环境。
    2. 上线操作步骤以及问题处理步骤;
    3. 根据软件特点、客户需求进行软件部署,并记录软件部署和运行结果;
    4. 项目组根据系统运行请款对系统进行优化,记录系统的运行情况、系统问题和处理后的版本。

    第十四章、系统验收

    1. 验收工作准备,按要求整理项目成果物,打印装订成册,并提交客户方。
    2. 系统主要使用部门及信息技术部门联合成立项目验收小组,从需求功能及技术需求层面对系统进行综合评估和项目成果物的审核,根据验收情况形成系统验收报告
    3. 应用部门及信息技术部门负责人根据系统试运行情况签署验收意见。

    第十五章、产品维护

    1. 调出项目主要开发人员,按照合同要求安排维护人员对系统进行技术支持。
    2. 系统需求变更或调整,记录变更原因和软件及源代码的版本控制,按照软件变更要求对系统进行维护。

    第十六章、源码和文档

    1. 源代码/文档管理采用版本控制软件GIT。
    2. 按项目的阶段性完成源代码、文档的上传。项目负责人每天对代码进行检查,开发总监或部门经理定期进行抽查。
    3. 文档分为项目文档和个人文档,文档上传前进行归类和汇总。

    第十七章、质量检查

    1. 项目负责人每天要检查成员的工作完成情况,特别是新员工的工作进展;
    2. 工作抽查制度:不定期的进行抽检,并将检查对象、检查时间、检查内容、检查结果反馈给被抽检人。
    3. 内部审核制度:针对业务需求、概要设计(功能界面、数据库)或疑难问题组织评审会,提出意见或解决方案。

    第十八章、文档规范

    1. 需按照软件实施的阶段落实成果物,参照《软件过程提交成果表》。
    2. 如果客户有特殊要求,请按照客户要求的规范完成。并将最终的问题提交公司归档备份。

    第十九章、软件变更

        为规范软件变更与维护管理,特制定本制度。本制度适用于应用系统开发完毕并正式上线,移交给客户方之后的运行支持及系统变更工作。

    1. 系统变更工作可分为功能完善维护、系统缺陷修改、统计报表生成。
    2. 需求部门提出系统变更需求,开发部技术支持人员根据重要性和紧迫性做判断,确定其优先级和影响程度,并进行相应处理,同时将变更需求整理成系统变更申请表。
    3. 系统变更实现过程按照软件开发过程规定进行,遵循软件开发过程统一的编码标准和版本控制,并经过测试通过才能完成部署和上线。
    4. 在系统变更完成后,开发人员需将系统变更表的执行结果找业务部门负责人签字后,提交至公司进行归档管理。
    更多相关内容
  • 软件开发过程流程图.pdf
  • java开发流程

    2017-12-07 10:20:44
    开发环境到数据库配置以及代码格式,开发环境有截图与描述 代码部分有包的格式
  • 各大汽车主机厂整车开发流程合集,共8份。 1、大众汽车产品诞生过程 2、丰田新产品开发-及项目管理 3、福特产品开发系统FPDS 4、福特公司DV-PV培训教材 5、福特质量管理体系 6、上海通用泛亚整车开发流程 7、上汽...
  • 二、项目开发计划 三、需求规格说明书 四、概要设计说明书 五、详细设计说明书 六、用户操作手册 七、测试计划 八、测试分析报告 九、开发进度月报 十、项目开发总结报告 十一、程序维护手册 十二、软件问题报告 十...
  • 项目开发流程

    2018-03-30 09:15:50
    项目开发并不是一个简单的过程,我们需要遵循一些开发流程。一个项目的开发会被分成很多步骤来实现,每一个步骤都有自己的起点和终点。也正如此使得开发过程中的每个步骤起点和终点在不同的软件项目中出现不同难度的...
  • 华为硬件开发流程.pdf

    2020-07-15 10:50:30
    详细描述了华为的硬件开发流程(包括硬件开发过程简介,硬件工程师职责与基本技能,硬件开发规范化管理等等),值得广大电子信息学生及硬件入门者学习,如有违规,请联系撤销
  • 软件开发流程管理-需求开发过程描述定义.pdf
  • 本资源包含两个文档,一般产品的开发过程,华为的IPD流程
  • 敏捷开发流程

    千次阅读 2021-04-23 14:43:46
    参考文章:敏捷开发流程 一、什么是敏捷开发? 以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发! 核心:用户的需求进化 方法:迭代、循序渐进 二、敏捷开发原则: 快速迭代 需求评审 ...

    参考文章:敏捷开发流程

    敏捷开发流程_三名狂客的博客-CSDN博客 

    一、什么是敏捷开发?

    以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发!

    核心:用户的需求进化

    方法:迭代、循序渐进

    二、敏捷开发原则:

    1. 快速迭代
    2. 需求评审
    3. 编写story/验收标准
    4. 多沟通,尽量减少文档
    5. 做好产品原型
    6. 及早考虑测试

    三、如何做到敏捷开发

    1、产品

    2、UI+开发

    3、测试+开发

    四、敏捷开发流程

    首先是需求评审,产品经理与客户沟通好需求后,将客户的需求细化为一个个的story,需求评审由各leader参加。

    1、story讲解

         1.1 制作竞品分析PPT,UE全组参与。(用时:根据产品复杂度,0.5-2小时之内)

         1.2 制作产品原型,交由客户看,客户没有异议之后拆story

         1.3 产品在禅道拆分好story,并且定义出优先级,关联需求,后续开发根据优先级进行开发

         1.4 由产品讲解story,前端和后端都参与。(用时:根据产品的复杂度,1-3小时之内)

    2、人员划分

         2.1 新建wiki项目主业,把PPT和产品原型(HTML文件)上传到wiki

         2.2 根据产品原型,按照模块划分相关负责人,前端和后端都是,并放到wiki。(由项目负责人新建)

         命名:xxx项目人员分工(前(后)端)

    3、做方案设计、定义接口文档(2-3天)

         3.1 前端后端相关人员一起,对照原型,根据模块及页面大概定义出接口

             3.1.1 一个页面中有几个接口,每个接口入参与出参是什么

         3.2 后端每个模块的负责人,根据开会讨论的结果,在wiki上生成标准的接口文档

         3.3 将后端做好的接口文档发给前端模块负责人过目,有问题继续修改;没问题开始后续的步骤 。

    4、方案设计(1小时-1天左右,根据模块大小定义时间)

         4.1 后端开发人员,根据原型以及定义的接口,做好方案设计

             4.1.1 对有难度或者有疑点的接口,做出方案,尽量给出多个合理方案

         4.1.2 每个方案写清楚优点缺点

    5、方案评审(2-3小时)

         5.1 对做出的方案设计,做方案评审,建议全体人员参与(无论做不做该项目)

    6、禅道拆分(1-2小时)

         6.1 相关负责人按照优先级顺序,在禅道拆分自己的任务,单个任务最多不要超过4小时,即拆分要详细

    7、开发

         7.1 搭建开发服务器

         7.2 开发人员根据禅道上的任务,按时完成自己的开发工作,具体体现到日报上

         7.3 每天上午开10分钟左右进度会议,如果有延迟现象出现,拿出解决方案,保证项目按照禅道上的时间点完成

         7.4 数据库索引:

         两种索引:1.经常查询的,数据散列度比较高的,做一般索引,不需要建联合索引。2.数据必须保持唯一的,建唯一索引。

            要有文档,文档表明哪些字段要建索引。发邮件。

    8、阶段测试

         与开发并行

         8.1 每天至少发布一次代码到开发环境,并且保证发布完之后程序没问题

    9、性能测试和coderevivew(1天)

         9.1 对每个接口做好性能测试

           9.1.1 每个接口的响应时间不超过200ms,如果有超过的,做优化,尽量缩小到200ms内

         9.2 完成codereview,根据codereview结论完成修改

    10、压力测试

        10.1做好压测报告

    11、 Demo

         1、发demo申请邮件,收件人包括产品、测试同学、前后端相关开发人员

             主题:XX项目demo通知

             内容:时间 地点  参会人员

         2、开demo会议:主讲人:某个开发人员

             会议途中产品和测试提出问题

         3、发demo结果通知邮件(由产品同学发)

              内容包括:1、demo结果  2、如果不通过,有哪些问题

         4、如果不通过,召集第二次Demo会议,知道通过为止。第二次会议只需演示之前不通过的部分

    11.2 测试

         1、demo通过之后,1:开发人员对代码打tag,参考文档如何打tag2.开发人员部署测试环境,部署完成之后发邮件,写明域名;3:交给测试人员进行测试,测试人员发送全体测试周期邮件

         2、测试期间,开发人员要常去禅道看自己的BUG ,及时确认BUG,及时修改

         3、修改BUG之后,开发环境前端代码由前端同学自己部署,后端代码由后端同学自己部署

         测试环境每天的下午6点由后端同学统一部署前后端代码

         4、测试完成之后,测试或产品发送上线通知

    12、 发布测试环境、集成测试(2-3天)

         12.1 禅道上建立bug,测试出bug,指派给相关人员修改

    13、发布线上环境,同时停止开发环境和测试环境

    14、线上监控

         错误报告

    展开全文
  • AUTOSAR架构以及开发流程详细介绍(Vector公司制作-中文版),非常适合初学者以及从事AUTOSAR开发的研究者和工作人员
  • 本程序规定了上海汽车集团股份有限公司乘用车分公司(以下...旨在明确整车开发项目中各相关人员的职责和工作范围,并明确了整车开发过程中各里程碑的关系及各节点所需提交的交付物,以确保整车开发项目正常有序地进行。
  • 软件开发流程及类型图

    千次阅读 2021-11-01 16:55:25
    今天接触到了软件开发流程,对其想进行进一步了解,于是网上搜索了软件开发流程的各种资料和信息,网上的资料真是多如牛毛,数不胜数,让人不觉眼前一亮,茅塞顿开,现把自己的想法和感受整理如下,望大家不吝指教,...

    前记

    今天接触到了软件开发流程,对其想进行进一步了解,于是网上搜索了软件开发流程的各种资料和信息,网上的资料真是多如牛毛,数不胜数,让人不觉眼前一亮,茅塞顿开,现把自己的想法和感受整理如下,望大家不吝指教,谢谢。

    关于软件开发流程图,大体分为如下几种:思维导图,跨职能流程图(水平跨职能流程图和垂直跨职能流程图),鱼骨图,N/S图等。

    软件开发流程图

    项目开发流程.jpg

    感悟

    通过这个流程图发现自己以前写程序真有点简单,而且简单得有点过头了,实际写一个软件项目包含很多内容,分析,开发,调试,验证等多个内容,若要真真切切地体会一个软件项目的开发过程,就需要好好体验体验软件项目开发中的滋味。

    软件开发中脑图种类

    软件项目开发是在一个团队相互配合,相互协调下完成的,这其中的配合与协调就少不了各个组员之间的相互接触沟通交流,为了更加直接简单明了的交流,这其中图片就发挥了不可或缺的作用,脑图就是其中一个很好的交流示范,脑图的种类很多,包括思维导图,鱼骨图,N/S图,流程图等。

    今天我们重点介绍这四种描图方法,思维导图,相信大家很多人都用过,百度脑图,Xmind都是描述思维导图的很好的工具,适用于头脑风暴等工作模式;鱼骨图,不明思议,就是图像描述出来很像鱼骨,因此看起来会很形象,主次分明;N/S图,又称盒图,也是一种很形象的图像描述方法;接下来重点讲述一下流程图,流程图相信大家在学校都有用过,对它的描述是一步一步通过模块拼接而成的,各种模块不能搞浑,不同模块有不同模块的作用,通常,在写程序是用到,对写程序有很大帮助。

    脑图种类

    思维导图

    捕获.PNG

    从图像中可以看出,思维导图是从一个示例,不断向多个示例进行延伸的,后续延伸的示例会越来越多,所以是一种发散思维的体现,对软件项目开发的前期分析思考有很大作用,假如你在某个时刻思维受到了阻塞,不妨尝试一下思维导图的方法,可能会起到很神奇的效果。

    N/S图

    捕获.PNG

    上述已经陈述过N/S图的优点,它还可以让你的思路更加清晰,不会出现遗漏等现象。

    鱼骨图

    捕获.PNG

    通过头脑风暴法找因素,并将它们与特征值,按照相互关联性整理成的层次分明、条理清楚,并标出重要因素的图形就叫特性要因图、特性原因图,形状像鱼骨,所以叫它鱼骨图。

    鱼骨图可以让事件描述的更加清晰明了,让人看起来一目了然,更加快速准确的得到所用的重点内容。

    同时鱼骨图也让本就井井有条的文章带来一些亲切感,让人适当的放松。

    流程图

    捕获.PNG

    流程图,相信在大学学习阶段已经用得挺多的,各种编程课上都有它的身影,是老师ppt上的常客,对于老师教学和程序员思路整理有很大的帮助,我们也喜欢这样的课堂氛围啊,(不需要费劲的看文字信息),哈哈,爱了。

     

     

    展开全文
  • 敏捷开发流程的8个步骤

    万次阅读 2022-02-15 18:32:06
    一、敏捷开发流程的8个步骤包括: 1、目标制定,目标对齐:通过市场调研、业务思路、风险评估制定公司规划和目标,根据这一目标产生所有部门的目标并实现对齐; 2、产品规划:产品研发部门根据目标制定产品关键...

    一、敏捷开发流程的8个步骤包括:

    1、目标制定,目标对齐:通过市场调研、业务思路、风险评估制定公司规划和目标,根据这一目标产生所有部门的目标并实现对齐;

    2、产品规划:产品研发部门根据目标制定产品关键路线图,这个路线图中分布着不同的产品特性和其完成时间;

    3、组织产品待办列表:产品规划产生的需求、客户需求、市场人员收集到的缺陷等将组成产品待办列表;

    4、需求梳理:然后产品负责人(Product Ower)对这个列表进行梳理,并在需求梳理会(Backlog Grooming Meeting)讲解具体每一个需求,团队成员根据需求的复杂程度评估每个任务的工作量,输出本次迭代的待办事项列表,完成优先级排序等工作;

    5、迭代规划:通过Sprint计划会,明确要执行的工作、冲刺目标等,

    6、迭代开发:期间会进行每日站会、性能测试、CodeReview、Demo、测试等工作;7、Sprint评审:由每个任务的负责人演示其完整的工作,由PO确定Sprint目标是否完成,版本什么时候对外发布,新增bug的紧急程度等等。

    8、开回顾会议:回顾会议由Scrum团队检视自身在过去的Sprint的表现,包括人 、关系、过程、工具等,思考在下一个Sprint中怎么样可以表现得更好,更高效,怎么样可以和团队合作地更愉快。

    以上流程是从目标阶段开始,到一个迭代结束,形成了一个相对完整的闭环。但仅从这个流程我们也很难学习到敏捷管理过程具体细节。

    所以,我们下面将从具体的敏捷实践过程对以上流程展开介绍:

    延伸阅读:

    二、敏捷开发是如何开发产品的

    在讲道理之前,我先讲个故事。

    最近某公司负责人一直在思考这件事,“冬季如何让更多的人参加户外运动”。然后在某个下雪天,他惊讶的发现路上竟然一个雪人都看不到,这时他灵机一动,“如果现场有一些造型奇特的雪人,会不会让更多人参与户外运动呢”。

    于是他回到公司跟核心团队交换了想法,随后经过初步的市场调研和反复的讨论,负责人决定在这一方向上投入一些研发力量进行市场验证。

     

    经过产品研发部门的细化,雪人的实现路径慢慢的清晰起来,于是负责人决定投入三个敏捷团队来“堆”这个雪人,那为了保障跨团队的协作效率,相关团队有这么几个重要的工作契约:

    1. 全团队只有一个产品总决策人,每个敏捷团队驻扎一名产品负责人。
    2. 每两周全团队要同步一次雪人的研发状态和下一步的研发目标(遇紧急问题需及时沟通)。
    3. 三个敏捷团队有各自的“待办列表”,但总体“需求”来源于大目标。
    4. 各敏捷团队要有持续交付能力,需定期集成一次,每两周要有一个全局版本。

    从全团队的计划会议上,所有人明确了第一个开发周期的目标:一个戴帽子的雪人(MVP版本)。

    那么第一个开发周期的目标确定后,各敏捷团队内部召开了内部计划会议。

    团队一采用的是Scrum,他们第一个开发周期的目标是“实现一顶能戴的帽子”;

    团队二采用的是看板,他们第一个开发周期的目标是“实现一个个圆圆的头”;

    团队三采用的也是Scrum,他们第一个开发周期的目标是“实现一个结识的身体”。

    他们约定了各自的对接时间和关键协议,然后在随后的两周时间里,每个团队开始了各自的研发任务。当然除了既定的业务目标,每个团队也把自己第一版的CI/CD搭建了出来(非功能性需求)。

    两周后,第一版雪人在预发布环境中亮相,因为内部已经经历了验收和跨部门的联调,所以这次的预发布过程中没有遇到什么大问题。

    两天后,雪人被投放在指定的地点,根据数据埋点显示,当天现场有很多人围观,引起了不小的轰动,负责运营的团队在现场也收集了很多反馈。

    后来负责人召集核心团队对第一版雪人的发布进行复盘,同时对发布后的数据进行了分析,最终负责人决定在这个方向上继续投入,随即负责人召集产品研发部门规划了下一阶段的工作。

    第二个开发周期的目标确定后,各敏捷团队的”待办事项列表“都更新了。这三个敏捷团队根据最新的”待办事项列表“对这个周期的工作进行了规划,然后开始了新一轮的开发,接着第二版雪人如期投放,吸引了更多的人到户外参加现场活动。

    之后是第三次迭代、第四次迭代……随着时间的推移,各个敏捷团队的交付能力越来越强。

    为了最大化的发挥敏捷团队的创造力,负责人做了如下要求:

    1. 每个新特性必须有独立的测试。
    2. 每个生产环境的变更必须通过严格的测试测试(在CD中通过单元测试、集成测试、性能测试等)。
    3. 在不影响其他”雪人部位“、不影响大版本规划的前提下,各个”雪人部位“可以按需部署,用于快速响应游客的诉求、修复雪人的缺陷。

    后来雪人在不断的产品迭代中走向正轨……那这种方式就是典型的互联网公司的「敏捷开发」流程。

    我总结这个流程就是:

     

    在一个健康的互联网公司中,一个明智的决策通常要经过充分的调研和评估,然后才能成为各个部门的目标。当然定目标绝不是喊口号,它包含两部分的内容:

    1. 目标是什么

    2. 如何检验我们正在向目标走

    而在这个过程中,各个关键角色的目标要进行对齐,所有人的步调要保持一致,由下向上及时反馈目标进展。

    (使用PingCode Goals进行各个关键角色的目标对齐)

    那对于产品研发部门来说,产品的研发进度无疑是非常重要的。如果我们对一个产品目标进行分解,会形成一个产品的关键路线图(或者称为用户故事地图),在这个路线图中分布着不同的产品特性和其完成时间。

    (使用PingCode Plan规划路线图)

    接着这些”需求“被分级分类后放在各个开发团队的”产品待办列表“中。

    (使用PingCode Plan规划程序增量)

    进入到一个Scrum团队中,他们在自己的”产品待办列表“中就可以看到按优先级排序的各类需求。

     

    (使用PingCode Agile管理敏捷团队的开发工作)

    Scrum团队会根据综合因素(通常包含:优先级、工作量、依赖关系、非功能性需求的比例等等)安排每个开发周期的工作,他们在每个开发周期结束时都会产出一个可以交付的程序增量。随后我们将所有的Scrum团队完成的服务进行集成,形成一个全局版本,部署到生产环境中。

    (使用PingCode Plan管理各Scrum团队的版本)

    最后我们再对不同的功能点进行追踪,对各类活动数据进行分析,为后续的决策提供数据支持,这便形成了一个完整的闭环。这里我之所以把”敏捷开发流程“拉的这么长,是因为今天的敏捷已经不是”团队级别“的概念了。20年前敏捷开发试图解决业务团队与开发团队之间的矛盾,而今天敏捷开发是一种思维方式,这种思维方式将为整个组织进行赋能。

    那对于今天雪人的故事而言,整个组织就是在用敏捷的方式响应新的”需求“。如果只有研发部门采用敏捷开发,那今天故事的结局会不一样;如果只有一个研发团队采用敏捷开发,那故事的结局会更不一样。当然今天雪人的故事中有很多夸张的因素在,很多事情并不是一蹴而就的,基础设施也需要时间来演进。

    说到这,我们再回到团队级别的敏捷开发中,毕竟能落地的才是真的。

    首先,我认为敏捷开发绝不是一种或几种固定的开发框架,虽然我们在实施敏捷开发时确实也离不开这些框架,但敏捷最大的价值是它传达出来的价值观。其次,我认为使用Scrum和看板这样成熟的框架是十分必要的,标准化的研发流程容易产生规划化效果,说人话就是容易复制。

    那么典型的敏捷团队是什么样?内部又有什么样的流程的?

    三、Scrum 敏捷团队在一个(Sprint)冲刺中具体是怎么工作的?

    我首推Scrum,放图:

    (这是一个由8人组成,开发周期为2周的Scrum团队,主要负责产品研发)

    这个团队在开始一个新的Sprint之前,PO会及时更新左侧的产品待办列表,他通常按照优先级进行排序,并对列表里的工作项复杂度有个大概的认知。

    在第一周周一的早上10点,Scrum Master组织所有人参加计划会议:首先由PO说明这个Sprint的目标,再对待办列表进行讲解。然后由开发团队对用户故事的规模进行预估,在团队容量允许的情况下,将用户故事放入这个Sprint的工作列表中。

    之后由开发团队对Sprint的工作列表进行承诺。

    (使用PingCode Agile开计划会议)

    散会后各自回去主动领任务开始干活,当开发工程师开始一项工作时,他会从主分支checkout出一个特性分支,然后基于这个分支提交新代码,当开发完成时,他会向主分支提交Pull Request(或Merge Request),这会自动触发CI流水线(执行静态检查、单元测试等),CI流水线通过后,需要另一位开发工程师手动Code Review,只有Code Review通过后代码才会合入主分支,这会自动触发CD流水线(执行集成测试、部署测试环境等)。

    部署完成后关掉相关的开发任务,领取下一个开发任务。

    (使用PingCode Agile关联开发数据)

    每天早上10点,Scrum Master组织所有人开站立会议,每人花2分钟同步一下工作进展。

    (使用PingCode Agile开站立会议)

    第二周周五下午4点左右,Scrum Master组织所有人开评审会议,由每个任务的负责人演示其完整的工作,由PO确定Sprint目标是否完成,版本什么时候对外发布,新增bug的紧急程度等等。

    第二周周五下午5点左右,Scrum Master组织所有人开回顾会议,每个人说一下团队做的好的和不好的地方,有哪些改进方案等。

    (使用PingCode Agile开回顾会议)

    第二周周五晚些时候,最新的版本部署到预发布环境中。第三周(新Sprint的第一周)周二的晚上,部署最新的版本到生产环境中。

    对于自管理能力强,或者周期性不强的团队选择看板,放图:

    (这是一个由5人组成,开发周期为1周的看板团队,主要负责基础服务维护)

    这个团队非常注意”流动的感觉“,为了保证让工作流动起来,他们定义了5个栏:需求、设计、开发、测试和部署,其中设计、开发和测试都有明确的“完成的定义”和在制品的限制。

    有任何需求给到这个团队的时候,直接在需求列创建一个工作项即可。当设计同学准备处理下一项任务时,他只需从上一栏中拉过来即可,但是当他想将任务拖到已完成时,这项工作必须满足设计栏的“完成的定义”。

    就是说所有的方案必须通过评审,并且将影响方案告知相关方。当他不把这个任务拖到已完成的时候,那么下游的开发同学不会继续处理这个任务,这项任务将一直卡在”设计正在做“这一栏里。

    当开发同学准备处理下一项任务时,他只需从上一栏的已完成中拉过来即可,当他要完成一项任务时,要提交相应的代码,覆盖单元测试并通过CI,然后再通过CD部署到Test环境中。

    当测试同学准备处理下一件工作时,他只需从上一栏的已完成中拉过来即可,为这个任务写相关的自动化测试并执行通过,然后再把任务拖到已完成中。最后由部署同学拖动任务到部署栏中,部署这个最新的版本。他们每天早上都会看着看板开早会,说一下当前的工作进展。

    在这个过程中,如果有一项工作长期被卡在某一栏中,将很容易被发现,如果有大量的工作被卡在某一栏时,这时将暴露出这个团队最大的瓶颈问题。

    这样的方式让他们的工作状态一目了然。

    (使用PingCode Agile的看板管理一个基础框架的研发流程)

    类似这样的Scrum和看板团队组成了一个大型的研发部门,这个部门有自己的季度目标,每个月至少会开会一次部门同步会,他们会同步所有项目的工作进展和下一步的工作计划,就像雪人的故事一样……

    推荐阅读:

    了解敏捷:什么是敏捷开发 | 敏捷宣言及其解读 | 敏捷开发模式与瀑布开发模式对比 | 敏捷开发适合什么样的团队 | 敏捷开发框架 Scrum团队内部的角色与分工 | 待续...

    敏捷实践分享中小团队如何落地敏捷开发 | 国内外十大顶级敏捷开发项目管理工具盘点 |待续...

    展开全文
  • Web开发流程

    千次阅读 2022-02-16 15:04:47
    web开发流程一般分为以下五个步骤: 1.确定需求 这是web开发流程中最重要的步骤,一般界面设计在此阶段进行。 2.分析与设计 可以细分为4步: ①架构分析与设计 ②业务逻辑分析 ③业务逻辑设计 ④界面设计 3.开发环境...
  • 软件项目开发流程

    万次阅读 多人点赞 2019-10-08 05:30:56
    软件开发流程(Software development process) 首先 看一下基本软件项目开发流程图 其中 1.需求分析: 通过对客户业务的了解和与客户对流程的讨论对需求进行基本建模,最终形成需求规格说明书。 2.总体...
  • Linux的开发流程

    千次阅读 2021-08-24 09:54:28
    在嵌入式学习的过程中,嵌入式linux的学习是不可少的,可以说嵌入式linux是学习比较困难的,会遇到各种各样的问题,那么嵌入式linux学习有一个重要的点就是嵌入式linux开发流程,这是必须要知道的,接下来我们就看...
  • springboot的开发流程

    千次阅读 2022-03-22 21:08:56
    springboot的开发流程 1.创建maven项目 新建maven项目 配置maven环境 2.引用依赖 1)起步依赖 <parent> <parent> <groupId>org.springframework.boot</groupId> <artifactId>...
  • 开发流程模型

    千次阅读 2016-10-18 10:15:11
    描述:每个软件过程顺序衔接、一次性通过,最常用。 优点:由文档和风险驱动,利于提高大型项目开发的质量和效率。 缺点:建设周期长、风险大、难以满足用户需求。 适用场合:需求明确且很少变更的项目,如二次...
  • 程序员需求开发流程及注意事项

    千次阅读 多人点赞 2019-04-10 09:01:26
    需求开发流程及注意事项 前言 在这个春风得意马蹄急,金三银四跳槽季的日子里,相信很多小伙伴都拿到了心仪的offer了吧,其中不乏有初入职场的同学。那么今天,我就从服务端的角度来给大家分享一些关于工作中开发...
  • 什么是敏捷开发流程

    万次阅读 多人点赞 2019-05-11 19:34:29
    【什么是敏捷开发流程 】 这个词猛一听起来感觉很高大上,其实现在已经是主流的团队开发流程 了。 一. 先说一下官方的定义: 敏捷不是指某一种具体的方法论、过程或框架,而是一组价值观和原则。符合敏捷价值观....
  • 嵌入式系统开发流程是怎样的?

    千次阅读 2021-06-03 09:34:18
    嵌入式系统开发流程包含软件开发流程和硬件开发流程: 软件开发流程: 一、需求调研分析 1、系统分析员和用户初步了解需求,确认开发的功能模块,并列出要开发的系统的大功能模块,及每个大功能模块下的小功能模块...
  • 产品开发过程流程

    2014-07-31 11:00:10
    此资源是一个产品开发流程图,主要描述了每个开发阶段中各个部门所要开展的活动,以及每个阶段活动对应的输入和输出。
  • 项目开发流程(简述)

    千次阅读 2021-06-02 20:39:23
    系统流程开发环境 文件夹组织结构 搭建lamp环境 数据库设计 数据库分析 数据库概念设计 使用PowerDesigner建模 创建数据库及数据表 开发网站 前台开发 后台开发 网站测试 发布网站 .....
  • 软件开发流程图模板

    千次阅读 2020-08-10 22:59:06
    软件开发流程图 软件开发流程即软件设计思路和方法的一般过程,包括对软件先进行需求分析,设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编码和调试、程序联...一般决策流程过程包括:问题识别,.
  • 软件开发过程的步骤

    千次阅读 2022-02-18 13:47:01
    软件开发过程或软件过程是软件开发开发生命周期,其各个阶段实现了软件的需求定义与分析、设计、实现、测试、交付和维护。软件过程是在开发与构建系统时应遵循的步骤,是软件开发的路线图。 1、计划 对所要...
  • Git多人协作开发流程

    千次阅读 2022-04-28 19:51:01
    Git多人协作开发流程 一、新建仓库 1、仓库名称:total 2、路径 3、仓库介绍:这是张三、李四、王五等多人的公共仓库,他们自身的文件夹分别代表他们自己的本地代码。 二、命令行操作执行 1、git clone+仓库地址(库...
  • 团队项目开发流程总结

    千次阅读 2020-07-29 22:35:42
    1、开发流程 在确定好开发人员和项目需求之后,就需要进行任务分配和项目排期,团队成员需要根据个人的情况去理性的评估完成任务内容自己所需要花费的天数。所谓承诺即交付,项目团队开发成员在确定过任务完成日期...
  • 安全开发流程(SDL)

    千次阅读 2021-07-28 13:20:17
    SDL security development lifecycle(安全开发生命周期),是微软提出的从安全角度指导软件开发过程的管理模式。SDL是一个安全保证的过程,起重点是软件开发,它在开发的所有阶段都引入了安全和隐私的原则。自2004...
  • IPD产品开发流程详解

    万次阅读 多人点赞 2021-02-25 09:49:22
    集成产品开发(Integrated Product Development, 简称IPD)是一套产品开发的模式、理念与方法。IPD的思想来源于美国PRTM公司出版的《产品及生命周期优化法一书,该书中详细描述了这种新的产品开发模式所包含的各个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,838,272
精华内容 1,535,308
关键字:

开发流程