[原创] 帮助项目成功——日构建

[原创] 如何构建成功的QA团队(How to build a successful QA team) 如何构建成功的QA团队How to build asuccessful QA team原作者:SharathR Bhat译者:Jeff, 黄启鲁, Testone, Wally 原文地址:http://www.softwaretestinghelp.com/how-to-build-a-successful-qa-team/    日期:2009-1 阅读详情

帮助项目成功——日构建

关键字:

       日构建、持续集成、项目管理

摘要:

       日构建本质上是一种管理实践,即通过持续集成、快速反馈来保证软件工作产品渐进的、可预期的朝着目标推进。以日构建为基础管理措施,有利于保证项目成功和提高软件产品质量。

什么是日构建(Daily Build)

所谓日构建,通俗来讲就是每天把所有的工作产品集成起来,并尽可能让其处于可测试状态。日构建是持续构建概念在以日计的较小发生频度下的特殊称谓。

XP方法中把日构建列为软件开发管理中的最佳实践;敏捷软件开发中也把持续集成当作是保证软件项目成功的一个原则。无独有偶,2003中国软件技术大会,上海微创软件公司技术总监蔡培讲述微软公司的软件开发管理时,演讲中提到微软软件开发管理中的一个重要实践,也就是日构建。

为什么需要日构建

软件开发管理中有很多问题往往让管理者非常烦恼,比如:

1.         项目周期一共只有半年,两个月后才看到原始的界面和一些初步的功能。需求人员一操作,发现设计师对业务需求的理解不正确。而设计师一操作,发现开发人员并未真正理解自己的设计意图。无奈,只好部分地方重新设计、重新编码,进度被拖延了。要是早些验证该多好呀!

2.         原本商量好的两个接口,没想到半月后一集成,居然并非当初想象的样子。理解有误,但是当时又没有暴露出来,结果只能返工。

3.         每次集成发现都需要三天的时间才能把所有的编译问题搞定。而错误往往源于接口变更未及时通知,或者通知后开发人员又忘记调整代码了。

4.         尽管项目中已经明确规定遵守《编码规范》,可是每次代码走查就发现还是存在很多违例现象。真希望有个自动工具,每天对开发人员的代码进行自动判断,发现问题立即自动通知项目经理。

5.         开发人员承偌本周完成,但是总是发现因为这个原因哪个原因导致最后没有完成。如何知道开发人员每天的工作效率呢?他每天写了多少行代码?真正实现了哪些规定的功能?实现的质量如何呢?

6.         软件的质量如何保证真是个难题。项目时间本来就紧,而测试人员往往需要等到产品基本成型了才能投入进行测试,测试时间不可能很长,这样就很容易导致产品中存在很多潜在bug. 要是能把测试提前到与开发一同进行多好啊。但是产品未出来,测试人员如何测试,看起来好像不可能实现。

7.         每次项目的里程碑展示和评审,总会导致各个项目经理和部门经理疲于为使自己的工作产品可以正常工作起来,并与兄弟部门集成而加班很晚。难道不能让我们的工作产品每天都是保持在可运行的状态,一步一步推向成功吗?

 

软件项目开发中的问题不一而足,远非上面所列。但是,仔细考虑上面这些问题,是否可以寻找到妥善的管理方法或者技术方法来解决呢?我所知道的一个答案就是在软件项目管理中引入日构建,并且不断把日构建利用到极致。

帮助项目成功

       软件开发的主体是人,需要通过人与人之间沟通、交流才能对工作目标和过程达成共同认识和理解。但是,常常见到的问题是沟通和交流缺失、不到位、失效,由此而导致重复工作、无效工作、甚至错误工作。仔细分析软件开发的沟通和交流问题,我觉得有如下几个关键影响因素:

1.         团队之间的沟通和交流依赖团队成员的性格和做事方法,如何在项目中引入机制保证团队成员自发坚持并做到必要、有效的沟通、交流?

