程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 軟件開發的管理和控制

軟件開發的管理和控制

編輯:Delphi

PS:本文是由半導結合國外資料和自己經驗總結的

懇請各位網友批評指正

發言人 semicon 

    軟件開發是一項復雜的工作,對於軟件開發的管理和控制,發

展出一門專門的學科:軟件工程。在這方面有許多的國家標准和

國際標准。但軟件工程更多的是從技術的角度來規范軟件開發的

管理和控制,本文試圖從管理者和實踐的角度來闡述一些軟件開發

的管理和控制所應遵循的基本原則。

    在軟件開發項目中經常出現二種極端情況:一種是創造了新的

生產率和質量的紀錄;一種則完全是一場災難,不是被取消就是拖

延很長時間。通過提煉這些成功和失敗的例子,軟件項目成功或失

敗的根本原因可能會更清晰一些。

    在討論這些原因之前,我們先來定義一下什麼情況可以稱為失

敗的軟件項目。

    1. 由於費用超支或計劃執行超時而終止。

    2. 完成計劃的時間或費用超過了原計劃的50%。

    3. 由於質量或性能上的原因引起和客戶的糾紛。

    下面我們將按其影響大小的順序排列說明5種錯誤的實踐方式。

 

錯誤1:沒有軟件開發的歷史數據

    缺乏軟件開發的歷史數據是大多數軟件項目失敗的關鍵所在,

這樣的結論也許使很多人感到吃驚,但事實就是如此。沒有一個可

靠的軟件開發的歷史數據會使項目經理,程序員,客戶對於軟件開發

的過程缺少清醒的認識。

        假設現在你正在管理一個軟件項目,而這個項目還沒有一

個公司在36個月內完成。作為一個負責的經理,你作了一個比較細

致和保守的估計,然後告訴你的客戶和你的手下說你認為這個項目

需要36―38個月完成。然而常常有這樣的情況發生:你的客戶和程

序員要求把時間壓縮到18個月。客戶一方面希望軟件盡早投入使用

而產生經濟效益,一方面也想壓縮項目時間作為一個討價還價的籌

碼;而程序員一方面可能過於自信,一方面盡早結束項目也能使他們

多賺點錢。而此時你的手頭上也沒有一個可靠的軟件開發的歷史數

據,在他們的壓力下你同意了18個月的計劃,於是一場災難開始了。

在項目的開始階段你發現計劃被拖延了,於是開始向程序員們施加

壓力,要求他們加快進度,程序員為了追求進度而不得不把其它指標

放在一邊,這些問題不斷的積累下來而項目經理卻蒙在鼓裡。到了項

目中後期這些質量問題會不斷暴露出來,而且互相關聯並且難以解決,

甚至有些是系統設計的問題,這時才發現好多模塊要推倒重來,18個月

完成計劃變成了天方夜譚。雖然上面只是一個虛擬的例子,但在實際

中這種情況比比皆是。問題的關鍵就在於軟件開發的歷史數據是反映

軟件開發隊伍的能力的標尺,沒有了這個標尺,就無法對軟件的開發過

程有一個清醒的認識。

 

錯誤2:不重視使用軟件費用估值工具軟件和計劃工具軟件

    國內的軟件公司大多數是處在“十幾條槍,一個手工作坊”

的水平上,在承接軟件開發的項目之後往往是幾位骨干人物討論之後

對費用和進度作一個大致的估計,然後就開始進入項目的執行。這種方

法帶有明顯的主觀性。在作一個精確的軟件費用估計和作一個比較現

實的項目開發計劃時需要考慮許多因素。對於一個大的軟件項目,用手

工作費用估計和作計劃是不能勝任的。現在國外市場上有大約50種商

業軟件費用估計工具包和大約100種商業項目計劃工具包,使用他們作

精確的估計比手工的估計更可能獲得成功。常用的軟件費用估計工具

軟件有Checkpoint,Colomo,EstiMacs,Price_s,Slim。 常用的項目管

理軟件有MS Project,Primavera,Project Manager*s Workbench,

Timeline。把這二種工具軟件聯合使用可以互為補充,幫助經理駁回

客戶和程序員的無理要求並且能精確的控制項目的執行。

 

 

錯誤3:忽視用戶的需求的變動

    盡管最初的用戶需求在簽定開發合同時已經包含在需求說明書中,

但在整個開發周期中期望用戶的需求一直保持不變是不大可能的,因

為用戶對於如何應用計算機軟件並沒有一個成熟的經驗。在項目進行

中用戶的需求會不斷的增長,一般情況下用戶的需求以每月1%的速率增

加,如果一個項目在12個月內完成,最終將有超過10%的改動,如果項目

要持續36個月,最後將增加1/3的功能。每月1%也只是一個經驗數據,一

個缺乏計算機應用經驗的用戶會更頻繁的改變和增加他的要求。因此

在作項目的費用和時間估計時一定要考慮用戶需求的變化。一種比較

明智的方法是在簽定開發合同時把用戶需求的改動和經濟利益掛鉤,如

果用戶增加或改動了需求,那麼軟件的交付日期可以推遲,費用也應增加。

 

錯誤4:忽視監督項目的進度

    到目前為止,軟件產業還沒有一個標准的項目進度的檢查標准。一

個比較清晰的尺度是用已經實現的軟件功能反映項目的進度。但這種方

法是否就是最科學的衡量標准,現在還不能定論,畢竟在一個軟件項目中

軟件功能只是一個主要而非全部的任務。因此一個項目經理在監控項目

執行時不應該只關注實現的軟件功能,還要關心文檔,測試,技術支持這些

因素。在實際工作中我們經常聽到經理或程序員說這樣的話:“項目已經

完成了90%”,這種結論帶有明顯的主觀性,一個優秀的項目經理不應該被

手下的判斷所迷惑,而應該按照一個比較客觀的標准去深入檢查。

 

錯誤5:忽視設計復查和代碼復查

    很多程序員習慣於這樣一種工作方式:只做不想。他們更關心每天

可以寫多少行代碼,完成幾個模塊。在這種態度下,他們都很不願意復查

自己的工作,而習慣於在軟件測試階段把隱藏的錯誤改正過來。但設計復

查和代碼復查在大型的軟件項目中已經有30年的應用歷史,而且已經被證

明在設計和代碼編寫階段的復查比軟件測試更能有效的消除錯誤,一些經

驗數據表明,在設計和代碼復查時發現的錯誤是在同等工作量下軟件測試

發現的錯誤的兩倍。

 

結論:

    軟件開發是一個帶有一定風險的工作,為了把風險降到最低, 在項目

的執行中項目經理必須嚴格的監督項目的進度,對程序員不願復查的壞習

慣要給予糾正。項目經理必須要從軟件開發的歷史數據和輔助工具包提

供的數據中作出精確的估計,在作估計時他應該考慮為不斷變化的用戶需

求留出富余量。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved