• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    論軟件開發中的三種重要角色

    發布: 2008-2-03 16:29 | 作者: 劉天北 | 來源: 不詳 | 查看: 160次 | 進入軟件測試論壇討論

    領測軟件測試網  因為人的靈魂中,有著某種三頭政體,或者說,三個對手,三重政權,它之擾亂這一共和國的安寧,并不減于它之攪擾羅馬的國制。

      ——托馬斯·布朗 《醫生的宗 教》I.19

      1

      “三”據說是玄學家們偏愛的數字。對于這種怪癖或狂熱,我只能自認免疫力不足:在“三段論、三權分立、三位一體...”這個似乎無休止的列表上,我甚至想再加上一點兒自己的貢獻——在我看來,通常稱為“軟件工程”的學科至少包括三個重要的組成部分:產品設計、系統構架設計和項目控制,而相應地,軟件開發隊伍中也有三個重要角色:產品經理、系統架構師和項目經理。

      《人月神話》一書的讀者都能理解“概念完整性”對于軟件系統的重要性。概念完整性指的是,軟件系統作為一個整體,對于使用者體現出的概念上的一致性、清晰度和簡潔度。按照該書作者Brooks的看法,概念完整性是設計軟件時需要考慮的首要因素,而為了確保概念完整性,應該要求:

      1) 區分系統設計和系統實現工作;

      2) 系統設計的工作由一個人或不多的幾個達成共識的人完成。

      這里談的“系統設計”,基本上對應于我說的“產品設計”,即,確定軟件系統的功能、性能指標、交互模式等方面的需求。質言之,產品設計者決定“做什么”的問題,而把“怎么做”的問題留給實現人員(implementers)來完成。

      這樣就引入了第一組工作劃分。這里的重點是,產品設計應該由專人負責,而不是交給“程序員”代庖。相反的實踐,即讓具體開發者確定產品設計細節的做法,在國內軟件業似乎仍很常見,但正如《人月神話》所言,這是一種非常危險的嘗試。首先,如果產品的各個設計細節由多個開發者按各自的設想確定,那么概念完整性就幾乎一定會被破壞。其次,具體開發者往往更注重系統實現中的技術因素,而對最終使用者的需求、動機和感受都缺乏體認,因而單純出自程序員的產品設計,總是會偏離使用者對業務和易用性的實際需要,很難獲得用戶的欣賞——有一個略顯過分的比喻甚至說,讓程序員做產品設計,無異于讓精神病患者們自己運營瘋人院。

      而談到產品設計或系統需求確定,另一種流行的誤解是,這應該是客戶的任務:“需求調研人”至多需要記錄下客戶的所有需求,就能形成完美的需求規格設計書。天知道(至少,任何做過委托開發的人都知道)這種論調和國內客戶的實際情況之間的差距。不止一次,我拿到的全部客戶需求就是:開發一套電子商務系統。設計產品或確定系統需求不僅需要行業、領域經驗(這是“客戶”的優勢所在),更需要大量同類系統的使用經驗(甚至開發經驗)以及較強的抽象能力、表達能力等等。而目前很多客戶,由于接觸同類系統有限,自身業務流程也遠未標準化,若指望他們提出清晰、明確的需求,好比是讓一個只會喊“餓”的小孩兒進飯館點菜。開發團隊必須委派專人,通過耐心誘導和反復嘗試才能獲知他們的實際需要。

      負責產品設計的“專人”通常稱為“產品經理”。我心目中理想的產品經理,應同時具備較高的商業素質和較強的技術背景。

      具體地說,首先,一個優秀的產品經理要有深厚的領域經驗,也就是說,對該軟件系統要應用到的業務領域非常之熟悉。比如,開發房地產銷售軟件的產品經理,應該對房地產公司的標準銷售流程了如指掌,甚至比大多數銷售人員還要清楚。如果開發的是通用產品,他/她還具備對市場、潛在客戶需求的深刻洞察力。

      其次,他/她應該善于完成從使用者視角到開發者視角的轉化,善于將繁復的實際業務抽象為概念模型和人機交互操作。

      再次,他/她在技術方面也應該具備足夠的知識,能對特定需求的可行性做出初步的衡量,能夠做出方案選型的抉擇。功能需求往往符合Pareto's Principle(20-80原則),怎樣設計一個開發代價最小,而覆蓋需求最多的功能集,怎樣確定各個功能在實現時的優先度,是產品經理必須懂得的藝術。另外產品經理應該知道采用特定開發平臺、特定工具產品的優勢和代價,并從商業角度出發做出選擇。

      最后,他/她還應該能夠確定系統在人機交互方面的主要特征。程序員設計的產品為世人譏評,很大程度上要歸咎于糟糕的交互(UI)設計。產品經理應該能夠從商業角度出發,了解特定客戶/潛在客戶群在人機交互方面的需求,并能衡量特定的人機交互模式的實現難度——在很多場合中,某個微小操作模式的變化會導致整個系統實現構架的變化,因此,盡早確定UI的主要特征,并要求它們在整個系統內保持一致,對于概念完整性和系統技術構架都是至關重要的。

      對一次軟件開發來說,產品設計是源頭,是核心。因而產品經理的工作質量也直接關系到開發的成敗。記得一位業內資深人士曾說,合格的產品經理需要一份MBA學歷,再加上原先若干年的技術開發經驗。綜合考慮以上素質,我相信他提出了相當中肯的要求。

      如上所述,產品設計是一個復雜、困難的過程,其中充斥著爭論和妥協、權衡和決斷,并且,根據軟件處理的實際業務不同,這個過程的內涵也千差萬別。讓我們暫時告別這段惡魔般的旅程,輕快地考察另一個較為清晰的領域:“系統構架設計”。

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 重要角色


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>