清玄的敏捷
做軟體的系統的分析和設計,現在已經有無數的學院經典著作,然而現實的情況是,失敗的專案比比皆是,客戶與開發商常常形成雙輸的結局。
其 實事情應該簡單一些,軟體系統不就是把我們在生活中看得見、摸得著的一些事情翻譯成計算機程式,然後在計算機裡執行,我們每天只是用它來協助完成工作,一 個工具而已。這個過程和我們看見花鳥木石而後吟詩作畫,然後放在那裡偶爾賞玩一下的情況並無根本的區別。所以,在某種程度上,軟體系統的設計更接近於一項 藝術創作,一個工程形式的藝術創作,而不是一項科學活動。
所以,我們在設計軟體系統的時候,在方法上要儘量回到事物的本源,無論是OO,還是程式導向的OP,僅是我們畫筆、畫風不同而已。
這 樣,在設計過程中,最關鍵的是方案師在自己大腦中通過深入的思考所產生的那個目標系統的印象。說到印象,如果我們見過梵高的《向日葵》,或者莫奈的《日 出·印象》,那麼我們就可以知道藝術家於藝術之間的關係,也知道藝術家與工匠之間的區別,也就更能理解老子所說的“惚兮恍兮其中有象。恍兮惚兮其中有物” 的蘊含的道理了。其實,軟體系統設計的基本方法也就是從恍恍惚惚之中,在方案師自己的經驗、印象、想像的基礎上,把系統的輪廓能夠勾畫出來,中間在疊加上 自己對這門業務學問的理解,以及對很多精微細則的鑽研,一個優秀的軟體至少在概念上會有了基礎。
在規範中談論這些,目的是在思想上能夠對大家有所引導,建立一些基本的意識,這些思想意識無形中會對大家實際的工作方法有所借鑑。
這些話有些玄虛,要說得白話一些。這樣,我們可以把操作層面的方法要求來個一二三四了:
1、我們採用的是敏捷開發模式,我們的敏捷是基於我們的業務分析和設計經驗來完成的。在專案中,設計師(也叫方案師)是專案組的核心。
2、 做軟體要努力地從整體上進行把握,所以,我們的設計工作是包含需求分析的,不要把需求和設計分割開來。需求在很大程度上是為商務服務的,設計是為技術目標 而完成的。方案師首先把自己要定位在技術人員的位置上,商務工作由公司來考量。軟體系統在專案中的演進是以一個整體來逐步明晰的,所謂“其中有象、其中有 物、其中有精”,這是一個系統不斷明確的過程。
3、系統的設計目標是三個方面:功能、資料庫和功能內部的邏輯處理。方案師的工作就是想清 楚、說出來,告訴工程師,那麼系統也就可以開發了。這個過程和一個要蓋房子的師傅,告訴徒弟們房子大概是什麼樣子,每個部分應該怎麼做的道理是一樣的,我 想,做過新房裝修的人,應該能夠理解這些。
4、設計工作在專案規劃階段就要開始,方法基本是一樣的,但是對系統的認識和勾畫的深度、廣度是有所差別的,業務目標也是不一樣的。規劃階段是為了售前商務,設計階段是為了交付系統。
因此,做軟體,基本的哲學就是遵循常識,所以,做軟體,方法也是很簡單的,只要你的腦袋勤于思考,勤於分析就可以了。
這 樣,我們的分析和設計工作的場景就是,一支筆、一張紙,還有一杯咖啡,香氣縈繞,啟用我們的思維,把所有能夠想到的業務場景想像出來,分析、抽象、建模, 很快,系統的輪廓就形成了。做工作時,可以集合一群人,到咖啡廳小座片刻,清談論道;也可以自己獨處,發呆數日,求得頓悟的那一刻。所有的方法其實就是一 個“玄”---把事物的機理說清楚,一個“清”字---描述那個形而上的概念系統。
超脫一些,自然有著意外的收穫。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/190707/viewspace-613236/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [玄月]安裝mysqlMySql
- 解析·玄學 模擬退火
- [玄月]MySQL許可權MySql
- 這十年,阿里開發者畢玄的日常阿里
- T3 玄泡麵求調
- go中陣列,切片和append的玄學Go陣列APP
- 玄學野路子專案,探秘解析
- 敏捷的思考敏捷
- 敏捷的文件敏捷
- 阿里畢玄:程式設計師的成長路線阿里程式設計師
- 中式太極敏捷與西式敏捷的區別敏捷
- 敏捷的實質敏捷
- 裁員下的敏捷敏捷
- 敏捷的好處敏捷
- 敏捷史話(八):敏捷的破局之道——Martin Fowler敏捷
- 解讀敏捷2 - 敏捷實施的六個陷阱敏捷
- 敏捷史話(十二):你現在接觸的敏捷也許是“黑暗敏捷”——Ron Jeffries敏捷
- 阿里畢玄:程式設計師如何提升自己的硬實力阿里程式設計師
- 敏捷史話(四):敏捷是人的天性 —— Arie van Bennekum敏捷
- 神馬是敏捷?(3)——敏捷在中國的水土不服敏捷
- 敏捷與CMM的恩怨敏捷
- 新的《敏捷宣言》 - Magno敏捷
- RUP是敏捷的嗎?敏捷
- 敏捷的雲端計算?敏捷
- 最流行的敏捷方法敏捷
- 把握敏捷的實質敏捷
- 敏捷專家認為敏捷框架SAFe實際最不敏捷敏捷框架
- 常用的Git命令清單Git
- 阿里玄難:面向不確定性的軟體設計幾點思考阿里
- 【羅玄】從鎖的角度看rebuild index online和rebuild indexRebuildIndex
- 敏捷開發的優勢以及敏捷工具在其中的重要性敏捷
- 敏捷擁護者眼中敏捷開發的常見問題敏捷
- 敏捷史話(五):敏捷已逝 —— Dave Thomas敏捷
- 敏捷開發大家談(五)--敏捷開發的設計原則敏捷
- 敏捷史話(九):用做麵包的方式做敏捷——Alistair Cockburn敏捷AI
- SAFe敏捷框架下的工具,實現規模化敏捷開發敏捷框架
- 敏捷開發|私藏的3個敏捷專案管理工具!敏捷專案管理
- 敏捷專家的衰落——實施敏捷必須面面俱到?敏捷