以前这本书是读过的,现在再来读又是别有一番滋味。特别是读到什么是质量,质量的重要性的时候,真的为作者的精辟见解而拍案惊奇。

质量是什么?质量不是一个空洞的概念,质量是符合需求的能力。具体的说,就是符合某个用户的需求的能力。因为需求并不是从天上直接掉下来的,是我们进行了需求获取,需求分析得到的。软件的需求不是所有的需求涉众都有同样的权重。很早以前听到Berry Boem将的Value-Based需求工程的时候,他的主要观点也是说每个涉众有不同的值。换句话说:老板的意见才是主要的,新来的小兵提的东西根本就不会怎么考虑。

因此,根据我们需求获取、需求分析的结果,我们讨论的质量就是对需求主导客户的价值,因为只有满足他们的要求,你才能够挣到钱。

因此,对于软件项目而言,能够顺利的抓住主要涉众的需求,并和他们搞好关系,后续的软件开发得到的质量才能是有保证的;对于软件产品而言,因为涉众很分散,因此,需要对客户进行分类,规划产品主要满足那一类客户的需求,对这一类客户的调研和了解程度,决定了日后开发出来的软件质量究竟会是什么样的?

具体衡量一个软件质量,可能会有很多种衡量方法,比如说:缺陷率小,功能多,代码是否可重用,性能高,成本低,开发速度快,用户友好等等。由于需求是偏向于特定的用户或者用户群的,因此,一个软件对某类用户是高质量的,可能会对其他用户来说是低质量的。因此,本质上来说,软件开发本身的决策就不是民主的,而是决策的过程。因此,有策略的对软件各个部分提供适合的质量,是合理的。
      
       如果看不到这一点,只能说明你太幼稚了。

好,现在到了一个比较关键的点。如果想提高软件的质量(当然,也就是提高该产品对某类客户的价值),需要如何做呢?这就要
       1. 了解实现质量的动机(为什么要这么做?钱、权、名、长久之际等等。人总有万千欲望,要真的去探究人家为什么要这么做,就是去洞察别人的欲望在什么地方,满足它。)
       2. 了解质量的价值(我这么做,对我有什么好处?把收益给搞清楚,只有知道收益和负债,才能明白是否需要这么做呀)
       3. 懂得如何实现质量。(这个就牵涉到具体的执行层面了。在不同的软件亚文化里面,也就是通常所说的各种级别的公司里头,怎么做呢?因为每种文化或者说习惯也好,都是有种拒绝接收改变的趋势。这个只要是人的组织都是这样。并且官越大,越不想改变。而改变软件开发文化,很多时候不是一个人或者一个小组能够决定的事情。因此,更需要有高超的领导能力,以及洞察能力。)
      
       要说的是:每种模式都可以取得成功。本质上,软件开发质量取决于三个方面:用户的需求难度、解决的问题难度、原有的开发模式。因地制宜的选择策略本来不是一件难事,难的就在于该进行改变的时候,因为一味考虑短期利益,而忽略了长期的目标,导致最后的竞争力缺乏。
   
        平衡之术,决策之术,真是在何时何地都会遇到呀!

