軟體功能是不是越多越好

來源:互聯網
上載者:User

軟體業流傳有這麼一句話:

有兩種方式構建軟體設計:一種是把軟體做得很簡單以至於明顯找不到缺陷;另一種是把它做得很複雜以至於找不到明顯的缺陷。

最近接手一個項目。軟體是一個開發工具,類似VS那種的可視化開發。
原來的軟體使用了Interop.SourceSafeTypeLib.dll用VSS進資料列版本設定,後來眾多因素,版本控制的功能也就去掉了,增加一個FTP功能。
中間接手的項目肯定會有各種各樣的問題,但是FTP這個功能基本是一個全新的且獨立的(自主性非常高,完全可以廢棄曾經做的),不存在閱讀他人代碼的問題。
需求給的很簡單:

FTP上傳,下載功能要求實現伺服器檔案和本地檔案的同步,上傳是將本地檔案同步到伺服器(Commit),下載是將伺服器上檔案同步到本地(Update),上傳和下載時需要進行判斷,當前兩面檔案是否一致,初步計劃以檔案大小或者更新時間為依據。
開發時遇到的一些問題

頁面配置簡直信手拈來:

但是做了兩天,發現需求無法確定軟體功能,而軟體功能究竟要做多少才是夠用
由於受Total Commander的影響,對於這種左邊一個目錄,右邊一個目錄感覺很“順眼。但是做起來卻是問題多多。
比如ListView的排序問題,從外部給目前的目錄增加檔案、刪除檔案後的重新整理問題,Unix檔案格式和Windows檔案格式問題,下載、上傳時檔案重名的覆蓋、跳過、重新命名問題……

尤其在做重新命名時,發現遠遠沒有自己想的那麼簡單。
這些功能,要說都是很基本的一些,檔案操作天天都在用,但是做起來遠遠沒有自己想的那麼容易。

功能到底要做多少

一個FTP的上傳、下載功能而已,有那麼難嗎?

是的,不難。
先不說類庫中專門有針對FTP的封裝,相信即使直接使用FTP命令做到“能上傳”、“能下載”都很簡單。但一個軟體光做到“能”還是遠遠不夠的。
我在軟體開發時,不止一次的想:

這個功能做不做?FTP代理(防火牆)做不做?  FTP保持串連(發送虛包)做不做?  檔案差異高亮顯示功能做不做?  支援不支援上傳下載目錄?  ……

某人曾經說我:你這是自己給自己找需求。
試想在需求如此空泛的情況下,我能不自己給自己找需求嗎?

本來軟體做了一個FTP的上傳功能,對於當前編輯的檔案,選擇菜單中的上傳,自動上傳當前檔案到設定的預設FTP伺服器,如果伺服器上已經有同名檔案,進行提示。
要說這個功能也就夠了,能滿足所謂的“需求”。

功能是不是越多越好
把這個功能做上,即使用不到先放在那裡。  這個是錦上添花的功能,做了更好。  時間充足的情況下,這個功能還是做上。  ……

正如本文開始所說,軟體越複雜,缺陷、問題越多。
功能不是越多越好,功能不是想到了用不到加上無所謂。
每增加一個功能,要考慮對這個影響不影響,對那個影響不影響,要進行多少測試才可以,怎能是隨便就能增加?
要說功能應該在軟體設計前期確定下來,但我經曆的幾個公司,只有粗略的計劃,而沒有詳細的設計,只是說這個軟體“能幹什麼幹什麼”,完全一副行外人的感覺。就好比我告訴你QQ能聊天,IE能瀏覽網頁……
當然,我總是在批評,但是真正讓我開始做還是一樣。
大概去年,我完全負責一個小軟體開發,我一直告訴自己,設計、設計,但是還是軟體開始沒三天就開始進行編碼……

寫在後面

軟體開發真所謂一個複雜而漫長的學習旅途。
我越來越覺得曾經在小公司市老闆做法很對:
項目還沒確定下來,就讓我們先做出一個軟體出來,投標的時候,其他功能介紹自己的軟體有什麼什麼功能,能達到什麼什麼目的,而我們直接給客戶示範。

客戶本來是沒有需求的,但是當你給他軟體的時候他就有需求了。

我的部落格原文地址:軟體功能是不是越多越好

歡迎來我的部落格:nanqi.info

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.