軟件質量管理之困境與對策思考

相信在不少與軟件開發相關的企業內,質量管理部門與軟件開發部門在日常運作中形成了如下圖所示的“啞鈴形”組織結構。
開發部門執行質量管理部門所制定的流程,通過提供證據的形式將各種流程執行后的數據反饋給質量管理部門(包括缺陷率和各種流程記錄),質量管理部門根據這些數據監督流程的執行效果,并適時修訂流程。聯系兩大獨立部門的,是單薄的兩條線和一些部門間的會議。理想情況下,在質量管理部門與軟件開發部門間形成的是一個逆時針的良性質量管理環,理應獲得良好的效果。但在我看來,事實卻并非如此!

啞鈴形組織結構所存在的前提假設有兩個。其一,度量數據能真實地反映軟件質量。顯然,在軟件危機仍四伏的今天,業內并沒有找到完全能用于度量軟件質量的指標,這一假設對于現實多少顯得很是渺茫。其二,軟件開發部門能誠實地提供度量數據。對于目前國內職業化程度不高的狀態,這一假設也很難成立。

因此,啞鈴形組織結構所帶來的第一個困境是:將兩個部門分別變成了“看數據的”和“造數據的”兩大陣營。軟件開發部門為了達到質量管理部門所制定的“質量目標”,不時需要考慮如何將數據“造”好,哪怕“造”的手法有點低劣;而質量管理部門由于只是通過數據去了解軟件產品的質量狀況,除了不能理解有些指標為何忽上忽下外,更無法督促開發部門就質量問題的根源進行根治。

克服這一困境的對策我認為需要從打破組織結構開始。真正掌握軟件真實質量狀況的并不是來自質量管理部門的人,因為他們根本沒有觸及軟件源代碼,而是來自開發部門的軟件工程師。為此,兩部門的人員應當存在交集才更有可能做好質量管理工作,或許下圖的組織結構更有助于達到這一目的。

在新的組織結構中,兩部門交集中的人應來自開發部門的、對軟件質量管理有很好認識的技術專家,這些人來自下圖“能力金字塔”(參見《軟件開發:個人與團隊是永遠的核心》)的上面兩層。他們除了幫助質量管理部門了解軟件質量的真實狀況外,還應幫助開發部門理解質量問題的根源和尋求技術解決方案。交集中的人可以考慮采用虛擬團隊的形式進行組織與管理。


質量管理容易出現的另一大困境是:太強調流程與數據,而忽視質量管理很重要的內容是幫助工程師改善工作習慣(比如編程習慣)和提高開發環境的工作效率(比如項目的編譯效率、單元測試的實施效率)。在這種困境之中,質量管理活動更多地表現為“鋼性” — 達到設定指標或沒有達到,而缺乏應有的“柔性”理解。雖然“產品質量源于過程控制”這一思想被業界廣泛認同,但卻仍容易忽視將工程師的工作習慣和開發環境的效率納入到質量管理的范疇之中,這也是造成不少質量困境的關鍵因素。對于這兩方面內容的重要性,無論如何強調也不為過。

最后,我認為質量管理應更多關注于實踐,而非度量。由于軟件開發的特殊性本質,我們難以尋找到有效的度量手段,與其在這方面毫無建樹,不如花更多的時間去建立適合自己的實踐方法,并將這些實踐融入到工程師的工作習慣和開發環境中去。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449825.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449825.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449825.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

GDI+用PNG圖片做半透明異型窗口

