分析問題的模式

需求分析

不得不將需求調研和分析分開,從字面上應該很容易區分,然而實際工作中,有時候並沒有嚴格區分。調研是一種比較原始的資料收集和整理,也可以用數據倉庫系統作比喻,它就是從數據源到數據倉庫的過程,數據源對應被調研客戶,數據倉庫對應着需求調研文檔,這是經過抽取(詢問)、清洗轉換(合併、合理表達)、以及裝載(編寫)的過程。但這個結果還不是最終的目的,還得有分析,就像基於數據倉庫數據作分析一樣。

分析需求或是分析經營活動,都可以按照一定的模式,抽象到高一層次,它們是同一的。例如可以認爲,分析的步驟是"明晰目標、分門別類、去蕪存菁",之前,曾就後兩者寫過一些文字,參見,那是用分析存儲過程代碼來舉例子的。看,雖然待分析的事物不同,但模式相同。

如何分析需求?從不同的地市,相同的部門收集了很多需求,有的形成書面的材料,一二三四列出來給你;有的臨時跟你噴一通,你自己記着;還有的可能沒什麼思路,可能爲了應付差事,給你點東西,非常可疑的東西。拿着這些材料,就得合計,哪些是同質的,只是表達方式不同,哪些需求是大家提出最多的,哪些是矛盾的,哪些可能是應付差事的。這就已經在開始分析矣。

但如果僅僅是腦筋在轉動,這樣的分析還不夠,還得有工具、方法的支持。個人習慣上,還是用伊克賽來吧,這是一個分門別類的好工具。另外思維圖也是一種不錯的工具,但是它得到的結果不夠結構化,不便後面的去蕪存菁。

當然,在這兩步之前,一定要將分析的目標表述清楚,能否用一句話表述。當然,這句話不能是口號,諸如"要建設有中國特色的經營分析系統",這句話必須得能夠深入進去挖掘其含義的。譬如說需求分析的目標,"是要滿足對系統規格的定義,作爲架構設計的輸入"。這是一個目標,其中"規格"、"架構設計"、"輸入"都能夠深入,繼續定義。否則,就是一句口號。

經營分析

看看如何分析經營活動吧。經常,有人會提出類似下面的問題,"如何分析某種客戶",這裏的某種例如新增客戶、集團客戶等等,代表某一羣體的。這類羣體已經有明顯的分類屬性來標識。
但如果從上面的分析三步曲來看,顯然這個提問的第一步,"明確目標"並沒有做好。可能還會繼續深入地提問,"某種客戶的行爲模式是什麼樣的?","某種客戶的貢獻變化是什麼樣的?"這更加清楚一些,但仍然需要對這個"行爲模式"或者"貢獻變化"作出定義。行爲模式可以定義爲"使用業務的量、方式",貢獻可以定義爲"成本、收入",而"變化",則定義爲"在時間上的差異"。
所以可以將這類分析的目標表述爲"某種客戶,甚至其中更小的羣體,可以爲之制定什麼樣的營銷政策?"
再深入下去,則是爲此類客戶"分門別類",客戶一般的屬性儘可附上,諸如所屬地市、套餐、渠道等等,再則,就是其消費、帳務、交互屬性,消費諸如長途、漫遊時長,帳務如是否有月租、優惠費用等,交互如投訴次數、繳費次數、方式等。凡是客戶,總是有一些共通的基本屬性集,而針對具體的"某種"客戶,可以有特定的屬性,例如智能網用戶,有"狀態變化"的屬性。這些屬性就是細分此種客戶的輸入變量,這裏稱爲"變量"是借用數據挖掘的術語。
當然就電信的客戶來說,還有一些共通的地方,就是關注這些客戶什麼時候入網、什麼時候離網。也就是常提到的"生命週期",其實就可以將某種客戶首先分爲四種,老客戶、新客戶、離網客戶和不穩定客戶。當然,這裏的定義和傳統的定義有所區別,所謂老客戶是指在分析週期(數據的時間跨度)之前入網的,新客戶是指在分析週期內入網的,離網客戶指在分析週期內離網的,而不穩定客戶是指在在分析週期內即入網又離網的客戶。

這些都可以算作客戶的"屬性",細分客戶。然而這種屬性太多,需要挑出一些重要的屬性,併爲之命名。這在數據挖掘中是兩步,聚類和概念描述。另外,從經驗角度,分析人員、市場人員關注自己心目中的那些羣體的客戶,這裏羣體的標準不固定。比如說離網客戶,可能上面有個明文規定的標準——如"註銷的或是停機三月的",但可能他們說得離網客戶是按照另外一個自己的標準,例如"註銷的、停機三月的,或者最近三月消費小於10塊的"。這是正常的分析需要,但底層數據支持起來比較喫力,因此到似乎可以考慮" 用戶標籤"的方法。

在幾乎所有的分析中,發現有兩個維度是必不可少的——時間和地域。時間上可以分析變化,同比、環比、趨勢等,地域上分析分佈對比。這點應該不論是電信,還是其他行業,似乎都是需要的吧。

 

總體設計和詳細設計

對於總體設計和詳細設計,我現在還不能很清楚的定義。但是就一般的原則來說,總體設計先於詳細設計。總體設計應該記錄的是共通的、穩定的、全局的設計思路、方法和規範。而在詳細設計中,要給出每個環節的實現方法。一個是邏輯的,一個是物理的。由此,我倒是認爲原來的那份總體設計更名副其實,因爲是務虛的。而我寫的這份帶有很多物理實現的痕跡,因爲對工具不熟,以後必定要繼續修訂。

這裏麪包含一個變與不變的判斷。以前和同事交流這個問題,就提出過要分離出不變的部分,在程序設計中就是要提取共通部分。相信這是任何工作的一個重要部分。哲學尋求世界的本源,科學探求事物的規律,開發程序先概念、後邏輯再物理,人們工作中不斷總結自己的經驗。這都是在尋求"不變"的例子。

人對事物的認識是逐漸的,開始看到的事物,幾乎都是變化的部分,和以前接觸的事物不一樣,隨着瞭解加深,又發現其實很多部分和其他事物有相似之處。這就是一個變化到不變的過程,古話叫做"求同存異",現在流行的叫"抽象"。就那我們作需求來說吧,在軟件行業,通常作需求的人不是真正的業務專家,當他剛接觸這個業務,摸不着頭腦,讓他幹三個月,他就會發現這些業務和以前接觸的其他業務有如此多的相似之處,比如流程雖不同,但是流程的機制卻是相同的。還記得IBM和那個叫Model什麼公司研究的概念模型,理論上就是對業務的一種抽象,求不變。9大概念,無論是電信還是金融,都可以對應的上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章