写点什么

高品质软件工艺

  • 2016-03-20
  • 本文字数:2365 字

    阅读完需:约 8 分钟

Tarcio Saraiva 和 Adam Crough 在澳大利亚墨尔本第一次大会上讨论了高品质软件工艺。InfoQ 请他们讨论了什么是软件质量,并请他们解释了质量能够带来的商业利益,以及如何进行管理。InfoQ 还请他们谈了谈测试在交付高品质软件时的角色,持续交付对质量有怎样的支撑,并请他们为想要交付高品质软件产品的组织提了些建议。

InfoQ:你们能分享一下什么是软件质量吗?

Saraiva:这是个概念上的目标,它能帮团队铺一条走向更好产品的道路,这个产品几乎没有缺陷、有更好的功能和易于理解的代码。这条路可以从内部视角(比如开发人员)和外部视角(比如最终用户)来看,两组人以不同的方式来理解质量。挑战在于确保它们之间不会互相产生影响。

Crough:简单来说,质量甚至可以被界定为好或坏。它的定义从主观上暗示了个体认知在什么是质量的识别中起到了很重要的作用。

当试图在什么构成高品质软件上找到共识时,承认个人目标非常重要。开发人员可能会着眼于代码库,并赞叹它的可维护性,而最终用户可能感到满意的原因是能够在便捷设备上保存喜爱的音乐。

InfoQ:以你的经验来看,组织为什么会选择质量,质量能够为它们带来什么商业利益?

Saraiva:质量为计划继续增强的组织带来了控制力,这能为商业带来收益。在适当的时机使用适当的流程去构建高品质软件不仅使团队能够采用新兴的策略和技术,还能使商业更易于演进和变革。

作为一名开发人员,我发现经常会涌现出新的技术和方法。在 DiUS,我们时常讨论可以为项目带来什么新的方式。这也是质量对于我们来说为何如此之重要:当它们变得务实且快速地演进组织时,把这些价值带给客户对教育客户也很有助益。

Crough:投资回报率、鲁棒性、可靠性、缩短上市时间、增加客户满意度是投资和经营质量的所有副产品。它们是组织追随软件不断发展脚步的所有重要属性。在比较个人的层次来看,我认为追逐质量并让他人满意是与生俱来的特性,对此我们都各自具备着不同的水平。从这个意义上说,带给组织的收益是双重的。

首先,营造一个环境或文化,使软件团队成员在其中不仅渴望去满足一个标准,并且得到鼓励去超越标准。其次,如果个人和团队能够认识到正在开发会令客户满意的产品那将是一件非常令人羡慕的事。

InfoQ:有时组织使用像“质量保证”或“质量控制”这样的术语,你认为质量是能被管理的吗?

Saraiva:我认为质量是可被度量的,并会由此引出可被称之为管理的举措。来自于持续集成的可见性将告诉团队是不是有些事情出错了,比如丢失了若干测试用例。这种可见性促使团队采取措施去讨论问题、理解原因并应用修订。

以我的经验来看,自组织会投入大量的精力来研究如何用应用工具和技术来管理质量,这使团队可以更为优秀。反过来说,商业有机会去探索如何从内部实施的技术中管理自己质量的新路子。

Crough:正如我之前所说的,质量可以认为有些主观色彩,但这并不意味着它不可管理或无法达成共识。

在软件开发中,质量保持和质量控制通常是可以互换的。从整体感觉上看,他们构成了质量管理的一部分,而又扮演着独特的角色。简而言之,质量保证可以视为一种预防策略,而质量控制则是检测的策略。自管理团队、迭代开发周期和持续改进的动力是敏捷项目中管理质量行之有效的所有技术和 / 或过程。

InfoQ:你能详细说明测试在交付高品质软件中扮演的角色吗?

Saraiva:最近两年,测试已经从“提交给测试”的方式转换为“让我们测测这个”的方式了。这种转变从而引导出一种“如何做得更好”的思想。

测试驱动开发作为一种软件实践很成功,因为它能使你向设计决策发起挑战,从而引导你写出更好的软件。把它和结对结合起来使用就更有意思了,因为你们可以分享思想,加强对问题的理解,从而得到最佳的解决方案。

探索式测试是另一种我认为目前已经成型的实践:它使团队能够去尝试特性或用户流程中的不同寻常的路径,这通常无法用自动化测试套件来实现。

简单来说,测试提供信心。它是一组能使组织前进的实践。

Crough:从识别一个想法或概念的那一刻起,测试就应该参与到交流中来。想法的测试可以为决策增加洞察力,无论是被大众接受、实现可行性还是商业可行性。可以通过与新或已有客户交谈来完成轻量级的测试,在纸上把思想画出来可以成为验证概念和推动创新的手段。

虽然测试责任在开发团队的日常活动中扮演着非常重要的角色,但决策软件质量是否适用时允许和鼓励最终用户测试也非常重要。最终用户将用你的软件做一些你和你的团队没有考虑到的事。把软件尽早交到最终用户的手中是一种测试什么已经完成的好方法。

InfoQ:你能举一些例子说明持续集成对质量有怎样的支持吗?

