清玄的敏捷

Allen0805發表於2009-08-25

做軟體的系統的分析和設計,現在已經有無數的學院經典著作,然而現實的情況是,失敗的專案比比皆是,客戶與開發商常常形成雙輸的結局。

其 實事情應該簡單一些,軟體系統不就是把我們在生活中看得見、摸得著的一些事情翻譯成計算機程式,然後在計算機裡執行,我們每天只是用它來協助完成工作,一 個工具而已。這個過程和我們看見花鳥木石而後吟詩作畫,然後放在那裡偶爾賞玩一下的情況並無根本的區別。所以,在某種程度上,軟體系統的設計更接近於一項 藝術創作,一個工程形式的藝術創作,而不是一項科學活動。

所以,我們在設計軟體系統的時候,在方法上要儘量回到事物的本源,無論是OO,還是程式導向的OP,僅是我們畫筆、畫風不同而已。

這 樣,在設計過程中,最關鍵的是方案師在自己大腦中通過深入的思考所產生的那個目標系統的印象。說到印象,如果我們見過梵高的《向日葵》,或者莫奈的《日 出·印象》,那麼我們就可以知道藝術家於藝術之間的關係,也知道藝術家與工匠之間的區別,也就更能理解老子所說的“惚兮恍兮其中有象。恍兮惚兮其中有物” 的蘊含的道理了。其實,軟體系統設計的基本方法也就是從恍恍惚惚之中,在方案師自己的經驗、印象、想像的基礎上,把系統的輪廓能夠勾畫出來,中間在疊加上 自己對這門業務學問的理解,以及對很多精微細則的鑽研,一個優秀的軟體至少在概念上會有了基礎。

在規範中談論這些,目的是在思想上能夠對大家有所引導,建立一些基本的意識,這些思想意識無形中會對大家實際的工作方法有所借鑑。

這些話有些玄虛,要說得白話一些。這樣,我們可以把操作層面的方法要求來個一二三四了:

1、我們採用的是敏捷開發模式,我們的敏捷是基於我們的業務分析和設計經驗來完成的。在專案中,設計師(也叫方案師)是專案組的核心。

2、 做軟體要努力地從整體上進行把握,所以,我們的設計工作是包含需求分析的,不要把需求和設計分割開來。需求在很大程度上是為商務服務的,設計是為技術目標 而完成的。方案師首先把自己要定位在技術人員的位置上,商務工作由公司來考量。軟體系統在專案中的演進是以一個整體來逐步明晰的,所謂“其中有象、其中有 物、其中有精”,這是一個系統不斷明確的過程。

3、系統的設計目標是三個方面:功能、資料庫和功能內部的邏輯處理。方案師的工作就是想清 楚、說出來,告訴工程師,那麼系統也就可以開發了。這個過程和一個要蓋房子的師傅,告訴徒弟們房子大概是什麼樣子,每個部分應該怎麼做的道理是一樣的,我 想,做過新房裝修的人,應該能夠理解這些。

4、設計工作在專案規劃階段就要開始,方法基本是一樣的,但是對系統的認識和勾畫的深度、廣度是有所差別的,業務目標也是不一樣的。規劃階段是為了售前商務,設計階段是為了交付系統。

因此,做軟體,基本的哲學就是遵循常識,所以,做軟體,方法也是很簡單的,只要你的腦袋勤于思考,勤於分析就可以了。

這 樣,我們的分析和設計工作的場景就是,一支筆、一張紙,還有一杯咖啡,香氣縈繞,啟用我們的思維,把所有能夠想到的業務場景想像出來,分析、抽象、建模, 很快,系統的輪廓就形成了。做工作時,可以集合一群人,到咖啡廳小座片刻,清談論道;也可以自己獨處,發呆數日,求得頓悟的那一刻。所有的方法其實就是一 個“玄”---把事物的機理說清楚,一個“清”字---描述那個形而上的概念系統。

超脫一些,自然有著意外的收穫。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/190707/viewspace-613236/,如需轉載,請註明出處,否則將追究法律責任。

相關文章