關於軟體工程生產率的思考
來源:互聯網
上載者:User
在進入正題之前,我們有必要簡單的比較一下傳統的製造業與軟體業在生產方式的差異。
1,傳統製造業是機械化作業,軟體業是人的思維轉化作業;
2,傳統製造業的生產過程具有流水性,軟體業的生產過程複雜多樣,有貌似流水性的瀑布型,有螺旋攀升型,快捷原型法等
接下來我們可以看一下傳統製造業提高生產率大多採用的方式和手段
1,提高作業人員的熟練度;
2,提高作業的機械化程度;
3,改善生產工藝等。
這些方式和手段中,那些能夠適用到軟體的生產過程中嗎?在應用到軟體生產過程中,又會發生那些變化?軟體的生產還有那些其他的方法來可以提高生產率?
首先,我們來看一下提高作業人員的熟練度,這一點的核心是人的專業技能培養,但是與製造業相比,軟體開發人員的技能培養要複雜的多,複雜性在於製造業培養的是人操作裝置和工具的熟練度,而軟體開發要培養的是開發人員思維的成熟度等級、完整度和熟練度。對於軟體企業來說教給員工為什麼這樣做,遠比較給員工怎樣做重要的多;對於個人來說學會為什麼這樣做遠比學會怎樣做重要的多。在軟體業,只有會思考的人才能找到更多的捷徑。
其次是機械化作業,這一點不太適用軟體業,對於軟體開發來說通常情況幾台普通的電腦就可以解決問題了,使用高效能的電腦對於提高生產率來說,筆者認為意義不大,可以忽略。
三是改善生產工藝,對於軟體業來說,生產工藝就是在產品開發過程所使用的開發管理模型,這裡同樣項目,採用同樣的開發管理模型,由具有不同成熟度等級的組織來實施開發,往往會產生不同的結果,就其原因,核心還是人的思維的成熟度等級、完整度和熟練度,這種思維上的要求不僅僅是專業技能上的,同時還包括對開發過程中所採用的開發管理模型的理解和運用。因此軟體企業在大力提升作業人員的思維能力的同時,要不斷改進和完善各種開發管理模型的規範,使之不但管用還要易用,以便更好的促進和激發作業人員主動的思考。
四是運用業務領域知識思考軟體開發,也就是說開發設計人員要瞭解和掌握軟體應用領域的業務知識,用客戶的業務思維方式來同客戶溝通交流,解決軟體問題。這樣可以有效地提高生產率,減少重複作業。
五是運用有效管理工具。科學高效的管理工具,不但可以提高項目資訊收集和整理效率,還可以提高資訊的流通性,以及相關人員的學習效率。