2.         交流中存在对目标的理解错误不可避免,但是需要通过某种措施尽快取得反馈,从而却修正误解。如何建立机制来出促进这种反馈?

日构建的引入明显在在上面描述的影响因素中发挥了作用。为什么这么说呢?解释如下:

1.         日构建对每个开发人员的日常开发行为和目标作了许多规范,这些规范本身就减少了沟通的代价,协调了团队成员的工作。

2.         日构建的各种输出其实就是软件项目各个方面和层次的一个真实而且及时地反馈。例如,编译结果及时反馈了接口的协调;代码审查反馈了对编码规范的真实遵循情况;代码行统计反馈了实际工作量;构建后的可执行工作产品反馈了当前产品的状态。

软件的质量保证一直是个难题,一个方面的原因是软件的质量缺乏完善的度量指标体系和度量方法,另一个方面的原因是因为影响软件的质量因素绝大多数都与人相关,人的知识、智商、心理素质,甚至某个时段的心态和心情都足以影响软件的质量,所以软件的质量控制是典型的TQC(Total Quality Control)控制。

我们一惯采用测试来保证软件质量保证,但是测试对质量的保证存在一些不理想的方面:

1.         软件的质量是在软件开发过程中逐渐形成的,而目前的测试通常发生在我们的产品模块基本可以工作起来,或者可以集成起来之后。测试似乎是一种事后的质量保证手段,发现问题的修复代价较高。

2.         软件的质量控制周期非常长,影响因素多,需要在开发过程中及时取得质量的反馈,而测试只是一种后期的反馈。

3.         软件的质量除了运行时为用户提供稳定、可用、够用的功能外,还体现在软件的可维护性上。目前的白盒测试只能从功能上反馈软件的外部质量,而无法反馈软件的内部质量(代码质量,具体体现在软件本身的可维护性和bug分布)

4.         软件的质量严重依赖于人,所以从管理上应该防微杜渐、敏捷监控、规范管理。而测试发生在后期,bug的发现不仅修复代价较高而且容易对团队成员造成心理上的影响,影响个人的工作状态。

日构建的原则是从每个人的工作产品出发,一开始就强调集成,反馈,并且致力于提供可供测试的系统,从而把质量的控制提前到编码的开始(编码前的工作成果是否也可以纳入日构建呢,这是后面讨论的问题)阶段。日构建在反馈的频度上至少高于每日一次,这种高频度的反馈很容易解决出现的问题,久而久之会有助于提高团队对问题处理的规范性和一致性,这是保证软件质量的根本。日构建直接处理每个人的工作产品,我们可以在这之中加入很多对工作产品的审计和监控,实际上这就给予了我们控制内部质量的手段。这种手段与白盒测试结合起来,就可以对更全面控制软件质量。

软件项目管理的一项重要内容是如何公平、公正度量每个成员的工作成果以及对成员作出评价和激励。每个人的工作可能存在很多差异,比如工作难度、工作量、工作态度等。我们原来对每个成员的工作评价可能更多带有主观色彩,这不是成熟的项目管理方法。真正的公平、公正应当是建立在量化的基础上。日构建直接处理每个人的工作产品,在处理中加入统计、审计可以非常可观的度量每个人的工作量和一定程度的工作态度。比如,通过行代码统计、元数据统计我们可以分析出某项目组的绝对工作量,某个人的绝对工作量。通过代码规范审计,我们可以客观反馈出个人对于规范的遵守和执行情况,这完全可以作为工作的一个客观评价指标。

 

日构建对于项目管理所带来的帮助可能还远不止这些,因为日构建在本质上把工作产品和开发过程在某种范围和某种程度上紧密结合起来了,从而赋予我们挖掘更多更好的管理控制能力。

结束语

软件的开发过程是一种经验型过程(Empirical Process),而非确定性过程(Defined Process),也即,软件的开发并非明确可描述、可预测的。所以在SCRUM软件方法论中,认为可以把工业过程控制中的概念应用到软件开发中来,把软件开发当作一个黑箱(Black box)来处理,通过对黑箱的输入输出不断进行度量,在此基础上,结合经验判断对黑箱进行调控,使其不越出设定的边界,从而产生满意的输出。那么如何来做到这种度量和反馈呢?我想,日构建给了我们一个答案!