读《质量·软件·管理》有感相关推荐

  1. 读《豆瓣的基础架构》有感

    豆瓣整个基础架构可以粗略的分为在线和离线两大块.在线的部分和大部分网站类似:前面用LVS做HA,用Nginx做反向代理,形成负载均衡的一 层:应用层主要是做运算,将运算结果返回给前面的用户,DAE平台 ...

  2. 15读《算法基础》有感——决策树

    15读<算法基础>有感--决策树 学完本学期的<算法设计与分析基础>,想对"决策树"做进一步的了解,于是读了Rod Stephens<算法基础> ...

  3. simplify逆向_Simplify-SDK-一种以代码形式管理基础架构的框架。

    simplify逆向 When working with AWS services, you've got several choices to build and deploy your lambd ...

  4. View 5.1 重装上阵(4—基础架构篇)

    从底层架构方面来看,VIEW 5.1最大的改进在于引入了Content-Based Read Cache(CBRC) 技术,大大降低了部署桌面虚拟化所带来的IOPS风暴,同时大大降低了对于存储的压力和 ...

  5. 聊聊 Kafka: Kafka 的基础架构

    一.我与快递小哥的故事 一个很正常的一个工作日,老周正在忙着啪啪啪的敲代码,办公司好像安静的只剩敲代码的声音.突然,我的电话铃声响起了,顿时打破了这种安静. 我:喂,哪位? 快递小哥:我是顺丰快递的, ...

  6. 机器学习的中流砥柱:用于模型构建的基础架构工具有哪些?

    本文转载自公众号"读芯术"(ID:AI_Discovery) 人工智能(AI)和机器学习(ML)已然"渗透"到了各行各业,企业们期待通过机器学习基础架构平台,以 ...

  7. 数据中心基础架构 22 年演进

    01 前言 当今世界正处在信息技术(IT)创新的黄金时代.由机器学习.物联网和大规模可扩展应用支持的云计算.移动应用.大数据分析的巨大力量正在重塑商业和社会的方方面面.而这场IT复兴的中心,则是超大规 ...

  8. k86跟mysql_MySQL【基础架构】

    一.前言 平时我们使用数据库,看到的通常都是一个整体. select * from T where ID=10: 对于上述语句,我们看到的只是输入一条语句,返回一个结果,却没有关注这条语句在 MySQ ...

  9. 译 | .NET Core 基础架构进化之路(一)

    原文:Matt Mitchell 翻译:Edi Wang 随着 .NET Core 3.0 Preview 6 的推出,我们认为简要了解一下我们基础设施系统的历史以及过去一年左右所做的重大改进会很有用 ...

  10. 【mysql技术内幕1】mysql基础架构-一条SQL查询语句是如何执行的

    文章目录 1 一条SQL查询语句是如何执行的 2 mysql体系结构 3 InnoDB存储引擎 4 总结 1 一条SQL查询语句是如何执行的 ​ 通常我们使用数据库,都是将数据库看成一个整体,我们的应 ...

最新文章

  1. python迭代器面试题_Python面试题之生成器/迭代器
  2. 在Windows 7下安装Oracle 11g的解决方法
  3. 【算法】集成学习原理
  4. nyoj 945 Just do it(莫队算法)
  5. python md5_Python提取MD5
  6. Spark SQL 1.x之SQL Context使用
  7. springMVC——SSM整合(IDEA 搭建简单 ssm 框架最详细最简单教程)
  8. 影响力-你为什么说是
  9. dvm与art的区别_Android运行时– DVM与ART,AOT与JIT
  10. 薛兆丰经济学讲义 简述
  11. 技术讲座:蔡学镛之架构师相关培训
  12. 测序深度和覆盖度(Sequencing depth and coverage)
  13. 宿骆氏亭寄怀崔雍崔衮
  14. 1分钟学会PS背景虚化
  15. IEEE 754浮点数标准详解
  16. rocketMq监控平台界面
  17. Qt添加菜单栏和工具栏
  18. oracle1034错误,联接oracle数据库,返回-1034,搞了两天没搞定!
  19. 决定考BEC商务英语
  20. GUI 图形用户界面编程(七)-女友生气,你是选择亚索还是女友?

热门文章

  1. 关于机器人状态估计(13)-线性代数有多重要?18.06总结
  2. linux ide sata硬盘,Linux 下SATA与IDE硬盘区别
  3. 工程师如何拥抱数字化转型?
  4. 数字化转型思考的延伸问题
  5. java语言基础知识笔记
  6. discuz论坛首页默认显示单个特定的版块,及自定义论坛首页固定标题
  7. Java如何使用直接内存?
  8. 关于Direct3D11中字体的思考
  9. Plants vs. Zombies
  10. 转载==数论倒数,又称逆元(我整个人都倒了( ̄﹏ ̄))