構造原型
構造原型是程序經(jīng)理具體說(shuō)明一件新產(chǎn)品或一個(gè)新版本的最好方法,這從許多方面來(lái)說(shuō)都使開(kāi)發(fā)前測試成為可能,尤其在可用性方面,并且有助于對與用戶(hù)交互情況作出好的理解,它也能使產(chǎn)品說(shuō)明更緊湊。
微軟的開(kāi)發(fā)人員通常采用VB構造用戶(hù)界面原型,但是對于構造計算機屏幕模型之類(lèi)的工作,畫(huà)筆(Paint brush)也是一個(gè)很好用的工具。死板的說(shuō)明變成有生命的文件,說(shuō)明不應過(guò)于詳細以至限制了發(fā)明創(chuàng )造。在項目開(kāi)發(fā)過(guò)程中,說(shuō)明文件的早期版本會(huì )有相當大的增加與改變。由于說(shuō)明的變動(dòng)可能會(huì )導致相應開(kāi)發(fā)工作的極大變動(dòng),所以微軟通常是將精力首先集中于那些沒(méi)有什么用戶(hù)界面的特性上,因為在完成開(kāi)發(fā)前不必去了解用戶(hù)對它們有何反應,也就是說(shuō)這些特性不大可能改變。然后再面對其它特性。但是當產(chǎn)品開(kāi)發(fā)到一定程序后,例如40%之后,程序經(jīng)理必須嚴格控制對特性的修改(主要是指增加新的特性),否則不光會(huì )造成開(kāi)發(fā)延遲,而且會(huì )壓縮可用的測試時(shí)間。
原則三:根據用戶(hù)行為和有關(guān)用戶(hù)的資料確定產(chǎn)品特牲及其優(yōu)先順序
對于一個(gè)開(kāi)發(fā)項目而言,如何確定最終產(chǎn)品中應包含什么特性通常是比較困難的一件事。為此微軟采用了一個(gè)稱(chēng)之為“基于行為制定計劃”的方式來(lái)進(jìn)行特性選擇與優(yōu)先級安排。
基于行為制定計劃法從對用戶(hù)行為,諸如寫(xiě)信或做預算,做系統研究開(kāi)始。然后,根據某一特性在支持重要的或者是經(jīng)常的用戶(hù)行為上的程序對其進(jìn)行評價(jià)。這樣做的優(yōu)點(diǎn)是對特性取舍更具理性:討論對顧客想要做什么加以更好的安排,對某個(gè)給定特性是否方便了特定任務(wù)的更集中的辯論,可讀性更強的說(shuō)明,以及在市場(chǎng)營(yíng)銷(xiāo)、用戶(hù)教育和產(chǎn)品開(kāi)發(fā)中更好地同步。
特性選擇和優(yōu)先級安排中的基于行為制定計劃
基于行為制定計劃法中的關(guān)鍵點(diǎn)在于按用戶(hù)行為、產(chǎn)品特性以及行為和特性之間的內部聯(lián)系來(lái)分析產(chǎn)品。程序經(jīng)理和產(chǎn)品計劃者把產(chǎn)品試圖支持的用戶(hù)任務(wù)或方案分成大約20個(gè)“行為”,然后他們努力把行為(以及任何子行為)映射入微軟的現行特性和競爭對手產(chǎn)品的特性中去。他們也把行為映射到不同的顧客形象或不同的市場(chǎng)部分中去。
當說(shuō)明產(chǎn)品的新版本時(shí),基于行為制定計劃法幫助程序經(jīng)理和開(kāi)發(fā)員集中他們的精力與創(chuàng )造力。象Excel之類(lèi)的項目,爭取在每個(gè)新版本中加入的主要行為不超過(guò)四個(gè)。絕大多數特性直接映射入這些行為之中。該做法使項目可以按特性對用戶(hù)的價(jià)值來(lái)進(jìn)行分級。通過(guò)分級,促使程序經(jīng)理和開(kāi)發(fā)人員都行動(dòng)起來(lái),使他們的特性支持盡可能多的行為。這種良性競爭對于用戶(hù)有益,同時(shí)也利于提高生產(chǎn)率。
為顧客行為而非產(chǎn)品特性準備資料
基于行為制定計劃進(jìn)度,項目在計劃階段首先集中于行為,其次才是特性。程序經(jīng)理和市場(chǎng)營(yíng)銷(xiāo)人員并不去思考和排除他們喜愛(ài)的特性,再?lài)@它們搞出想象性描述的草案。他們真正做的是列出一份顧客都做些什么的清單,然后把想象性描述集中于支持那些行為的特性上。
以行為為中心對產(chǎn)品進(jìn)行全面考慮
由于基于行為制定計劃法是從整個(gè)產(chǎn)品的觀(guān)點(diǎn)著(zhù)眼,因此有助于在不同職能上工作的項目成員理解產(chǎn)品做什么,以及其他產(chǎn)品的相應特性如何可能支持那些需要或不需要其他應用軟件產(chǎn)品的行為。
做市場(chǎng)營(yíng)銷(xiāo)研究以支持基于行為制定計劃法
為支持基于行為制定計劃法,從市場(chǎng)營(yíng)銷(xiāo)組來(lái)的產(chǎn)品經(jīng)理與程序經(jīng)理、開(kāi)發(fā)人員一起開(kāi)展一些聯(lián)合的研究,如指導對用戶(hù)的研究工作。然而,一般來(lái)說(shuō)是產(chǎn)品經(jīng)理做大多數的研究,并可使其更明確地影響微軟產(chǎn)品的演進(jìn)。
原則四:建立模塊化的和水平式的設計結構,并使項目結構反映產(chǎn)品結構的特點(diǎn)
微軟產(chǎn)品設計中的一個(gè)關(guān)鍵概念是產(chǎn)品的基礎結構(Infrastructure),尤其是生命周期短的應用軟件,應隨項目的進(jìn)展變得更加單一 (而不是錯綜復雜)。當開(kāi)發(fā)組構造產(chǎn)品的第一版時(shí),他們更多地使用分級式結構,好為產(chǎn)品設計規定出一個(gè)最初的架構。隨著(zhù)時(shí)間推移,他們向單一的結構邁進(jìn),以使項目能集中于特性開(kāi)發(fā)。微軟越來(lái)越強調不同產(chǎn)品間的特性共享。共享有助于使不同產(chǎn)品的“性能與感覺(jué)”(Look and Feel)都統一協(xié)調起來(lái);它也方便了需要不只一個(gè)應用軟件的用戶(hù),減少了代碼的重復書(shū)寫(xiě),縮小了單獨一個(gè)應用軟件的規模。
微軟用特性小組組織產(chǎn)品開(kāi)發(fā),這種方法使得每個(gè)人都容易明白小組是如何與整個(gè)產(chǎn)品相關(guān)聯(lián)的。項目從規定概要說(shuō)明開(kāi)始。概要說(shuō)明的形式是一份已確定了優(yōu)先級安排的內容清單,涉及產(chǎn)品下一版本將要開(kāi)發(fā)的相對獨立的特性,以便由分開(kāi)的特性小組加以開(kāi)發(fā)。
程序經(jīng)理和開(kāi)發(fā)員把項目分成特性子集,再將之分配給每個(gè)特性小組,讓他們在3到4個(gè)主要的內部項目里程碑中進(jìn)行生產(chǎn)。這種產(chǎn)品組織與開(kāi)發(fā)方法使微軟能靠簡(jiǎn)單地增加開(kāi)發(fā)員和創(chuàng )建一個(gè)大的小組來(lái)漸進(jìn)地增加產(chǎn)品的功能。
把特性(與函數)作為開(kāi)發(fā)單位
微軟軟件產(chǎn)品的特性是用戶(hù)最終可見(jiàn)的相對獨立的功能單位,就如建筑材料一般,對應用軟件產(chǎn)品更是如此。系統軟件產(chǎn)品,如NT或者95的特性,對最終用戶(hù)通常不直接可見(jiàn)。微軟和其他公司有時(shí)簡(jiǎn)單地稱(chēng)這些不直接可見(jiàn)的特性為“函數”。
程序經(jīng)理承擔開(kāi)發(fā)一組特性或函數,實(shí)現從說(shuō)明經(jīng)測試、文檔化直到最后完成的過(guò)程。他們必須與開(kāi)發(fā)員合作,后者負責估計進(jìn)度表與完善每個(gè)特性。開(kāi)發(fā)員還要在一臺聯(lián)網(wǎng)開(kāi)發(fā)計算機上存儲一到幾個(gè)文件,用以保存特性的程序源代碼。大多數特性的開(kāi)發(fā)與改進(jìn)只要一名開(kāi)發(fā)員,而有的大型特性則要一個(gè)小的小組。
產(chǎn)品結構是決定其長(cháng)期結構完整性的基石
產(chǎn)品結構是產(chǎn)品內部的基干,它規定了重要的結構構件以及這些構件如何組裝到一起。產(chǎn)品結構及用于組裝結構的構件,提供了實(shí)現產(chǎn)品特性(即做詳細設計與編碼)的支柱。產(chǎn)品的結構對最終用戶(hù)而言,通常并非直接可見(jiàn)。只有結構要實(shí)現的特性是可見(jiàn)的。產(chǎn)品結構也是決定產(chǎn)品長(cháng)期結構完整性的基石。產(chǎn)品功能的任何改變都不應造成潛在的產(chǎn)品結構散架。
產(chǎn)品的層次結構
對于產(chǎn)品,也可以采用層次結構的方法加以分析。通常定義良好的層次結構有助于對產(chǎn)品特性進(jìn)行靈活的增加、刪除與改進(jìn)。此外良好的層次結構有助于產(chǎn)品在不同平臺上的移植。(例如Excel總共定義了五層,其中只有最底層的操作系統層是與平臺相關(guān)的,其它各層均是通過(guò)調用其下層所提供的API接口加以實(shí)現的,所以其移植極其方便。而在Windows 95中通過(guò)“虛擬機”的概念實(shí)現了對16位、32位以及DOS程序的支持。)
小的結構文檔:源代碼是唯一文件
除了API文檔,微軟不對其產(chǎn)品結構生成相應的文檔,雖然有時(shí)高級開(kāi)發(fā)員可能會(huì )寫(xiě)下高層結構。對復雜的特性,許多開(kāi)發(fā)員在某些點(diǎn)記錄并復查特定于他們所負責的結構細節,但此工作是可選的,并不強制執行。除了源代碼文件與特性說(shuō)明,為數不多的組為新程序員準務(wù)了描繪某層結構的文檔(主要的數據結構,如何工作等等)。但是這些文件并不時(shí)常更新,經(jīng)理們也不要求項目組生成此類(lèi)內部文檔。在有關(guān)的說(shuō)明文件中,并不涉及實(shí)現問(wèn)題。開(kāi)發(fā)員應該知道如何去實(shí)現,或者能夠去學(xué)會(huì )。記錄的關(guān)于結構的文檔如此之少是因為“一個(gè)開(kāi)發(fā)員的工作是編寫(xiě)我們要賣(mài)的代碼,而不是花時(shí)間寫(xiě)高水平的設計文件”,“設計文件不應與源代碼分離”。分割代碼與“保持事情的簡(jiǎn)單”。
特性小組和作為內容專(zhuān)家的小組領(lǐng)導
特性小組一般由一個(gè)領(lǐng)導和3至8名開(kāi)發(fā)人員組成,工作于相關(guān)的特性領(lǐng)域。小組的規模常視小組領(lǐng)導的經(jīng)驗和能力而定。特性小組領(lǐng)導向項目開(kāi)發(fā)領(lǐng)導匯報并負責項目的全部開(kāi)發(fā)工作;而項目開(kāi)發(fā)領(lǐng)導則擁有對產(chǎn)品的更為全局性的觀(guān)點(diǎn),從而最有可能發(fā)現不互相關(guān)聯(lián)的問(wèn)題。在特性小組中的每個(gè)人均是此領(lǐng)域的 “專(zhuān)家”,他們了解如何使用產(chǎn)品、了解競爭對手的產(chǎn)品、了解未來(lái)將向何處去。通常為便于交流,提高軟件的組織結構(軟件傾向于映射出構造它的組織的結構),應保持特性小組的小規模。
原則五:靠個(gè)人負責和固定項目資源實(shí)旋控制
對于軟件項目而言,精確估計產(chǎn)品的開(kāi)發(fā)與交付進(jìn)度是很困難的。對此微軟采取的方法是將進(jìn)度安排和工作管理的責任推到最底層,即單個(gè)的開(kāi)發(fā)人員和測試人員那兒去。這保證了每個(gè)人除了作為小組的一部分外,還負有個(gè)人的責任。單獨的開(kāi)發(fā)人員設立他們自已的進(jìn)度表,程序經(jīng)理把單獨的進(jìn)度表匯總起來(lái),再加上緩沖時(shí)間,以制定出一個(gè)全面的項目進(jìn)度表。頂層的總經(jīng)理也固定人員與時(shí)間等基本資源,以確保項目集中并限制其努力與創(chuàng )造程序。
關(guān)鍵的目標,尤其對應用軟件,是指明產(chǎn)品的目標出品日并爭取盡可能長(cháng)久地堅持它。程序經(jīng)理和開(kāi)發(fā)員從出品日回溯,規定中間的項目里程碑的日期。這個(gè)“固定的出品日法“的中心在開(kāi)發(fā)員身上。以避免因為項目沒(méi)有固定的結束點(diǎn),導致在最終無(wú)用的設計、再設計和測試的循環(huán)中消耗一年或更多的時(shí)間。
開(kāi)發(fā)人員做出他們自已的進(jìn)度估計
“日期設定方法。但是開(kāi)發(fā)人員一般會(huì )做出較樂(lè )觀(guān)的估計,因此開(kāi)發(fā)經(jīng)理還需對他們所提供的日期進(jìn)行調整并加上緩沖時(shí)間以避免因因信息不完全而出現的問(wèn)題。微軟這種制定進(jìn)度的方法的優(yōu)點(diǎn)在于:它從人們那兒得到更多的合作,因為日期是自已定的,不是經(jīng)理定的;進(jìn)度總是富有進(jìn)取性,因為開(kāi)發(fā)人員不可避免地會(huì )低估他們真正需要的時(shí)間。
對細致的任務(wù)的進(jìn)度估計
微軟的第二個(gè)進(jìn)度安排方法是:對要完成的任務(wù)做非常詳盡的考慮,在此基礎上請開(kāi)發(fā)人員給出他們對“實(shí)現”的估計,以此力圖“促使”更加現實(shí)主義并避免過(guò)度低估。
通常微軟把任務(wù)細化到4小時(shí)(半天)到3天之間。對于準確進(jìn)度的安排,微軟的經(jīng)理是這樣認識的:“任何任務(wù)只要超過(guò)一星期,那人們就一定沒(méi)有充分地全盤(pán)考慮它。任何任務(wù)某人估計只用少于半天就可完成,則他對它考慮得太多了。他應該用更多的時(shí)間去編程,更少的時(shí)間來(lái)考慮”。對于類(lèi)似類(lèi)于 Windows NT之類(lèi)的操作系統而言,進(jìn)度安排更加困難,對其一般以幾天或者半周為工作單位進(jìn)行進(jìn)度估計。
安排開(kāi)發(fā)人員與小組進(jìn)度時(shí)的心理學(xué)
當項目變大時(shí),微軟把員工分成小組。然后經(jīng)理把進(jìn)度的責任和所有權盡可能地分發(fā)下去,直到小組和個(gè)人;這使二者都產(chǎn)生了一種擁用工作的感覺(jué)。它還在小組中,個(gè)人中,尤其是小組領(lǐng)導中造成強烈的跟上其它同事預計進(jìn)度的壓力,因為經(jīng)理可能再平衡進(jìn)度,從落后的小組或個(gè)人手中拿走工作。這樣,同事間的壓力使經(jīng)理不需要太多的努力就可以對個(gè)人或單個(gè)小組的進(jìn)程實(shí)施嚴格控制。
固定的出品日(RTM:Release To Manufacture)
為了把創(chuàng )造力約束在時(shí)間限制之中,微軟現在在新產(chǎn)品或者產(chǎn)品新版本開(kāi)始前爭取固定出品日,至少是有出品日的內部目標。這給人們施加砍去特性和集中在一個(gè)項目上的壓力,逼迫他們去苦苦思考應將哪個(gè)新特性加入產(chǎn)品中。雖然最終產(chǎn)品的交付目標可能是由高級執行人員設定,但是開(kāi)發(fā)人員與小組仍然設定他們自已的進(jìn)度表。
微軟一般根據預先的時(shí)間進(jìn)度的大致估計出一個(gè)RTM日期,然后向前回溯相應的各個(gè)Milestone日期,如RC、Beta、Tree Lock、UI Freeze、Feature Complete以及CC(Code Complete)等等各個(gè)Milestone的相應日期。制定出十分詳盡的產(chǎn)品研究開(kāi)發(fā)時(shí)間進(jìn)度表,產(chǎn)品開(kāi)發(fā)組的各個(gè)成員以這個(gè)進(jìn)度表為目標統一協(xié)調工作。微軟十分強調軟件開(kāi)發(fā)過(guò)程中的Teamwork Spirits,這種理念貫穿在微軟各個(gè)產(chǎn)品開(kāi)發(fā)的各個(gè)階段。這也是微軟得以成功的一個(gè)十分重要的原因。
小結:同步-穩定開(kāi)發(fā)法
計劃階段
定義產(chǎn)品的想象性描述、說(shuō)明與進(jìn)度
想象性描述產(chǎn)品和程序管理部門(mén)運用廣泛的顧客意見(jiàn)來(lái)確定和優(yōu)化產(chǎn)品的特性。
說(shuō)明文件
基于想象性描述,程序管理部門(mén)與開(kāi)發(fā)組定義特性的功能,結構問(wèn)題,以及各部分間的相關(guān)性。
制訂進(jìn)度表與構造特性小組
其于說(shuō)明文件,程序管理部門(mén)協(xié)調進(jìn)度表,安排出特性小組,每個(gè)小組包括大約1名程序經(jīng)理,3-8個(gè)開(kāi)發(fā)員,3-8個(gè)測試員(以1:1比例與開(kāi)發(fā)員平行工作。)
開(kāi)發(fā)階段
用3-4個(gè)順序的子項目,每個(gè)產(chǎn)生一個(gè)里程碑式的產(chǎn)品發(fā)送,來(lái)完成特性的開(kāi)發(fā)。程序經(jīng)理協(xié)調開(kāi)發(fā)過(guò)程。開(kāi)發(fā)員設計、編碼、調試。測試員與開(kāi)發(fā)員配對,不斷進(jìn)行測試。
子項目1前1/3的特性:最重要的特性與共享的構件。
子項目2中間1/3的特性。
子項目3最后1/3的特性:最不重要的特性。
穩定化階段
全面的內外部測試,最后的產(chǎn)品穩定化以及發(fā)貨。程序經(jīng)理協(xié)調OEM與ISV,監督從顧客得到的信息反饋。開(kāi)發(fā)員進(jìn)行最后的調試與代碼穩定化。測試員發(fā)現并清除錯誤。
內部測試
公司內部對整個(gè)產(chǎn)品做詳盡的測試。
外部測試
公司外在的β測試點(diǎn),象OEM,ISV以及最終用戶(hù)處對整個(gè)產(chǎn)品做詳盡的測試。
發(fā)貨準備
為批量生產(chǎn)準備發(fā)布最后的“金盤(pán)”(Golden Disk)與文檔,制作之前,還需要進(jìn)行各種嚴格的檢查:如政治敏感性術(shù)語(yǔ)檢查、病毒檢查、文件相關(guān)性檢查等。(完)
聯(lián)系客服