cloudward 

2004-8-16
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript> </script>
使用Gradle快速构建项目 黄少存,叩丁狼高级讲师,本文为原创文章,转载请注明出处。  到这里,相信大家都已经知道 Gradle 就是一个构建工具,其主要的目的就是帮咱们构建项目,以下我就通过一个普通的 Java 项目和普通的 web 项目的构建带你走入 Gradle 项目构建. 1 Gradle 搭建Java项目 使用构建工具搭建 Java 项目的主要目的就是其自动的打包和依赖功能.以下就来看下如何使用 Gradle... 阅读详情

相关推荐

Vue3通透教程【十七】Vite构建TS版本Vue项目

本系列将带领大家学习Vue3+TS+vite构成的前端工程化内容,本篇文章重点带领大家搭建Vue3+Ts版本项目!

商务合作欢迎私信我 4万+

软件质量之路(2):日构建

软件质量之路(2):日构建[@more@]2004 年 3 月日构建是一项非常基础的软件开发实践,遗憾的是,并没有多少组织真正意识到它的好处。通过本章的讨论,你可以知道日构建对软件开发的意义,了解日构建的基本情况以及如何着手进行...

csdn_870510的博客 450

k8s集群部署私有镜像仓库

本文介绍了在Kubernetes集群中部署私有镜像仓库的完整方案。使用registry:2镜像创建Deployment,通过NodePort(30500)暴露服务,并采用hostPath(/data/registry)实现数据持久化。部署过程包括节点标记、YAML配置、资源创建及验证步骤,同时提供了Docker和Containerd两种环境下的详细使用方法,包括配置不信任私有仓库、镜像推送/拉取操作指南。该方案特别适合开发测试环境,为团队提供便捷的本地镜像管理能力。

weixin_42728286的博客 893

对日构建的新理解

以下为与cloundward 以及leon的msn群谈话实录: cloudward@gmail.com (285273 ,22:24) 说:一方面需要领导重视这个问题,关系到团队的工作效率;另外,需要很好的软件工程实践基础,以及对配置管理的精通。cloudward@gmail.com (285273 ,22:25) 说:csdn把文章丢了,所以才搬到 donews 上来ginger547 说:不是...

ginger547 492

保姆级教程:用ComfyUI+LTX-Video插件,5分钟搞定你的第一个AI视频(RTX 4060实测)

本文提供了一份详细的ComfyUI与LTX-Video插件使用指南,帮助用户在RTX 4060显卡上快速生成AI视频。从环境部署到图形化操作,再到提示词优化和性能调优,全面覆盖AI视频生成的各个环节,让零基础用户也能轻松上手。

weixin_33743661的博客 136

CASIA数据集解析:图像篡改检测的黄金标准与实践指南

本文深入解析了CASIA数据集在图像篡改检测领域的核心价值与应用实践。作为中科院自动化所打造的黄金标准,CASIA数据集通过模拟真实篡改场景(如拼接和复制移动)为研究者提供全面支持。文章详细对比了v1.0与v2.0版本差异,分享数据预处理和模型训练的最佳实践,并探讨了未来研究方向,是图像篡改检测领域的重要参考指南。

kappa的博客 784

软件质量之路:日构建

 软件质量之路:日构建      日构建是一项非常基础的软件开发实践,遗憾的是,并没有多少组织真正意识到它的好处。通过本章的讨论,你可以知道日构建对软件开发的意义,了解日构建的基本情况以及如何着手进行日构建。  什么是软件开发的有效管理  在一个全国性的银行中,是什么保证复杂的资金清算的正确性的呢?每天,各个地方的网点在结束营业之前,需要保证账目、资金、票据的平衡;这些网点的数据不

813

