比爾·蓋茨認為,許多公司常會雇用一些在工作中不願受紀律約束的員工,它帶來的後果便是這些人不得不經常經曆痛苦的試用過程。微軟的開發員和測試員由於自身優秀,常不喜歡翻閱軟件工程方麵的科學文獻,這樣,一些其他公司在好幾年以前就覺得很重要的軟件開發方麵的做法,由於信息閉塞,微軟卻很遲才發現,以至於痛失許多良機。
針對這一情況,比爾·蓋茨在這方麵做了很多工作並有了較大的進步。比爾·蓋茨明白,員工都很優秀,但他們不願受人支使,不過他們很樂意被引導著去發現該如何去做。於是,公司可以想出一些主意讓員工自己尋找更好的辦事方法,而絕不應該命令說“你必須選擇這樣的過程,你必須這麽做”,這肯定行不通。隻有推進員工坐下來進行探討並找出解決問題的方法才是合理的現代化管理模式,在微軟公司內,你絕對不應該采取獨裁式管理。
隨著微軟公司的發展壯大,領導們引進了許多政策來避免各小組的重複作業。“回顧創業之初,許多員工確實不需要規章製度的約束。現在情形改變了,有必要引進一些新做法來適應新的變化。微軟公司不會給下屬下達命令說:‘你必須這樣去管理你的開發組。’他們會發揮一流職員的主觀能動性,使他們盡展創造力。”
比爾·蓋茨一直支持規範程序管理的決策,盡管這是對他所喜好的工作方式的一次大變動。在公司早期,他經常幾乎重寫微軟所推出產品的每行代碼,同時還管理產品的市場營銷。但到20世紀80年代中後期,蓋茨管理所有事務已經不可能了。他同意建立正規的工作種類,比如產品經理處理市場營銷事務,而程序經理的工作介於市場營銷和產品開發二者之間。但蓋茨並不想讓程序經理與開發或營銷工作截然分開,他想讓程序經理如同吉布·布魯門薩那樣與開發員在小組裏並肩工作,使二者相得益彰。蓋茨深信,如果沒有這種職責交叉與密切合作,各部門職能截然分開會導致失敗。
比爾·蓋茨指出,我們過去沒有程序管理一職,而開發員不喜歡做繁雜的文字工作,並且不願意參加討論市場營銷的冗長會議。於是最終出現了一種新的技術組合,一種非常有影響力的技術組合,它能處理所有繁雜事物。公司現在也有了程序管理一職,雖與我們策略不同,但我認為全行業都已認識到這是一個重要的辦法。程序經理與開發員每天一起工作,這是所有事務中最密切的關係——比開發與測試之間的關係、市場營銷與銷售對象之間的關係更為密切。你可以將程序管理與開發置於同一經理的管理之下。
事實上,隻要找對了人選,就能配成小組。微軟就是這麽做的。現在,在新項目初期,程序經理與產品策劃者密切合作以確保每個新產品都有與眾不同的“特色”。他們一起撰寫產品規劃書,這份規劃書集中了從開發員、客戶支持人員直到包括蓋茨等高級經理在內的所有人的智慧。接著,程序經理開始撰寫產品規格說明書,它以提綱形式描述產品的不同特性。這份說明書隨著程序經理與開發員討論產品特性的細節和建立產品原型的過程而不斷擴展充實。每位程序經理通常管理幾個特性的開發,因此,常在幾個特性小組裏工作。
在許多公司,通常有軟件設計員(有時稱為係統分析員或需求工程師)組成的獨立部門,他們負責為其他從事產品製作的人員(像程序員、執行員和代碼員)做好產品功能設計。
通常設計員負責設計一項新產品並且他們的工作局限在項目的這一初始階段。而微軟人則多次聲明,在微軟,程序經理並不是這種意義上的設計者,相反,微軟程序經理的工作從始至終貫穿一個項目的全過程。因為他們設計的規格隨著產品製作的過程在擴展、在變化。這樣,一流的人才得到了充分的發揮,而他們的成果同樣也在程序經理的指導下得以不斷總結和變化,微軟終於建立了最適應人才特點的程序管理製度。