AICon 北京站 Keynote 亮点揭秘,想了解 Agent 智能体来就对了! 了解详情
写点什么

高品质软件工艺

  • 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:002222

评论

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

为企业全方位解决进销存管理难题的ERP套件

力软低代码开发平台

ChatGPT辅助编程

鲸品堂

ChatGPT 企业号 3 月 PK 榜

「资源广场」上线|以开发者为中心,打造开放资源共享平台

Jianmu

jenkins CI/CD 镜像仓库 容器镜像 建木

Apache IoTDB v1.0.1 发布|修复分区计算,优化集群启停流程

Apache IoTDB

IoTDB

【云图说】 | 第268期 初识开天企业工作台MSSE

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

Apache IoTDB v0.13.4 发布|优化监控功能

Apache IoTDB

IoTDB

Tuxera NTFS2023版读写NTFS磁盘功能工具

茶色酒

Tuxera NTFS2023

详细剖析|袋鼠云数栈前端框架Antd 3.x 升级 4.x 的踩坑之路

袋鼠云数栈

前端‘’

瓴羊Quick BI与Power BI之争:数据大屏优势明显

对不起该用户已成仙‖

使用metrics-server监控k8s的资源指标

tiandizhiguai

DevOps 微服务 云原生 k8s

ChatGPT潜能很大,问题也是

引迈信息

人工智能 低代码开发 应用开发 ChatGPT JNPF

新思科技为三星SDS公司开源使用和风险管理提供自动治理解决方案

InfoQ_434670063458

开源 软件开发 新思科技 软件安全

软件测试/测试开发 | 一步一步学测试平台开发-Vue restful请求

测试人

软件测试 自动化测试 测试开发 测试平台

Apache Flink 1.16 功能解读

Apache Flink

大数据 flink 实时计算

ICLR 2023 | 网易伏羲3篇论文入选,含强化学习、自然语言处理等领域

网易伏羲

引领云数仓创新浪潮 HashData闪耀PostgreSQL中国技术大会

酷克数据HashData

重磅通知!OpenAI又放大招:官宣开放API接口-3.5版本 需求大涨,机遇与挑战并存,谁能拔得头筹?

加入高科技仿生人

人工智能 开源 openai ChatGPT

下一站,冠军|走进2022 OceanBase数据库大赛12强

OceanBase 数据库

数据库 oceanbase

基于Python+UIautomation的WindowsGUI自动化测试实战(二)-计算器

Python 自动化测试 GUI UIaotumation

开源项目的演进会遇到哪些“坑”?KubeVela 从发起到晋级 CNCF 孵化的全程回顾

阿里巴巴云原生

阿里云 开源 云原生 KubeVela

程序调试利器——GDB使用指南

京东科技开发者

c++ debug gdb 企业号 3 月 PK 榜 程序检测

新思科技发布《2023年开源安全和风险分析》报告

InfoQ_434670063458

开源 新思科技 软件安全

数据库革新拐点已来——MatrixOne Beta Program Recap

MatrixOrigin

云原生 分布式数据库 MatrixOrigin MatrixOne

首批!阿里云容器服务 ACK 顺利通过信通院云原生混部项目评估

阿里巴巴中间件

阿里云 容器 云原生

what量化合约系统开发&源码丨clear合约量化系统开发技术(Demo案例)

I8O28578624

小程序容器作为软件中间件技术不可忽视的价值

FinFish

小程序容器 小程序技术 软件中间件

Soul 云原生网关最佳实践

阿里巴巴中间件

阿里云 云原生 实践 云原生网关

基于Python+UIautomation的WindowsGUI自动化测试实战(一)-记事本

自动化测试 GUI UIaotumation

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