需求的實踐(5)細節需求時期(下)
和業務建模時期不同的是,我不再花費筆墨討論需求要如何做,因為做法、注意點和業務建模時期並沒有什麼太大的區別。而在完整的流程上,像RUP、XP之類的方法學可比我講的要好的多。因此,我會把焦點集中在我在實際工作中的一些困惑,以及一些思考。
1、"和其它階段的關系"的再思考。
上一篇的末尾我們簡單的討論了細節需求階段和其它階段的關系。對於軟件過程的各個階段,不同之處只是注重的焦點不同而已。在業務建模階段,我們關注於系統的整體需求;在細節需求階段,我們更關注於需求的細節部分。其它的階段也是一樣,架構階段,所關注的當然是如何設計出一個合適的架構;到了設計階段,注意力就轉移到了如何設計方面。
當然,焦點的不同,導致了各個階段所需要的技能和工具也不盡相同。業務建模階段需要你有整體的把握能力,你可以使用簡單的用例圖,基本的用戶素材等工具。細節需求階段則要求你能夠充分的挖掘需求和進行良好的溝通。相應的,在架構、分析、設計等階段,也會有不同的需要。
各個階段的實質就是注重點的不同,這對於大多數的軟件開發而言都是一樣的。不論你采用的過程是傳統的,還是迭代的。
2、架構
Martin Fowler在他的ISA中寫到:
I'm using architecture to mean the important design decisions, the ones that shape most aspects of a software system. These are often the harder decisions to change later on in the project (although often not as hard as people think). As a result these are ones where it's useful to start in the right direction, and thus knowing about architecture is a valuable skill for any software developer.
架構並不神秘,無非是一個決策而已,只是這項決策對軟件特別重要就是了。軟件開發人員可能根本沒有主動的進行架構設計,但是他的行為,已經潛移默化的進行了;而還有一些人,總在談論著架構,但是並不了解這個詞的含義。
春運就要到了,學生也要趕著回家。如何選擇回家的交通工具就是一個重要的決策。路程的遠近、不同交通工具的價格都是顯式的,比較容易知道的。而以往的經驗也告訴你,火車票比較便宜,但是比較緊張,花費時間較長,整個過程也不舒服;飛機票比較貴,但是容易買到,花費時間少,整個過程很舒服。這時候你就要做出正確的決策,為回家選擇一個正確的架構。你可能考慮的因素有哪一些?以下就列出了一些可能的因素: 擁擠程度,大家都知道春運時那種情況; 購買票的難易程度,火車票需要很早就要預定了; 是否有額外的渠道,比如你能夠買到飛機的學生票; 經濟實力,經過了一個學期的花銷之後,現在還剩多少生活費;