软件开发之文档的重要性
??????? 大三下學(xué)期,一次偶然的機會讓我開發(fā)了一個完整的小項目,也讓我第一次對軟件開發(fā)的整體流程有了一個比較全面細(xì)致的了解。比起那些還沒有參加工作的學(xué)生來說,能這么早接觸到實際項目開發(fā)真的是很幸運,其實也非常感謝那位老師。話不多說,轉(zhuǎn)入正題。今天要總結(jié)的是:軟件開發(fā)中文檔的重要性。
??????? 首先說一說我對軟件開發(fā)流程一個基本了解。總體上來說,軟件開發(fā)有以下幾個主要的階段(當(dāng)然我這些肯定不是最全面的)。需求獲取階段——文檔設(shè)計階段——代碼實現(xiàn)階段——測試階段——維護階段,而且他們的先后順序是不能顛倒的。
??????? 大三開發(fā)那個項目是老師幫我確定了軟件的整體架構(gòu),后面的文檔編寫,代碼實現(xiàn),測試維護工作都由我來做,當(dāng)然整個過程是伴隨著老師的指導(dǎo)進行的。那個時候,老師經(jīng)常和我說的兩句話讓我記憶非常深刻。第一,要想保證一個軟件成功開發(fā),必學(xué)先寫文檔(確定需求,確定架構(gòu),然后撰寫需求分析,概要設(shè)計,詳細(xì)設(shè)計)。用戶的需求如果確定的明明白白,那么這個軟件就已經(jīng)成功一半了。這點是我到了公司參加工作以后才明白的,因為需求搞不明白的話,后面的所有工作都是很難展開的。對于很多初學(xué)者來說可能不喜歡寫文檔,我就是是其中的一位。那個項目老師讓我寫了一個多月的文檔,讓我在文檔層面把所有的業(yè)務(wù)邏輯弄明白。第二,工作做得越細(xì)越好(就是把每一個細(xì)小的功能模塊的詳細(xì)實現(xiàn)都要寫明白,所有的類圖,流程圖等等都要寫明白,后來慢慢的才知道,工作做的越細(xì),你對業(yè)務(wù)邏輯的把控力就越強,對業(yè)務(wù)的理解就會越透徹,實現(xiàn)起來就會更簡單。如果工作做的不細(xì),對于沒有經(jīng)驗的人來說,從宏觀上去把控業(yè)務(wù)會有些力不從心)。沒寫文檔前,我以為代碼的實現(xiàn)大概在20-30天左右,這是保守的時間估算。但后來的結(jié)果非常出乎我的意料,寫完所有的代碼用了不到十天的時間。這是我第一次意識到文檔對后期代碼實現(xiàn)的指導(dǎo)作用。??????????
??????? 所以說,文檔一定要先于代碼,不能顛倒。2015年11月份,我在公司接觸到了另外一個項目。公司給我的文檔不僅少(只有大概的功能概述,有些是還是手寫的),而且書寫極不規(guī)范,這使我短時間內(nèi)根本不無法把控用戶需求,連用戶想要做什么都搞不明白。數(shù)據(jù)庫的表就給了一個簡單的Excel表格,對表字段的說明也就4-8個字左右。很多字段我完全搞不明白是干什么的。這讓我更感覺到文檔在軟件開發(fā)的重要性絕對是五星的。沒有詳細(xì)的文檔,后來的開發(fā)人員很難迅速上手,弄懂需求。
??????? 還有一點,文檔如果足夠詳細(xì)和明白,就不用太擔(dān)心項目換人。因為即使還了別人開發(fā),他們也可以通過文檔從整體上理解整個項目。
??????? 文檔先于代碼,這點是正確的,但這并不是說,在代碼實現(xiàn)之前所有的文檔都要寫的清清楚楚。因為用戶的需求永遠(yuǎn)都在變,或許用戶連自己想要做什么都說不明白,更別說我們這些需求人員和開發(fā)人員了。所以有時候,軟件的開發(fā)是一邊寫文檔一邊寫代碼的,在這種情況下,一定要注意一點:防止軟件架構(gòu)變動。不能讓變化的用戶需求改變了我們的架構(gòu),那樣的話,就太浪費時間和精力了。至于怎么保證架構(gòu)不變?這就要看你的需求人員怎么獲取需求了,怎么挖掘用戶的潛在需求了,看你的架構(gòu)師怎么確定架構(gòu)了等等。所以說,軟件開發(fā)進入代碼期之前的工作含金量是很高的!而且這些工作決一定要重視,因為這些工作可以決定軟件的成功于失敗。
? 薩爾菲wsda。碩大的D薩達(dá)第三SADSA要想
總結(jié)
以上是生活随笔為你收集整理的软件开发之文档的重要性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习 —— 概率图模型(Homewo
- 下一篇: getDate()返回日期不一致问题引发