如何编译RustDesk(Unbuntu 和Android版本)

备注:官方文档上,一边都是基于sciter,这个在后面已经不建议使用了,但是依然可以编译刚开始的时候看官方的文档,涉及的东西比较多,也搞的一头雾水,通过B站上一个视频,可以通过CI/CD来编译,以及act本地试试(最终放弃,大概需要下载大几十G的容器下来)。最终总算明确了方向,可以用自动化流水线来编译。直接看CI/CD的脚本文件文件在.github/workflows目录下,重点研究 bridge.yml 和flutter-build.yml 这两个文件。

lvronglee的专栏 2547

【测试—自动化测试】每日构建与自动发布_02

客户端程序每日构建的目的:解决客户端程序更新频率太高,人工工作量太大解决客户端程序,程序资源,美术资源,策划资源的合入,打包发布混乱的问题版本质量不稳定,为后续引入自动测试打下基础每日构建工具:构建管理工具CruiseControl.NET ( 服务端:CruiseControl.NET-1.4.4-RC2-Setup.exe      客户端:CruiseControl.NET-CCTray-1

肖红超的地盘 529

华为OD机试真题 新系统 2026-04-22 Python&JS 实现【小学生班长选举增强版】

9 月份开学第一天,小学某班级进行班长选举活动,班级共有 N 个学生,每个学生最多可投 3 票(对同一个人只能投一票),也可以弃权不投票,大家投票时写上对应学生的名字。 假设学生不存在重名。考虑到部分少数民族名字带分隔,且整体较长,同学在投票时为了方便,允许同学写全称,也可以只写其中的部分连续段。 例如班级里只有 2 个少数民族名称带点的同学:

MISAYAONE的博客 316

提示工程架构师干货:AI上下文工程在社交媒体舆情溯源中的应用

在舆情溯源中,“上下文”不是单一的“文本内容”,而是多维度、多源的信息集合溯源时间:从事件爆发到找到源头,只用了24小时(传统方法需要3-5天);溯源准确性:100%(通过人工验证确认);后续行动:品牌X发布了澄清声明,揭露了品牌Y的恶意行为,舆情在48小时内平息。社交媒体舆情溯源是一个“复杂的系统工程”,需要结合数据、模型、上下文理解。AI上下文工程的出现,让我们从“被动应对”转向“主动溯源”,从“模糊判断”转向“精准分析”。

Java大师兄的博客 812

软件开发管理中的最佳实践——日构建和持续集成

XP方法中把日构建列为软件开发管理中的最佳实践;敏捷软件开发中也把持续集成当作是保证软件项目成功的一个原则。无独有偶,2003中国软件(600536,股吧)技术大会,上海微创软件公司技术总监蔡培讲述了微软公司的软件开发管理,演讲中提到微软软件开发管理中的一个重要实践,也就是日构建。(日构建和持续集成本质上是一样的,只是前者的频度是每日一次,而后者则并未限定频度。为了便于讲述,本文中不再区分这两个概...

topMan'blog 443

个人顶级AI助手OpenClaw(Clawdbot) - 新手快速入门指南

本文详细介绍了个人顶级AI助手OpenClaw(Clawdbot) 的快速入门指南,包括安装部署和使用配置及注意事项

program哲学 5303

[原创作品] web项目构建(一)

今天开始,将推出web项目构建教程,与《javascript精髓整理篇》一并更新。敬请关注。 这篇作为这一系列开头,主要讲述web项目的构建技术大全。在众多人看来,web前端开发无非就是写写页面,再加个js弹个窗什么的。因此,认为前端开发的薪资应该稍微会低一点。这样,项目的质量也得不到保证。其实,在一般的web应用开发,比如做个官网啊什么的,工作量很明显前端会...

144

案例:无人船测量点位数据+ArcGIS 10.6软件生成三维水下地形的两种方法

通常情况下,采用无人船进行水下地形测量,得到的是离散的,具有点号、日期、时间、东坐标(E)、北坐标(N)、水面高程、水下高程和水深等信息的点位数据,该数据一般由航带点位数据加水岸线组成,如下图所示: 原始点位数据格式如下: 下面讲解在ArcGIS软件中生成三维水下地形的两种常用方法。 一、构建不规则三角网(Tin) 1、创建Tin 生成的Tin: 2、Tin转栅格 Tin to Raster: 三维展示: 二、空间插值 栅格插值常用的方法有:克里...

智慧空间实验室 6750

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

cmake qt 添加路径 项目_[原创]Qt Creator构建CMake项目

用CMake管理项目非常方便。忘记怎么用的话,看看另外一篇笔记。之前用cmake做了几个wxWidgets和c++的小练习。之前是用Editplus或UltraEdit作为文本编辑器的。最近一段时间一直在学习Qt。Qt也可以方便的集成MS visual studio中,但除了C#,其他语言的项目在vs中并不能体现出vs的优势。所以再挖掘qtcreator的潜力,以后电脑上就只需要Editplus,...

weixin_39567013的博客 791

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【独家揭秘】从0到1创建百度百科词条:我的原创概念“数组探针“成功之路

本文分享了将原创技术概念"数组探针"成功创建为百度百科词条的经验。首先强调了原创概念创建百科词条的价值,包括知识确权、技术传播和影响力建立,同时分析了面临的权威性验证、内容中立性和引用规范等挑战。重点介绍了从理论构建到词条创作的系统方法,包括概念系统化、第三方背书、引用策略创新等关键步骤。最后通过词条影响力数据验证了方法的有效性,并建议创新者尽早进行知识沉淀、构建学术共同体和善用平台规则。文章为技术原创者提供了将创新成果转化为权威百科内容的实用指南。

weixin_56334307的博客 995

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【初创公司系列】Amper Music 开发Creative AI驱动的工具,以帮助团队创作和定制原创音乐

Amper成立于2014年,其使命是使任何人,无论其背景或专业知识如何,都能通过音乐创造性地表达自己。Amper构建由Creative AI驱动的工具,以帮助团队创作和定制原创音乐。利用拥有超过一百万个单独样本和数千种乐器的专有库,Amper的技术旨在通过融合音乐理论和AI创新来提供高品质音乐。 纽约,2019年1月23日,全球人工智能音乐的领导者Amper Music今天宣布推出Amper Score™,这是面向企业内容创作者的全球首个端到端AI音乐创作平台,以及开发人员API。各种企业都在采用和扩展内容

甲客实验室 2471

基于java中的SSM框架实现时装原创设计交流网项目【项目源码+论文说明】

对于网上交流平台,其最大好处是要能给用户带来最大的便捷,这种便捷不仅体现在网络之外的物流、商品的折扣等,更要体现在进行网络操作时的易用性,能够模拟用户的购买行为,营造一种尽量真实、贴切的用户购物过程。此交流网站就是以维护原创设计权益为目的,将原创设计师作为标签,弱化品牌效应,注重展现设计师的创意智慧,成为原创设计师作品发表的平台,创意交流的空间,为新晋原创设计师提供更多展现的机会,为设计爱好者提供学习借鉴的资源库,为广大买家提供正规的购买渠道,同时维护了买家的权益。3.成本比较低,风险小,不受地点的限制。

ybigbear2的博客 637

自媒体头条号关于图文、视频、图集原创标准细则

头条号平台致力于构建健康、良性的内容生态,鼓励创作者生产更多丰富、完整、原创程度高的内容。随着原创作者和原创内容的增加,平台上出现了一些违规声明原创的现象。为了维护真正的原创作者的权益,打击不合格的原创标识使用行为,目前,头条号平台对「原创」标识的使用规则解读如下: 《凯哥自媒体(QQ/微信:81447703) 专注自媒体实战运营。》 一、什么样的作品算原创? 1.由创作者个人或

hqb0010的博客 1万+

使用Maven构建Java项目

版权声明:本文为博主原创文章,未经博主允许不得转载。 一、Maven是什么? Maven 是一个项目管理和构建自动化工具。Maven基于POM(Project object model),能够管理项目的构建、报表、文档等信息。 我们这里主要讲的Maven的项目构建功能。有了Maven,我们可以方便的管理Java项目的生命周期和依赖。通过定义一个POM文件,我们就可

JJ_nan的博客 1077

(原创)QT安装及第一个QT项目详解

目录1.QT软件安装及环境配置2. 详解第一个QT项目2.1 QT模板2.2 构建系统2.3 版本管理2.4 构建套件2.4.1 管理套件2.4.2 简介编译的过程2.4.3 建立项目后的设置2.5 详解项目目录2.5.1 widget.pro文件2.5.2 main.cpp文件①文件包含和""的区别②main的argc、argv两个参数⑤为什么要return a.exec()2.5.3 widget.h文件①宏#define和#ifdef③命名空间namespace④变量前置声明⑤ui文件和代码建立联

cjxxjc的博客 1617

基于java中的SSM框架实现时装原创设计交流网项目【附项目源码+论文说明】

对于网上交流平台,其最大好处是要能给用户带来最大的便捷,这种便捷不仅体现在网络之外的物流、商品的折扣等,更要体现在进行网络操作时的易用性,能够模拟用户的购买行为,营造一种尽量真实、贴切的用户购物过程。此交流网站就是以维护原创设计权益为目的,将原创设计师作为标签,弱化品牌效应,注重展现设计师的创意智慧,成为原创设计师作品发表的平台,创意交流的空间,为新晋原创设计师提供更多展现的机会,为设计爱好者提供学习借鉴的资源库,为广大买家提供正规的购买渠道,同时维护了买家的权益。3.成本比较低,风险小,不受地点的限制。

螺旋翻转大大雄 582

教你如何写原创歌词和卖你的原创歌曲

写出具有情感意义的原创歌词。虽然流行音乐有时候看起来很奇怪(尤其是抒情的),但是没有一种“正确”的方式来写原创歌词。从各种各样的个人观点中汲取了伟大的原创歌词,这些观点涵盖了整个人类体验。有些歌很开心,有些则很生气。有些歌曲是放松和放松的,有些则是紧张和偏执。有些对作家具有重要的个人意义,而有些则一无所有。然而,几乎所有伟大的歌曲都传达了某种情感。首先,当您编写歌曲时,请尝试表达您在思考某些对您重...

lyjn200351的专栏 1145

Vue中大型项目的总结(纯原创)

Vue中后台项目的前端总结技术栈:样式:CSS 预处理器的选择:局部样式与全局样式:异步请求:--- 重点封装 Axios:跨域问题:Mock 数据:规则:路由:--- 重点布局三大类:权限验证:1.auth2.permissionsVuex:组件库:过滤器:指令:项目优化:--- 特重点1.体验优化:页面载入进度条:美化滚动条:静态资源加载页面(首次加载白屏):移动端 100vh 问题:2.构建优化:1.包分析工具:webpack-bundle-analyzer2.开启 Gzip(后端配置支持你的 .gz

小龚的博客 9009

如何用十步写一首原创歌曲

对于那些一直想知道如何制作精心编写的原创歌曲并将自己作为艺术家自己录制的人,本文将为您提供必要的原创歌曲创作方法,帮助您传达信息并确保听众始终参与其中。原创歌曲结束的方式。 当然,人们如何编写原创歌曲有不同的方法,但是你在马拉维和其他国家听到的许多专业原创歌曲作者都使用这种方法。 借助AI写歌词软件,来辅助创作原创歌词,比如:《机器人小夕》,机器人小夕是一个AI写歌词软件,是专业作词必备辅助工...

lyjn200351的专栏 1045
上一篇: [寓言] [摘抄] 老鹰再生
下一篇: [原创] 软件质量控制过程(图)
cloudward
博客等级 码龄23年 18粉丝 51原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值