系統開發是一項系統工程,從系統工程角度出發,系統開發可以分成三大部分,即軟件實現、項目管理和過程改進。管理維度則從工程性管理角度出發,包括軟件的開發過程和軟件經濟學等內容,從中我們抽象成項目管理、研發過程和組織管理三個子維度。
1.項目管理子維度
項目管理的切入點在于從范圍、時間、成本等角度出發討論如何在一定的約束條件下實現系統并完成最終成果的交付。這其中涉及項目管理的通用性知識體系,但也需要根據軟件開發的特征進行分析。
對于系統開發而言,需求工程、計劃管理、質量管理、風險管理是項目管理重點需要實施和管理的對象。相較其他行業,需求以及系統建模、軟件開發范圍的分解和工作量評估、技術評審的實施方法以及持續交付思想和工具的應用貫穿整個軟件開發的進程。
2.研發過程子維度
系統開發是一系列過程的集合,過程改進圍繞這些過程,提出持續優化的方法和實踐確保得到令人滿意的結果。過程改進的切入點在于通過理解代表性的過程模型,并結合團隊目前以及未來的開發狀況找到適合自身的過程模型。
研發過程的建設包括過程管理的模型以及研發相關的工程實踐,而過程改進同樣也有一整套的方法論,無論是傳統型的瀑布還是當下流行的敏捷,都崇尚過程改進。而對于特定團隊,這些模式和方法都不一定適用,不能照抄照搬,所以研發過程建設的實施方法首先是過程裁剪,通過裁剪建立起符合自身團隊發展的輕量級過程模型。研發過程的建設包括過程管理的模型以及研發相關的工程實踐,而過程改進同樣也有一整套的方法論,無論是傳統型的瀑布還是當下流行的敏捷,都崇尚過程改進。而對于特定團隊,這些模式和方法都不一定適用,不能照抄照搬,所以研發過程建設的實施方法首先是過程裁剪,通過裁剪建立起符合自身團隊發展的輕量級過程模型。

3.組織管理子維度
組織管理的切入點在于明確一個組織中需要技術管理者進行管理的視角和邊界。對于系統開發而言,向下的團隊管理和向外的協商溝通管理是最基本的組織管理視角,但我們也應該注意到向上管理的重要性以及提升管理者本身的自我管理意識。
對于向下管理,實施過程中需要理解技術人員,并通過領導、激勵、培訓和績效管理等手段提升團隊整個工作效率。對于向上管理,更多則關注結果導向和目標管理。向外管理上,溝通是關鍵。而對于自我管理,則需要培養個人的管理風格以及處事能力。以上各個維度和子維度雖然各自表現技術管理的某個方面,但也存在依賴關系。圖1描述的是三個維度之前最基本的依賴關系。從圖中可以看到行業分析幫助定義產品,技術體系為產品提供實現方法,而管理體系從過程角度為產品開發提供保障。因此,技術體系和管理體系的建立本質上都是為了實現產品,也就是說技術管理的本質需求是完成產品目標。
不同的行業、不同的業務、不同的系統對于技術管理的維度而言具有不同的展示要求。以互聯網行業為例,目前各個領域變化迅速,從行業分析到產品發布的周期也較短,意味著在開發過程管理上適合采用比較輕量級、快速迭代的研發模式,這就需要在項目管理、組織管理上采用與之匹配的模式。另一方面,互聯網產品或服務通常面向多個領域,按應用類型區分,通常行業門檻并不高,如果想要快速占據市場,通過技術創新來推動產品化是常見的手段。而面向企業級應用的軟件產品中,由于業務復雜且具有一定的行業壁壘,技術更多時候是為了實現業務需求,一個產品的開發周期普遍較長,相應的研發節奏和過程也偏向于采用重量級框架,這些都與互聯網產品有較大差別。