1. 程式人生 > >軟體開發人員的組織與分工

軟體開發人員的組織與分工

大型軟體專案需要很多人的能力合作,花費一年或數年的時間才能完成。為了提高工作效率,保證工作質量,軟體開發人員的組織、分工與管理是一項十分重要和複雜的工作,它直接影響到軟體專案的成功與失敗。首先,由於軟體開以人員的個人素質與差異很大,因此對軟體開發人員的選擇、分工十分關鍵。1970年,Sackman對12名程式設計師用兩個不同的程式進行試驗,結論是:程式排錯、除錯時間差別為18:1;程式編制時間差別為15:1;程式長度慶功別為6:1;程式執行時間差別為13:1。近年來,隨著軟體開發方法的提高、工具的改善,上述差異可能會減小,但軟體人員的合理選擇及分工,充分發揮每個人的特長和經驗顯然是十分重要的。其次,因為軟體產品不易理解、不易維護,因此軟體人員的組織方式十分關鍵。一個重要的原則是,軟體開發人員的組織結構與軟體專案開發模式和軟體產品的結構相對應,這樣可以達到軟體開發的方法、工具、與人的統一,從而降低管理系統的複雜性,有利於軟體開發過程的管理與質量控制。按樹形結構組織軟體開發人員是一個比較成功的經驗。樹的根是軟體專案經理和專案總的技術負責人。理想的情況是專案經理和技術負責人由一個人或一個小組擔任。樹的結點是程式設計師小組,為了減少系統的複雜性、便於專案管理,樹的結點每層不要超過7個,在此基礎上儘量降低樹的層數。程式設計師小組的人數應視任務的大小和完成任務的時間機時定,一般是2~5人。為降低系統開發過程的複雜性,程式設計師小組之間,小組內程式設計師之間的任務介面必須清楚並儘量簡化。

  按“主程式設計師”組織軟體開發小組是一條比較成功的經驗。“主程式設計師”應該是“超級程式設計師”。其他成員,包括程式設計師、後備工程師等,是主程式設計師的助手。主程式設計師負責規劃、協調和審查小組的全部技術活動。程式設計師負責軟體的分析和開發。後備工程師是主程式設計師的助手,必要時能代替主程式設計師領導小組的工作並保持工作的連續性。軟體開發小組還可以根據任務需要配備有關專業人員,如資料庫設計人員、遠端通訊和協調,提高了工作效率。這種形式的成敗主要取決於程式設計師的技術和管理水平。除了按主程式設計師負責的程式設計師小組組織開發人員外,還可以按“無我程式設計”建立軟體民主開發小組。這各組織形式強調組內成員人人平等,組內問題均由集體討論決定。這種組織形式有利於集思廣益、互相取長補短,但工作效率比較低。

  軟體專案或軟體開以小組可以配置若干個祕書、軟體工具員、測試員、編輯和律師等到。祕書負責維護和軟體配置中的文件、原始碼、資料及所依附的各種磁介質;規範並收集軟體開發過程中的資料;規範並收集可重用軟體,對它們分類並提供檢索機制;協助軟體開發小組準備文件,對專案中的各種引數,如程式碼行、成本、工作進度等,進行估算;參與小組的管理、協調和軟體配置的評估。大型軟體專案需專門配置一個或幾個配置管理人員,專門負責軟體專案的程式、文件和資料的各種版本控制,保證軟體系統的一致性與完整性。軟體開發小組內部和小組之間經常交流情況和資訊,以便減少誤解,刪除軟體中的個人特徵,提高軟體的質量.

  軟體專案的開發實踐表明,軟體開發各個階段所需要的技術人員型別、層次和數量是不同的。軟體專案的計劃與分析階段只需要少數人,主要是系統分析員、從事軟體系統論證和概要設計的軟體高階工程師和專案高階管理人員。概要設計時要增加一部分高階程式設計師,詳細設計時,要增加軟體工程師和程式設計師,在編碼和測試階段還要增加程式設計師、軟體測試員。在此過程中軟體開發管理人員和各類專門人員逐漸增加,到測試階段結束時,軟體專案開發人員的數量達到頂峰。軟體執行初期,參加軟體維護的人員比較多,過早解散軟體開發人員會給軟體維護帶來意想不到的困難。軟體執行一段時間以後,由於軟體開發人員參與糾錯性維護,軟體出錯率會很快衰竭,這時軟體開發人員也就可以逐步撤出。如果系統不做適應性或完善性維護,需要留守的維護人員就不多了。上述人力資源安排類似下所示Rayleigh-Norden曲線。根據Putnam得出的軟體專案開發工作量與開發時間的四次方成反比的結論,得出軟體開發的人員-時間折衷定律:在時間允許的情況下,適當減少人員會提高工作效率,降低軟體開發成本。F.Brooks從大量的軟體開發實踐中發現:“向一個已經延期的軟體專案追加開發人員,可能使專案完成的更晚。”這從另一個角度說明軟體開發寧可時間長一點,人員少一點。這樣可以大大減少人員之間的通訊開銷,工作效率會更高些。

  由此可見,在軟體開發過程中,人員的選擇、分配和組織是涉及軟體開發效率、軟體開發進度、軟體開發過程管理和軟體產品質量的重大問題,必須引起專案負責人的高度重視。

