|
但 所有人 的 發明 最終 須 結合 在一起 , 互相 融合 而 不至於 互相 抵觸 , 這 就 是 所謂 「 整合 」 的 工程 。 如果 坐視 開發 人員 各自為政 、 盡情 發揮 , 對 相互 不能 銜接 甚至 衝突 的 環節 不 加 過問 , 就 必然 形成 一 大 堆 互 不 相關 的 「 零件 」 。 你 要 把 一 個 飛機 發動機 裝 在 汽車 上 , 就算 東西 再 好 也 必然 導致 失敗 。 由於 這樣 的 理由 , 在 微軟 公司 內部 屬於 個人 創造 的 部分 越 是 精彩 紛 呈 , 整合 的 工作 也 就 越 是 頻繁 嚴謹 。 到 了 一 個 產品 將要 定型 的 最後 階段 , 這 種 整合 就 必須 每 天 進行 。 「 整合 」 的 工作 並非 人工 完成 , 而是 由 伺服器 中樞 自動 實現 。 具體 操作 方法 是 : 所有 開發 人員 隨時 將 自己 完成 的 工作 透過 網路 傳送到 伺服器 上 , 無論 是 幾十 人 開發 的 小 產品 , 還是 幾千 人 開發 的 大 產品 , 均 須 執行 此 項 步驟 。 伺服器 依靠 自己 的 工具 程式 , 每 天 將 所有人 的 工作 匯聚 在一起 , 自動 加以 整合 , 「 建造 」 為 一 個 新 的 版本 。 公司 內部 各 個 產品 小組 大體 上 每 天 都 會 提交 一 個 新版 , 但 卻 無法 做到 讓 每 一 個 新版 都 處於 穩定 狀態 , 也 無法 確保 每 天 的 工作 都 能 與 其他 小組 相互 配合 。 他們 只 需 將 其中 比較 穩定 的 版本 標定 存檔 , 供 其他 小組 使用 , 自己 則 可以 繼續 往 前 走 。 如此 每 個 組 都 在 奮力 向 前 , 又 在 自己 的 身後 留下 一 系列 「 新版 」 。 所有 參與 者 必須 同步 前行 , 如果 只有 一 個 人 停滯 不 前 , 那 就 不僅 是 落後 , 還 會 造成 整體 系統 失去 協調 。 各 個 產品 小組 的 「 新版 」 需 不斷 整合 在一起 , 以 供 檢測 小組 檢驗 。 伺服器 中樞 大樓 裡 一 批 功能 強大 的 電腦 每 天 都 將 全部 「 新版 」 拷貝 , 並 轉移到 安全 的 地方 , 以防 失火 、 失竊 一 類 的 不測 事件 。 在 電腦 螢幕 上 顯示 期待 著 的 「 新版 」 程式 之後 , 王慶 便 下意識 地 查驗 中文 部分 是否 已 被 整合 在 其中 , 又 是否 產生 了 新 的 麻煩 。 假如 一切 順利 , 他 就 要 把 這 一 「 新版 」 透過 網路 傳到 北京 , 供 那裡 的 檢測 人員 檢測 。 這樣 的 工作 每 天 重複 一 次 , 所以 數十萬 行 程式 原始碼 在 每 二十四 小時 中 就 要 往返 太平洋 兩岸 一 次 。 檢測 在 微軟 公司 的 軟體 製作 過程 中 是 極 重要 的 一 環 。 與 一般 製造業 的 情形 不同 的 是 , 微軟 公司 的 軟體 測試 和 開發 製作 是 同步 進行 的 , 並 不 像 人們 一般 想像 的 等到 產品 完成 之後 再 來 檢測 。 檢測 人員 數量 龐大 , 與 研究 開發 人員 的 比例 大致 為 一 比 一 。 北京 方面 的 檢測 工作 由 希格瑪 大廈 六樓 的 微軟 研發 中心 負責 。 微軟 中國 研究院 的 這 套 語音 識別 程式 , 每 天 必須 檢測 的 內容 超過 四百 種 , 在 整 個 開發 過程 中 , 只有 極少 情況 能夠 一帆風順 。 在 大多數 情況 下 , 檢測 人員 總會 抓出 很多 「 臭蟲 」 。 消滅 「 臭蟲 」 的 具體 方法 是 發現 者 首先 要 有 辦法 使 「 臭蟲 」 能夠 再現 , 而且 記錄 其 出現 的 時間 、 條件 和 表現 方式 。 當 其他 人 使用 同樣 辦法 可以 讓 「 臭蟲 」 再現 的 時候 , 就 證明 檢測 的 結論 有效 , 但 並非 所有 的 「 臭蟲 」 都 在 必須 消滅 之 列 。 研究 人員 通常 依據 「 臭蟲 」 對 軟體 的 損害 程度 分成 四 個 「 優先 等級 」 , 「 最 高 等級 」 的 「 臭蟲 」 一經 發現 , 直接 責任 者 必須 在 徹底 解決 問題 之後 方 能 離開 辦公室 。 對於 大多數 並 不會 造成 後果 的 「 臭蟲 」 則 有 可能 不予 理睬 , 甚至 永遠 留在 產品 中 。 王慶 在 太平洋 兩岸 不斷 傳遞 這 套 語音 系統 的 兩 個 月 中 , 檢測 人員 總計 發現 了 二千五百 個 以上 的 「 臭蟲 」 , 其中 有 重要 影響 而 必須 消滅 的 有 幾十 個 , 每 個 「 臭蟲 」 都 有 獨立 的 編號 , 並 詳細 記載 其 生存 週期 , 亦即 它 的 出生 、 發展 和 死亡 、 消滅 它 的 方法 , 以及 在 消滅 過程 中 是否 產生 了 新 的 問題 , 是 為 「 臭蟲 檔案 」 , 供 日後 人們 在 遇到 類似 問題 時 可以 參照 , 又 可 在 產品 完成 後 對 「 臭蟲 」 數量 、 消滅 了 多少 、 還 有 多少 隱藏 在 產品 中 一一 加以 統計 。 「 臭蟲 」 的 「 平均 壽命 天數 」 是 判斷 開發 人員 工作 質量 的 標準 之 一 , 對於 必須 加以 消滅 的 「 臭蟲 」 , 則 由 研究院 的 開發 人員 找出 程式 原始碼 中 的 錯漏 , 修正 後 由 檢測 人員 再行 檢測 , 直至 確認 「 臭蟲 」 的確 已經 死亡 。 不過 , 很多 時候 在 消滅 一 個 「 臭蟲 」 的 同時 , 又 會 產生 更多 的 「 臭蟲 」 , 美國 軟體業 公認 所謂 「 程式 的 正確性 無法 證明 」 說 的 就 是 這 種 情況 。 有 些 軟體 必須 做到 絕對 無誤 , 比如 用 在 衛星 航太 方面 的 軟體 就 是 如此 , 但 通常 在 一 個 龐大 的 個人電腦 作業 系統 中 , 你 不論 怎麼 努力 也 不可能 實現 「 零臭蟲 」 。 所以 微軟 公司 對於 自己 產品 的 要求 叫做 「 足夠 好 」 , 而 不 是 「 絕對 好 」 。 王慶 說 : 「 你 要 把 Windows 2000 做到 一 個 『 臭蟲 』 都 沒有 , 花 一百 年 也 做 不 到 。 只要 萬分之一 的 『 不 好 』 不致 影響 萬分之九千九百九十九 的 『 好 』 , 就算 成功 。 」 這樣 的 道理 固然 可以 成立 , 但 就算 你 真的 做到 只有 「 萬分之一 不 好 」 , 幾千萬 行 的 原始碼 也 就 有 了 幾千 個 「 臭蟲 」 。 有 人 說 微軟 產品 的 錯誤 無數 , 看來 也 不 是 全無 根據 。 二月 二十八日 的 「 里程碑 」 之 日 越來越 近 , 王慶 覺得 語音 產品 小組 的 節奏 明顯 緊張 起來 。 經理 已經 宣布 , 所有 新 的 東西 一律 不許 再 加入 產品 , 所有 人員 全力 檢測 和 消滅 「 臭蟲 」 。 那 幾 天 , 王慶 每 天 早晨
|