Saraiva:在我当前的项目中,我们采用了零停机时间的持续部署。这全都是因为持续集成才具备了可能性。

“开发周期”(推送、构建、报告)之所以重要是因为它能让我们抱对结构和功能的质量抱有信心,但持续集成背后的好处是发展团队实践,并使组织像机器人那样演进,打开通往现代实践的大门。

Crough:作为开发流程的一部分,持续集成为开发人员的每次检入提供了信心,确保都通过了自动化构建的检查,使团队可以尽早地发现问题。

这不仅能给开发团队信心,还能让该软件的业务负责人或产品经理秉承持续检查的标准。它还凭借不断的检查去界定持续改进的范围。

InfoQ:如果一个组织想要交付高品质的软件产品,你想给他们提些什么建议呢?

Saraiva:质量无银弹。由内向外地构建质量,再由外向内地寻求反馈,这种做法一直以来对我们共事的组织都很有效。拥抱变化,用挑战的方式来做事,并带领团队一路随行。

Crough:在外部,理解你的客户是谁,听他们倾诉并欣赏你的产品即将或正在为他们提供什么价值。

在内部,让你的组织和客户一起重视共同的愿景。愿意实验并营造一种文化,在这里惧怕失败不会对个人或团队产生坏处,而要把它看作一次学习的机会。与开发团队一起倾听和协作。

查看英文原文: Crafting Quality Software

2016-03-20 19:002436

评论

发布
暂无评论
发现更多内容

App 加载慢到崩溃?三招帮你彻底告别 “转圈圈”!

xuyinyin

从负荷分析定项目运维要点

Tecjt_锦图科技

5 分钟 SAE 极速部署 Dify,赢取户外折叠椅和社区积分

阿里巴巴云原生

阿里云 Serverless 云原生 dify

教你数分钟内创建并运行一个 DolphinScheduler Workflow!

白鲸开源

Java 大数据 开源 Apache DolphinScheduler 任务调度

数据传输中的三大难题,ETL 平台是如何解决的?

谷云科技RestCloud

数据处理 数据传输 数据同步 ETL 数据集成工具

百分点科技BD-OS获华为鲲鹏认证,全栈信创助推政企智能升级

百分点科技技术团队

破解云VR教育普及难题:点量实时云渲染——实现跨终端无界协同

点量实时云渲染

3D渲染 vr 云渲染 虚拟现实 #云计算

非凸智能算法上线华福证券,打造高效交易新范式

非凸科技

从“分散”到“统一”,中控技术利用SeaTunnel构建高效数据采集框架,核心数据同步任务0故障运行!

白鲸开源

开源 数据同步 数据集成 Apache SeaTunnel 中控技术

使用EventLog Analyzer进行日志取证分析

运维有小邓

Yolo模型训练的第一个Step

Jason黄

yolo

天翼云第九代弹性云主机:让每一次计算快人一步

天翼云开发者社区

云主机

抢先体验智能测试时代,QA必备AI测试工具

测试人

人工智能 软件测试

有点意思!Java8后最有用新特性排行榜!

王磊

如何实现高效的日志收集与管理?

运维有小邓

为什么说 iPaaS 是企业数字化转型的加速器?

谷云科技RestCloud

数据处理 数据传输 集成平台 ipaas

火山引擎 veCLI 发布,开启智能开发新模式

火山引擎开发者社区

火山引擎

电能管理系统(源码+文档+讲解+演示)

深圳亥时科技

#开源

最新财务机器人品牌榜:5大维度评出谁是真正的智能助手

Techinsight

白鲸开源“创客北京2025”再摘殊荣,聚焦Agentic AI时代数据基础设施建设

白鲸开源

大数据 开源 DataOps 白鲸开源 WhaleStudio

APP弱网测试完整攻略【国庆出游特辑版】

优测云服务平台

弱网测试

Kafka4.0 可观测性最佳实践

观测云

kafka

亮相2025年服贸会,天翼云打造高质量算力服务新生态!

天翼云开发者社区

云计算

【RFID智能工具柜哪家好】企业如何选到高效可靠的工具管理系统?

斯科信息

斯科信息 RFID智能工具柜

K8s Application模式下的flink任务执行精要

天翼云开发者社区

k8s 计算

免费学习优秀作品!和鲸支持 2025 年第 18 届中国大学生计算机设计大赛大数据主题赛圆满收官!

ModelWhale

中国大学生计算机设计大赛 大数据主题赛

小份数GEO服务助力中小企业

跑一跑

AI geoai

Ubuntu 22 下 DolphinScheduler 3.x 伪集群部署实录

白鲸开源

Java 大数据 ubuntu 开源 Apache DolphinScheduler

MyEMS:重新定义人与能源的关系 —— 一场藏在数据里的能源管理革命

开源能源管理系统

开源 能源管理系统

Mermaid代码怎么变成流程图?6个Mermaid在线生成器盘点

职场工具箱

人工智能 流程图 Ai绘图 Mermaid AI生成流程图

Aloudata AIR 推出 AI 数据画布:「拖拽+对话」即可实现跨源数据加工与查询

Aloudata

数据分析 数据开发 智能开发 数据编织

高品质软件工艺_软件工程_Ben Linders_InfoQ精选文章