《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-07 项目质量(Quality)管理

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

本节书摘来自异步社区《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》一书中的第2章,第02-07节,作者 邱毅凌,更多章节内容可以访问云栖社区“异步社区”公众号查看。

02-07项目质量(Quality)管理

screenshot

把项目在预算内准时完成,并不代表就可以顺利结项。如果质量不符合要求,在改善之前,客户是不会愿意当冤大头验收的。

嵌入式系统包含软件与硬件,硬件的质量比较容易理解,例如:结构接缝是否密合、各零件的功能是否正确运行。但软件是逻辑实体,不容易描述其质量等级,软件问题基本上是由人为差错所引起,且问题隐藏在千变万化的逻辑组合中,若等到开发告一段落后才想要去一一找出所有问题,困难度会非常高。软件质量管理的关键是预防重于治疗,尽可能在规划阶段就要做好‘质量计划’,不能全靠事后检查。

一般以研发为主的公司,虽然都知道质量对产品的重要性,但在实际运行时,往往又无视质量单位应发挥的作用。PMI注意到了这件事情,因而在项目管理知识体系中特别提到:在项目运行的过程中,质量单位应该全程参与,不只具有发言权,面对攸关项目的决策,甚至应该具有否决权。

在软件开发项目里更是如此。道理很简单,研发单位根据流程执行产品开发,但最终产品的质量(甚至可上推到项目的成败)却应该是质量单位的责任1。唯有如此,才能避免研发单位陷入‘球员兼裁判’的盲点。

投影片中列举了不少项目质量的思想,无论你是项目经理、工程师或测试人员,只要身为项目的一员,都请务必了解质量的精髓。质量管理必须贯穿整个项目,没有质量观念的团队,将会在项目后期付出沉重的代价。

质量系统是门大学问,市面上有不少体系复杂的质量系统,但我一向认为只需要弄清质量系统的基本概念即可,实际上则必须根据项目的实际状况来制定该项目的质量策略。

screenshot

一般公司或项目团队总是弄不清楚QA、QC、Testing-Team这些名词的定义,所以老是会把团队冠上名不副实的名字。最常见的就是称呼只负责测试的团队为QA,但实际上,公司内部根本没有任何单位负责执行真正QA该做的事。

质量保证(QA)主要目的就是确保产品在既定进度与预算下,能圆满达成预期质量水平与可靠度目标。QA单位的工具就是稽核(Audit),任何项目流程中的工作,从计划拟定、模块设计、Code Review、测试计划、测试涵盖率、生产流程、备料计划等,QA单位都可以进行稽核。特别是项目团队完成了某个里程碑、提出了某项变更请求,或是项目即将进入下一个阶段时,QA单位都应该主动介入稽核,避免问题被拖延到项目后期,将会变得更棘手。

我们知道工程师都是很爱面子的,所以QA单位在执行稽核时一定要注意态度,不能自以为是RD的上级单位,造成团队彼此的冲突。PM更必须注意RD与QA间的关系,并尽可能参加所有Audit Meeting。

很可惜,本公司中并没有‘真正’的QA,但项目里不能没有QA,所以我的项目就只能由PM及其他主管包办代替。因为由主管来执行Audit(请注意,Audit和Review是不同的概念,前者主要关注的是流程与结果,而Review则较为技术性,关注的是detail),工程人员也较容易配合。本公司因人力资源不足,项目执行者也只能从权。

PMP提到了许多QA的工具,基本上和软件工程提到的SQA概念一致,各位有兴趣可以找来看一看。

screenshot

QC和QA的职责完全不同,QA是专注在流程的正确性,而QC则必须确定项目结果与质量标准是否相符,同时确定消除不符的原因和方法。以软件开发来说,QC就是根据质量标准,设法找出某软件版本的所有bug,并持续追踪每个bug被处理的状态。

软件测试有其方法论,QC必须有系统、有方法、有计划地执行测试工作,绝对不是乱枪打鸟。当找到bug后,必须利用bug管理工具妥善管理,每个bug的处理流程都必须记录下来。此外,bug管理软件也能自动产生报表,让项目经理可以判断各个版本间质量水平的趋势。

最后再强调一次,项目团队不能过度依赖QC的测试,如同RD无法写出没有bug的程序,测试团队也无法找出所有的 bug。质量工作一定要在项目前面执行,如果等到后期才来做,势必得付出相当可观的成本。

并非所有公司都能言行一致,虽然口头上说质量第一,但组织中却无法落实质量系统。我们在业界工作,还是要让自己的项目尽量可以站在质量的保护伞下,以下是我的经验和建议。

  • 质量活动必须经过规划,同时符合项目需求,并明文公布
  • 推广‘提高质量,就是尊重客户’的理念
  • 质量活动必须尽早启动
  • 质量小组尽量可以独立存在
  • 质量人员必须经过培训
  • 工程人员必须能够理解,质量人员也是为了项目成功而努力着,并非存心挑剔或找麻烦
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5月前
|
存储 监控 数据库
Django 后端架构开发:高效日志规范与实践
Django 后端架构开发:高效日志规范与实践
88 1
|
3月前
|
Rust 前端开发 JavaScript
Tauri 开发实践 — Tauri 日志记录功能开发
本文介绍了如何为 Tauri 应用配置日志记录。Tauri 是一个利用 Web 技术构建桌面应用的框架。文章详细说明了如何在 Rust 和 JavaScript 代码中设置和集成日志记录,并控制日志输出。通过添加 `log` crate 和 Tauri 日志插件,可以轻松实现多平台日志记录,包括控制台输出、Webview 控制台和日志文件。文章还展示了如何调整日志级别以优化输出内容。配置完成后,日志记录功能将显著提升开发体验和程序稳定性。
135 1
Tauri 开发实践 — Tauri 日志记录功能开发
|
8天前
|
人工智能 监控 算法
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
3D-Speaker是阿里巴巴通义实验室推出的多模态说话人识别开源项目,结合声学、语义和视觉信息,提供高精度的说话人识别和语种识别功能。项目包含工业级模型、训练和推理代码,以及大规模多设备、多距离、多方言的数据集,适用于多种应用场景。
98 18
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
|
3天前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
2月前
|
监控 开发者
鸿蒙5.0版开发:使用HiLog打印日志(ArkTS)
在HarmonyOS 5.0中,HiLog是系统提供的日志系统,支持DEBUG、INFO、WARN、ERROR、FATAL五种日志级别。本文介绍如何在ArkTS中使用HiLog打印日志,并提供示例代码。通过合理使用HiLog,开发者可以更好地调试和监控应用。
158 16
|
2月前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
56 1
|
3月前
|
开发框架 缓存 安全
开发日志:IIS安全配置
开发日志:IIS安全配置
开发日志:IIS安全配置
|
3月前
|
开发工具 git
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
46 1
|
5月前
|
人工智能 Java Spring
Spring框架下,如何让你的日志管理像‘AI’一样智能,提升开发效率的秘密武器!
【8月更文挑战第31天】日志管理在软件开发中至关重要,不仅能帮助开发者追踪问题和调试程序,还是系统监控和运维的重要工具。在Spring框架下,通过合理配置Logback等日志框架,可大幅提升日志管理效率。本文将介绍如何引入日志框架、配置日志级别、在代码中使用Logger,以及利用ELK等工具进行日志聚合和分析,帮助你构建高效、可靠的日志管理系统,为开发和运维提供支持。
79 0
|
2月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
396 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板