`
webcode
  • 浏览: 5942897 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

软件开发过程中的审查 (Review)

 
阅读更多
软件开发过程中的审查 (Review)
希望别人做些什么->定义出流程
希望别人做出正确的结果->定义出审查制度
软件开发项目中包括很多的审查动作,贯穿于整个开发过程。个人认为审查主要有以下目的:
1.尽早排查出潜在的问题(Potential Risk/Issue)
经过其他人的参与,以不同的视角提出不同的看法,会有类似头脑风暴的效果,集思广议来查找工程师未能注意的问题。
2.保持良好且有效的双向沟通
很多时候沟通并不充分,总有许多以为明白,实际并不明白的情况。组织管理人员需要及时通过审查的方式,与开发人员进行有效的沟通。 同时,审查会使开发有更多的表达和相互沟通的机会,提高参与度,所以审查也可以提高开发人员的认同感和归属感。如果大家都能从审查中得到有效的指导和帮助,也会有助于提高审查效率。
3.通过以上两点,来达成最终正确的结果。
管理者需要对最终的结果负责,不能坐等问题发生,一定要先行加以预防,所以需要不断的进行审查。而组员通常对于所谓的审查会有一定的戒心,害怕批评或出丑,或者觉得没有必要,于是管理要确保在审查时做到对事不对人,并能针对问题提供有价值的指导。审查的对象是当前状态及产出,审查的目的在于确保最终的正确产出,审查的方式就是质询,而质询的基础就是审查制度。
审查制度可以很灵活,比如在项目开始定义出项目的角色及职责(ARCI矩阵), 然后针对不同的Milestones或任务设置检查点(Check point),重要的环节加以定义,使得审查有据可循。如针对Design Spec,我们需要宣布以下规则:
1. Design Spec需要遵循公司统一规范。
2. Design Spec中需要描述清楚Block diagram, Interface defintions等等。
3. Design Spec什么时候提交给哪些人做审查。
4. 什么时候举行Design Spec的审查会议,哪些人会参加,等等。
这是针对工程师而言的。Design Spec中的内容相应会有一个审查表(Check List)来进行审查,这就是规则。同样针对管理者也可以设定一个审查表,如:
1. 必须向所有组员说明一次公司相关的文档规范。
2. 必须定义清楚撰写及审查的时间安排,并向所有组员宣布,确保大家可以执行。
3. 必须提供相应的审查记录。
对于需求分析、Functional Spec、代码管理、版本控制、发布控制、BUG管理及成本控制,都可以细化相应的动作,加以审查。审查对象包括项目中的各个角色。
总结一下,项目中审查制度的建立有以下步骤:
1. 项目中角色及职责定义(R&R, Who)
2. 定义审查点 (Check Point, When)
3. 定义审查内容、范围及目标(Check List, What)
4. 定义出审查人员 (Who)
*SMART原则是目标管理的重要参考法则,对于这个的审查制度有很强的指导性。
上面的审查制度是常态性的,另外还有一些突发状况需要由管理者适时判断审查的必要性。
如果突然遇到之前未能预估到的技术难题时,管理者必须特别为这个问题设定应急计划和一个更为紧凑的审查机制。比如在应急计划如下:
1.召开会议,寻求资深工程师的帮助。[负责人及时间]
2.安排其他人员支援。[负责人及时间]
3.寻求第三方公司的支持。[负责人及时间]
4.网络寻求解答。[负责人及时间]
5.向相关人员报告细节问题,对于项目管理人员要考虑有无替代方案。[负责人及时间]
相应的审查一方面要针对每项进行,另外也要有一个统一个状态报告会议,以此来加强组织的有效性。当然这样的问题应及早被识别成风险或问题来加以预防,越少发生越好。
还有一种主动的自我审查方式。
无论对于管理者还是工程师,一定要清楚,你的主管、客户和老板,都需要知道你在做什么!及时的汇报是非常必要的,这也是一种主动的审查,它的效率更高。所以我们可以要求承担重点开发任务的人员周期性提交状态报告,将做过的事情、遇到的问题、后续的计划表列出来。其他人可以另作要求。管理者则应主动为其提供相应支持,这样就可以保持一个较为良性的互动。
审查之所以重要,是因为我们处在越来越讲求效率与生产力的环境,走越少的弯路,我们的企业才会更多的利润,员工才有更大的空间。这是管理者与工程师需要共同承担的责任。
*有点乱,先写到这,以后再完善!
分享到:
评论

相关推荐

    代码审查Review讲义

    软件开发过程中代码审查部分讲义PPT,可以用作团队内部分享。

    代码审查CodeReview的最佳实践

    我一直认为CodeReview(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,CodeReview都是基本要求,代 我一直认为CodeReview(代码...

    Codereview 代码审查工具(国人开发)

    软件介绍: 一、软件特色 功能丰富:实现文件内容、度量、命名、注释、类图、Halstead等审查。 简单易用:无需安装,直接使用,直接删除;所有操作点击完成。 直观可视:分析结果与源代码在同一界面显示对照,快速定位。...

    java代码审查规范文档

    Code Review主要用来在软件工程过程中改进代码质量,通过Code Review可以达到如下目的: .在项目早期就能够发现代码中的BUG。 .帮助初级开发人员学习高级开发人员的经验,达到知识共享。 .避免开发人员犯一些很常见...

    CodeReview代码审查不完全整理

    CodeReview主要用来在软件工程过程中改进代码质量,通过CodeReview可以达到如下目的目的:(1)在项目早期就能够发现代码中的BUG(2)帮助初级开发人员学习高级开发人员的经验,达到知识共享(3)避免开发人员犯一些...

    我是如何进行codereview的

    公司的规模,大公司重视流程,把代码审查作为软件开发中的重要一环,甚至计入考核,不管什么一旦成为制度,开展起来就相对容易了。小公司则不然,尤其是刚起步的,可能觉的代码审查没有必要。和你的领导有关系,就和...

    gitarena:具有内置vcs,问题跟踪和代码审查的软件开发平台

    gitarena:具有内置vcs,问题跟踪和代码审查的软件开发平台

    高效代码审查的十个经验

    代码审查(CodeReview)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等。1.代码审查要求团队有良好的文化  代码审查(Code...

    epicodus-embercli-code-review:Epicodus 的 Ember CLI 代码审查

    在 Ember CLI 中重新创建了之前的 Q 和 A Ember 应用程序 作业: Ember CLI 代码审查 作者 安德鲁芬斯特罗姆 先决条件 您将需要在您的计算机上正确安装以下东西。 (带有 NPM) 安装 git clone 这个仓库 切换到新...

    week-1-code-review:第一周Epicodus代码审查

    彼得森(Drew Peterson)投资组合创建关于我自己的作品集网页的项目由Drew Peterson创建描述创建此页面的目的是记录我的软件开发项目的投资组合和其他就业信息Github链接[Github到项目的链接]( )设置在网络浏览器...

    phabricator安装使用手册

    Phabricator是一套基于Web的软件开发协作工具包括代码以下 1、提交前代码审查 2、支持Git,Mercurial和SVN 3、审核源代码 4、可自定义的任务管理 5、写笔记

    贝岭的matlab的代码-code-review-checklist-plugin:用于管理代码审查清单的Chrome插件

    在浏览器中访问 c​​hrome://extensions 确保选中“开发人员模式”复选框 单击“加载已解压的扩展程序...” 选择克隆 repo 的目录 这个怎么运作 当您单击扩展程序的图标时,代码将查看您是否有该 URL 的现有清单。 ...

    ChromiCode Review via Rave Review-crx插件

    我们的ChromiCode审查扩展程序使您可以了解ChromiCode软件,观看ChromiCode演示视频并了解我们的ChromiCode奖金。 ChromiCode是一款可让任何人无需知道如何编写代码即可创建Google Chrome扩展程序的软件。 您为什么...

    离散控制Matlab代码-2019s-scoping-review:2019S作用域回顾

    数值方法的范围审查/科学计算软件目标是记录/观察软件开发 搜索策略 科学计算软件的列表可从多个来源(主要是从Github)获取,因为没有系统的方法来获取此类列表。 Github搜索栏。 跳过:教材,书籍,资源,讨论,...

    监视:辅助代码审查,对请求请求运行自定义代码分析器

    当前,源{d}监视正在开发中。 进一步阅读 该存储库包含source {d} Lookout的代码和项目文档,您也可以在正确呈现它们。 快速开始 有几种方法可以运行source {d} Lookout ; 我们建议使用docker-c

    relis:进行系统的文献综述和作图研究的工具

    系统审查是一种用于搜索科学文献中证据的技术,该技术是根据先前精心设计的协议按照明确定义的过程以正式方式进行的。 进行系统的审查需要很长时间,其中涉及许多步骤,并且通常很费力且重复。 这就是为什么我们...

    refactoring-aware-diff:RAID是一种工具管道,可通过重构信息无缝丰富GitHub diff结果

    RAID:重构感知和智能差异 代码审查是现代软件开发中的关键实践。 目前,这种做法是使用文本差异工具(例如GitHub提供的工具)执行的。 但是,差异结果很容易变得复杂且难以理解。 例如,在差异结果中根本不表示重构...

    truss:使用symfony构建的类似造颤器的项目管理应用程序

    桁架 (工作正在进行中) 基于开源symfony的Web应用程序,旨在允许一个多合一的软件开发平台支持: 同行代码审查 任务管理 项目沟通 文件资料 仓库托管 可部署的登台服务器

    ebisu:使用贝叶斯统计信息进行抽认卡测验调度的公共领域Python库。 (JavaScript,Java,Dart和其他端口可用!)

    它旨在供编写测验应用程序的软件开发人员使用,并提供一个简单的API来处理调度测验的以下两个方面: predictRecall给出给定事实的当前召回概率。 给定测验结果, updateRecall调整对未来召回概率的看法。 在这两...

    javascript-4-学习:Epicodus代码审查项目,Javascript第4周:跟踪学习目标

    由于我也想从本周开始练习Angular路由,因此我做了一个小型站点,其中列出了我的软件/软件列表以及可以解决此问题的资源和步骤。 我想要一个中央存储库来跟踪其中的一些想法和工具。 我进行了大量的阅读和研究,还...

Global site tag (gtag.js) - Google Analytics