正方觀點:軟體開發可以通過不斷細分的工序化流程來減弱開發人員個人對於項目的影響,只需要少部分人的創造性思維,而大部分開發人員則嚴格按照工序流程進行開發
反方觀點:流程管理只能一定程度上控制項目進度和品質,項目的完成情況關鍵靠個人能力和素質。
辯論前提:這裡的軟體開發不是指領先技術的開發,例如搜尋引擎,3D引擎等,而是普通的公司專屬應用程式軟體開發。
正方論證
某軟體開發小組
組長:歪子(管理),道長(架構師)
開發成員:hoho,可樂,小牛,麻子
開發流程之詳細設計(DD):
第一步,道長(架構師)構建文檔,設計主要的介面類和具體類(方法及重要的成員變數),並在組內進行review
第二步,歪子(管理)根據各個類的功能複雜度分配具體任務,每個開發人員負責完成一部分DD的工作
第三步,歪子(管理)和道長(架構師)每天抽樣review每個開發人員DD完成的品質和進度,同時提出修改意見,歪子(管理)則對修改造成的進度影響進行評估和調整
第四步,對於某些十分複雜而且重要的模組,如果負責的開發人員難以完成,則轉移給道長(架構師)親自實施,歪子(管理)對進度進行重新調整
第五步,設計初稿完成後,歪子(管理)組織所有開發人員進行交叉review,制定計劃,具體要求每天的最低指摘數,道長(架構師)則對重點模組進行review
在上面的案例中,歪子的主要任務是制定和控制開發進度,嚴格監督每天的工作量,並對項目風險做出預期判斷。道長的主要任務是設計系統架構,細分模組的功能,將複雜的系統拆分成簡單的邏輯單元。歪子和道長就是正方觀點中所指的具有創造性思維的人員。其他開發人員則在完成細分後的簡單邏輯單元基礎上,嚴格按照項目的進度要求進行工序化的開發。
開發流程之程式編碼(CD):
第一步,道長(架構師)制定編碼規範,並在組內review,要求嚴格按照編碼規範
第二步,道長(架構師)編寫主要的介面類和具體類(方法及重要的成員變數),並在組內進行review
第三步,歪子(管理)根據各個類的功能複雜度分配具體任務,每個開發人員負責完成一部分CD的工作
第四步,開發人員在進行CD過程中,必須編寫必要的unit test以驗證實現的正確性
第五步,道長(架構師)每天抽樣review每個開發人員的unit test,確認其合理性
第六步,歪子(管理)每天抽樣review每個開發人員CD完成的品質和進度,尤其確保符合編碼規範,同時提出修改意見,歪子(管理)則對修改造成的進度影響進行評估和調整
第七步,對CD中出現的技術痛點,開發人員應及時提出,必要時組織技術骨幹集中攻克,歪子(管理)則對這些因素造成的進度影響進行評估和調整
第八步,CD完成後,歪子(管理)組織所有開發人員進行交叉review,制定計劃,具體要求每天的最低指摘數,道長(架構師)則對重點模組進行review
To be continued