{*******************************************************}{ }{ GDI用PNG圖片做半透明異型窗口 }{ }{ 版權所有 (C) 2008 QQ:…

java Spring Boot中使用Swagger2構建API文檔

1、添加Swagger2的依賴 在pom.xml中加入Swagger2的依賴 <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.2.2</version> </dependency> <dependency><groupId&g…

什么是 FreeMarker

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 轉自官方文檔&#xff0c;只是記錄下官方在線手冊地址&#xff1a;http://freemarker.foofun.cn/ FreeMarker 是一款 模板引擎&#xff…

TP函數

U方法用于完成對URL地址的組裝&#xff0c;特點在于可以自動根據當前的URL模式和設置生成對應的URL地址&#xff0c;格式為&#xff1a;U(地址,參數,偽靜態,是否跳轉,顯示域名);在模板中使用U方法而不是固定寫死URL地址的好處在于&#xff0c;一旦你的環境變化或者參數設置改變…

爬蟲——————爬取中金所,深交所,上交所期權數據

先從深交所開始&#xff1a;直接上傳源碼&#xff1a; from bs4 import BeautifulSoup from lxml import etree import pandas as pd import akshare as ak import datetime import requests import csv from contextlib import closing import time from urllib.request impo…

linux下的C語言開發

linux下的C語言開發&#xff08;開篇&#xff09; 在很多人的眼里&#xff0c;C語言和linux常常是分不開的。這其中的原因很多&#xff0c;其中最重要的一部分我認為是linux本身就是C語言的杰出作品。當然&#xff0c;linux操作系統本身對C語言的支持也是相當到位的。作為一個…

sql語法學習

本人數據庫目前使用的是sql&#xff0c;主要是使用python語言&#xff0c;然后用pandas調用&#xff08;真的很方便&#xff09;。所以就總結一下&#xff0c;也為自己以后調用數據查找方便使用。 導入包 from sqlalchemy import create_engine import pymssql連接數據庫 con…

C 溫故知新 之 指針:數組指針、字符串指針、函數指針

一、數組指針 1.指向數組元素的指針 1、定義&#xff1a;還是那句話通俗的說指針就是地址   數組指針 &#xff1a;數組的起始地址 數組元素指針&#xff1a;數組元素的地址 2、定義一個指向數組元素的指針變量的方法&#xff0c;與之前介紹的指針變量相同。 例如&#…

mysql 查找配置文件 my.ini 位置方法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 個人備注&#xff1a;不顯示文件類型時&#xff0c;my.ini 文件名就叫作 my&#xff0c; 文件屬性才顯示 ini。 找到 my 文件看屬性就知…

嵌入式操作系統內核原理和開發

嵌入式操作系統內核原理和開發&#xff08;開篇&#xff09; 操作系統是很多人每天必須打交道的東西&#xff0c;因為在你打開電腦的一剎那&#xff0c;隨著bios自檢結束&#xff0c;你的windows系統已經開始運行了。如果問大家操作系統是什么&#xff1f;可能有的人會說操作…

Java中對象比較

在Java之中不僅僅存在兩個數字與兩個字符串之間的比較&#xff0c;還存在兩個對象之間的比較。 眾所周知&#xff0c;兩個數字之間的比較我們使用“”&#xff0c;兩個字符串之間的比較我們使用“equals()”&#xff0c;那么兩個對象之間如何進行比較呢&#xff1f;既然要進行兩…

如何安裝pfbprophet

最近facebook出來了一個軟件包&#xff0c;可以用于時序數據預測&#xff0c;但是安裝上&#xff0c;遇到問題不小&#xff0c;本人也在安裝中遇到大大小小各種問題&#xff0c;然后查了各種資料&#xff0c;進行研究&#xff0c;終于找到一個最簡單的辦法。 不廢話&#xff0…

JeeSite 4.0 (1.0)開發環境部署運行

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 環境要求 1、Java SDK 1.8 下載 2、Eclipse IDE for Java EE Mars 2 (4.5.2) 下載&#xff08;依Eclipse舉例&#xff0c;IDEA雷同。&…

dojo 七 DOM dojo/dom

官方教程&#xff1a;Dojo DOM Functions對dom的使用&#xff0c;需要引用包dojo/dom。1.獲取節點&#xff0c;dom.byIdbyId中既可以傳遞一個字符串&#xff0c;也可以傳遞一個節點對象 require(["dojo/dom", "dojo/domReady!"], function(dom) {function …

quantaxis中使用docker安裝,出現的問題

本人在使用docker安裝quantaxis時&#xff0c;經常發生docker報錯&#xff0c;原因是與 wsl2沖突。之前不知道原因&#xff0c;直接就是卸載重裝&#xff0c;累死我了。現在知道后&#xff0c;將解決方案記下&#xff0c;幫助后來者繼續前行。 管理員打開cmd&#xff0c;輸入 …

并發編程(多進程1)

一 multiprocessing模塊介紹 python中的多線程無法利用多核優勢&#xff0c;如果想要充分地使用多核CPU的資源&#xff08;os.cpu_count()查看&#xff09;&#xff0c;在python中大部分情況需要使用多進程。Python提供了multiprocessing。 multiprocessing模塊用來開啟子進…

LInux 下文件包的使用

1 .deb   http://wiki.ubuntu.org.cn/MySQL%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97 2 .rpm

@RequiresPermissions 注解說明

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 RequiresAuthentication 驗證用戶是否登錄&#xff0c;等同于方法subject.isAuthenticated() 結果為true時。 RequiresUser 驗證用戶…

千位分隔符轉換為數字

最近下載了akshare里面的數據&#xff0c;然后發現有些數據格式為1,300這種格式&#xff0c;為str格式&#xff0c;但是又無法直接強制轉換之類方式&#xff0c;特地尋求答案&#xff0c;并做筆記&#xff0c;留待自己與后來者一起避坑。 from locale import * atof(123,456)…

一本通1629聰明的燕姿

1629&#xff1a;聰明的燕姿 時間限制: 1000 ms 內存限制: 524288 KB【題目描述】 城市中人們總是拿著號碼牌&#xff0c;不停尋找&#xff0c;不斷匹配&#xff0c;可是誰也不知道自己等的那個人是誰。 可是燕姿不一樣&#xff0c;燕姿知道自己等的人是誰&#xff0c;…