選擇java 進入自由開放的國度

          隨筆 - 49, 文章 - 3, 評論 - 154, 引用 - 1
          數據加載中……

          我的創業日記1(第一“桶”金)——理解軟件產品

                   每個創業者都會有第一桶金,這對于創業者來說,是啟動資金,是公司能開航的動力;對于聽眾或者觀眾來說,有的可能就是奇跡、神話、傳奇,等等之類的。對我來說,這第一“桶”金,是我創業的直接“導火索”,同時也是我的啟動資金,這中間更多的是我的沖動,是一種藏在心底里長久的一種火苗的突然燃燒。所以對于聽眾來說,可能比較平淡無奇了。
                  公司的第一個項目,也是我第一桶金的資金來源,既然是公司做的東西了,肯定不能象toy軟件了,要真正當作一個軟件產品來做了,要有需求分析,軟件架構設計,數據庫設計,編寫源代碼,測試,維護等環節了。因為剛開始公司就我們兩個人,所以我們兩個就充當了架構設計師,軟件工程師,測試工程師,售后工程師等角色。
                 雖然以前也做過很多項目,也和很多人合作開發過,但是真正的流程還是理解的不夠,其實在軟件開發中這個流程是非常重要的。下面我就以我的親身體驗來說明軟件開發中的各個環節,這同時也是我的教訓,其中有許多可能也是不對的,希望朋友們給予指正。
                 項目描述:是一個生產企業的綜合計劃管理系統,包括了訂單管理,排產管理,令號管理,銷售管理,發運管理五個模塊,另外還有綜合查詢等統計信息。
                  需求——你受客戶的影響有多大?了解了基本需求之后,我做了一個解決方案,其中包括了J2EE架構和.NET架構,并詳細描述了各自的有缺點和環境需求,讓客戶來選擇。我向客戶推薦的是采用J2EE架構,一方面是我的原因,我想在J2EE設計中積累更多的經驗,二是客戶的公司的訂單的處理將來可以移到Internet,實施E-commerce。當把方案拿給客戶以后,我自然的推薦了J2EE模式,但是這個客戶他本身還是很了解技術的,他說J2EE比較復雜,將來維護的費用會比較高,另外他也不是太懂,因為以前他開發了公司的網站系統,使用ASP開發的,所以他就建議我們使用ASP開發,一是ASP的環境要求比較低,二是將來他可以自己維護,譬如需要什么報表,他就可以自己加進去。因為是我的第一個項目,所以我也接受了他的建議。說句實話,對于生產企業的管理系統,我還是第一次做,其中的一些流程我一點都不清楚,好多名詞更是第一次聽說,如“令號”,“排產”等。這也給我寫需求造成了困難,在和客戶交流了一周多后,我基本熟悉了流程,客戶也把數據表的要求寫出來了,綜合了我所了解的業務后,我寫了一篇洋洋灑灑的《需求分析說明書》,這也是我第一次這么完整、規范的一個需求分析。
                 架構設計——能設計出一種彈性、合理的架構嗎?以前設計的軟件,我沒有這個環節,直接拿來題目,根據經驗馬上就開始編碼。但我現在是公司了,必須要按照規范來作,即使我做的不好,我也必須加入這個環節。當然要想設計出彈性靈活的架構,不是一朝一夕就有這個功力的,對于一個軟件也不是一次就能設計出非常好的架構的。李維在《面向對象設計實踐之路》中提到的PFM系統,之前也是為了完成任務而做的,我之前設計的軟件可能都是這樣的,沒有什么架構而言的,現在要對PFM改造,進行重新設計,使之有一個彈性靈活的架構,但也要經過幾次反復之后才行。
                 界面設計——能設計出簡潔美觀符合習慣的界面嗎?以前不很注意,界面隨便搞一下就可以了,以前看了林銳的《Web界面設計》覺得沒有什么看的,覺得我都知道,當這次我要真正的要進行界面設計的時候,我覺得他說得好多我可能正要碰到或者將要碰到,覺得很多“規則”還是很有道理的。我不見得要設計出非常有創意的界面,但是我應該設計出標準的界面,不能讓用戶一看,啊!真難看啊!所以這次我對于界面非常的注重,因為這個是給用戶的第一感覺。功能是軟件的第一要素,如果軟件連客戶的功能都沒有實現,就別提別的了,當功能實現以后,就要讓用戶用著舒服,看著舒服,界面一致。軟件的界面和寫文檔一樣,有沒有用心一看就有結果了。
                 程序編碼——是反思一下編程技巧的時候了?編碼,以前變了很多,C/C++,Delphi,VB,ASP,PHP,JAVA等等,都編過,但那種編碼缺少一種藝術性,當然也缺乏規范,那是為了完成任務而寫的。但這次不同,這次是做為公司的產品,是代表我公司的形象的,是該反思一下編碼的問題了,不能讓客戶一看我的代碼,就覺得我象個業余的似的。以前使用ASP,關鍵代碼和界面一起,顯得非常的混亂,即使最后發覺了,也懶得去改了,一個軟件到最后,自己都不想看自己的代碼了,這種情況在這一次絕對不能出現。我要實現數據和界面的分離,要實現統一的錯誤機制,實現單一登錄,實現靈活而嚴謹的權限管理等等。
                 軟件測試——程序員加入了單元測試了嗎?是不是應該寫出完整的測試用例和測試文檔?測試,這是以前根本不當回事的,但這次一定不但要加入這個環節,而且還要建立一套測試流程,不能給客戶的軟件,出現一些注釋,出現一下不該有的錯誤。我對每個模塊建立了詳細的測試用例,寫了測試跟蹤表,寫了測試報告,并且我和另外一個開發人員互相測試,也理解了“不能讓自己看自己代碼”,當然這次測試都是手工進行的,以后要加入自動化測試。
                 軟件周期管理——能控制住軟件的進度嗎?這是做為管理者,做為經理應該具備的,要能保證控制住軟件開放的進度和周期。這次我也充當了管理的角色,這也是第一次。
                 軟件交付——軟件能讓自己滿意嗎?

                 思考:流程、管理對于一個公司是非常重要的,拿軟件產品來說,流程和管理的規范應能使得軟件的交付更加及時,但是對于剛起步的小公司來說,是一上來就規范呢?還是先按作坊式發展?

          (由于時間太緊,細節沒有列出,將來補上)
          2006年3月4日

          下一篇:我的創業日記2(公司愿景)——我們的目標

          posted on 2006-03-04 19:16 soochow_hhb 以java論成敗 以架構論英雄 閱讀(3265) 評論(7)  編輯  收藏 所屬分類: 我的創業日記

          評論

          # re: 我的創業日記1(第一“桶”金)——理解軟件產品  回復  更多評論   

          保持平常心就好了,有些變化不是一下子可以實現的,公司的發展也是一個日程月累的過程,別給自己太大的壓力
          2006-03-05 09:30 | shaofan

          # re: 我的創業日記1(第一“桶”金)——理解軟件產品  回復  更多評論   

          我最近也有創業的計劃,

          可以多交流。


          不過,看了你寫的東西,我覺得你的東西前途堪憂。
          2006-03-06 12:54 | sog

          # re: 我的創業日記1(第一“桶”金)——理解軟件產品  回復  更多評論   

          開始盡量采用簡單的架構和過程,創業之初很缺錢,架構和過程都是很耗錢(或者時間)的。
          找一種簡單可行的方式開始運作,然后把注意力放在業務上,畢竟是在經營一個公司,而不是開研究所。
          僅供參考。
          2006-04-13 11:32 | 黃金時代已過

          # re: 我的創業日記1(第一“桶”金)——理解軟件產品  回復  更多評論   

          令號可能指工單,又稱工令單,制令,work order
          排產可能指排程,schedule
          2006-04-13 11:39 | 黃金時代已過

          # re: 我的創業日記1(第一“桶”金)——理解軟件產品  回復  更多評論   

          好樣的!
          2006-08-05 20:08 | 朱開番

          # re: 我的創業日記1(第一“桶”金)——理解軟件產品  回復  更多評論   

          我也經常有這個沖動的,但有些idea不是缺市場就是缺錢,直到現在還沒開始,萬事開頭難啊,如有機會能請教你嗎?
          2006-08-28 18:01 | 激情燃燒的歲月

          # re: 我的創業日記1(第一“桶”金)——理解軟件產品  回復  更多評論   

          朱開番你在那兒?看到后給我郵件lanqiwen@126.com
          2007-08-05 10:42 |
          主站蜘蛛池模板: 涞水县| 青浦区| 德化县| 阿拉尔市| 建始县| 麻栗坡县| 开远市| 松阳县| 海安县| 临安市| 新昌县| 宁陕县| 镇巴县| 蚌埠市| 阜康市| 凤山县| 潼南县| 乌拉特后旗| 烟台市| 浮山县| 高雄县| 莱芜市| 塘沽区| 德阳市| 黄大仙区| 邹平县| 盐边县| 腾冲县| 南通市| 连州市| 玉树县| 焉耆| 通山县| 师宗县| 门源| 南郑县| 葵青区| 黔南| 沐川县| 康定县| 章丘市|