相關推薦

軟體開發人員組織分工

大型軟體專案需要很多人的能力合作,花費一年或數年的時間才能完成。為了提高工作效率,保證工作質量,軟體開發人員的組織、分工與管理是一項十分重要和複雜的工作,它直接影響到軟體專案的成功與失敗。首先,由於軟體開以人員的個人素質與差異很大,因此對軟體開發人員的選擇、分工十分關鍵。1970年,Sackman對12名程式

談談軟體開發人員基本要求

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

2019 年軟體開發人員必學的程式語言 Top 3

AI 前線導讀:這篇文章將探討程式語言世界的現在和未來,這些語言讓新一代軟體開發者成為這個數字世界的關鍵參與者,他們讓這個世界變得更健壯、連線更加緊密和更有意義。開發者要想在 2019 年脫穎而出,這三門語言一定要關注。 作為軟體開發者,我們曾經寫過的或者正在寫的每一行程式碼都對我們的漸進式互聯世界負有重

2019年軟體開發人員必學的程式語言Top 3

  策劃編輯 | Natalie作者 | Pramod Chandrayan譯者 | 無明編輯 | NatalieAI 前線導讀: 這篇文章將探討程式語言世界的現在和未來,這些語言讓新一代軟體開發者成為這個數字世界的關鍵參與者,他們讓這個世界變得更健壯、連線更加緊密和更有意義。開發者要想在

軟技能——如何成為優秀的軟體開發人員

你是否經常製造各種bug百思不得其解? 你是否常常效率低下而不得不通過加班來彌補? 你是否常常在迷失技術的海洋中,不知所措? 你是否對自己的職業生涯感到迷茫,毫無計劃? 你是否對自己的腹部日漸隆起而羞愧難當? 那麼,來看看《軟技能-程式碼之外的生存指南》吧!這是

軟體開發人員是一種很棒的職業選擇的五大理由

5 REASONS 1 Creative. If you ask people to name creative jobs, chances are they will say things like writer, musician or painter. But few people know that

高效開發偉大且成功產品, 最重要的一步: 開發人員找到自己匹配的程式語言

2017.8.19, Ken Fang, 深圳 做 IT 軟體開發的, 建議都應該要定下心來, 深度的思考, 直到找到那個或那些最適合自己的程式語言為止。 因為, 每個程式語言, 都有它背後獨特的思維, 所想要真正解決的問題, 甚至是理論基礎。 也就是說,

軟體開發:個人團隊是永遠的核心

開發團隊效能模型有什麼意義呢?首先,該模型告訴我們,如果真的要在軟體行業找“銀彈”,所找到的“銀彈”應是“什麼模樣”的。其次,從模型中可以看出,時下流行的SCRUM敏捷軟體開發方法論只是流程的一部分,而不是高質高效軟體開發的全部內容。也就是說,團隊即使對SCRUM這一方法論駕輕就熟,離高質高效軟體開發這一目標

國內IT軟體開發人員現狀

         首先在這裡討論的是國內的大陸地區。在今天這個中國IT環境下,開發人員出路何在?一個優秀開發人,應該有致力於編寫優雅程式碼,讓別人讀得懂,具有可讀性,可測試性的程式碼,不僅僅是可以執行的程式碼。所以經常需要對現有的程式碼重構,包括自己寫的程式碼。而現在國內的開發人員這方面的素質一直缺乏,就更難

軟體開發人員的簡歷專案經驗怎麼寫?

