經歷過不同的公司,也帶領過不少團隊,自然而然會參與不同的項目,遇到過有的同事接到一個新需求或者新任務時,一臉懵逼不知道如何入手。其實就是不知道如何分解需求,今天我們就從開發的角度來分解項目的需求,理清思路問題就迎刃而解。
項目首先得了解需求,如果不了解需求,談不上分解了,我不相信不了解需求的人能做好項目分解的工作,但現實生活中就有而且還不少這樣的同行,在不了解業務需求的情況下就說簡單、幾條SQL語句搞定,這是極其不負責的表現。了解業務后,我們一般會從橫向、縱向分解需求,橫向拆分是指拆分業務功能,縱向拆分是指業務功能落地生命周期的拆分,這也是我在工作中使用的分解方法。
橫向指的是項目的功能,比如,我們常見的OA系統主要有考勤、員工管理、薪資管理、績效管理等等,WMS系統則主要有倉庫管理、商品管理、供應商管理、入庫管理、出庫管理、PDA、RF等等,是不是這些功能,我們都分解成一個個獨立的功能單元進行開發呢,其實在現實項目中並不是這樣,還要看各個業務功能的耦合度,如果耦合度比較高,則建議合並成一個功能點,這樣更容易管理及業務實現,這也是DDD(領域驅動設計)所提倡的,各個業務需求的邊界是非常重要的,如果落地前沒有梳理清楚,后期實現是非常棘手,甚至可能直接導致項目的失敗。
縱向指的業務落地的生命周期,單個功能的需求分析清楚明了是首要任務,然后就是根據需求設計業務模型、數據模型、技術實現模型,及采用哪種方式、哪種語言來實現,還有為了保證業務的正常運行,需不需要考慮高可用、高並發,及如何解決,最后針對一個單元任務形成一個整體的方案。
項目的業務需求分解是一個復雜的過程,既要對業務需求熟悉,也要有技術沉淀,缺一不可,最重要的還是要在實際的項目中多實踐。如果有什么問題,可以加我微信,多多交流,共同進步。