許多學習軟體開發的學員不知道如何在個人簡歷中如何填寫“專案經驗”或“專案描述”,最近接觸的一些學習Java的學生在簡歷中,往往專案經驗及描述都只能寥寥幾筆完事,這樣的簡歷肯定是不吸引招聘企業HR的。

軟體開發人員的簡歷專案經驗

軟體開發人員如何才能寫好個人簡歷中的專案經驗及描述呢? 首先你要知道招聘企業想從你的專案經驗裡的描述中獲得什麼資訊?他們真的在乎你的專案用在了那一行業?為這個行業提高了多少效率嗎?實際上對方需要知道的無外乎以下幾點: 1、你在實際開發中用過什麼技術、用了多久;

架構設計雜談001-軟體開發人員的成長之路

軟體開發人員的成長路線-1 從技術方面來看,基本上就三條主要路線: 1、純技術路線: 高階開發人員 →系統設計人員→架構師→資深技術專家/資深架構師 2、技術管理路線: 研發型技術管理高階開發人員→ 系統設計人員→架構師 →技術管理人員→CTO/技術副總 專案型技術管理高階開發人員 →系統設計人員

基於Java軟體開發平臺設計實現溫溼度檢測系統

**基於Java軟體開發平臺設計與實現溫溼度檢測系統** 基於Java軟體開發平臺設計與實現溫溼度檢測系統mysql資料庫建立語句 基於Java軟體開發平臺設計與實現溫溼度檢測系統oracle資料庫建立語句 基於Java軟體開發平臺設計與實現溫溼度檢測系統sqlserve

作為軟體開發人員應該知道的最基本的東西

鑑於經常看到很多傻傻的問題,比如xx語言幹什麼用的,xxx語言是不是落伍了?(不過說實在的,這些問題初學者都會有.)  我在這裡說說開發人員應該知道的一些東西。但是這些只是我在平日裡看到和想到的。難免有所偏差,請見諒.  軟體開發,是一個綜合性的活計。軟體開發,並不僅僅是編寫程式碼.學會了用c這些程式語言進行

傳統音箱軟體開發人員的轉型:從藍芽音箱到智慧音箱

1. 因何而變 近年Alexa echo、Google assistant等搭載遠距離語音助手的智慧音箱得到市場的認可。年初蘋果Homepod智慧音箱正式出貨,標誌著以高音質為賣點的智慧音箱開始接受市場的考驗。 如果說Alexa echo是音箱產品的“智慧”屬性

軟體開發人員應該知道的最基本的東西

鑑於經常看到很多傻傻的問題,比如xx語言幹什麼用的,xxx語言是不是落伍了?(不過說實在的,這些問題初學者都會有.)  我在這裡說說開發人員應該知道的一些東西。但是這些只是我在平日裡看到和想到的。難免有所偏差,請見諒.  軟體開發,是一個綜合性的活計。軟體開發,並不僅僅是編寫

做一個運動控制軟體開發人員需要具備的條件!

     運動控制這一行的軟體比較特殊,主要體現在: 1.專業性強,其需要的知識往往是自動化專業方面的知識,如一些控制原理或規劃演算法,當然專業性的概括還不只這些,要做好運動控制,沒有在這一行的一定專業知識的積累也是不行的,多少要懂得一些機械方面的知識 2.理論特色明顯 數學

軟體測試的組織管理

作為軟體開發的重要環節,軟體測試越來越受到人們的重視。隨著軟體開發規模的增大、複雜程度的增加,以尋找軟體中的錯誤為目的的測試工作就顯得更加困難。然而,為了儘可能多地找出程式中的錯誤,生產出高質量的軟體產品,加強對測試工作的組織和管理就顯得尤為重要。  從軟體的生存週期看,測試

資深軟體開發人員分享對新手程式設計師的建議

  資深軟體開發人員分享的一些關於專業化程式設計的經驗和教訓,這些經驗教訓都是經過多年曆練總結得出的。  如果你剛進入軟體開發程式設計世界,那麼得益於曾參加過得iOS開發培訓,你已經具備了一定的基礎知識。但是真正的開發業務工作又和在學校程式設計不同,這是你不可能從大學課程或

如何量化考核軟體開發人員績效

軟體人員管理,一向被認為是一件難題。尤其是年中年底的評價問題,涉及到加工資,發獎金,稍有差池,就會民怨沸騰,來年是該走的不走,不該走的全走了。 在開始一個軟體專案之前,公司領導要與該專案主管對需要完