我的創(chuàng)業(yè)日記1(第一“桶”金)——理解軟件產(chǎn)品
每個(gè)創(chuàng)業(yè)者都會(huì)有第一桶金,這對(duì)于創(chuàng)業(yè)者來(lái)說(shuō),是啟動(dòng)資金,是公司能開(kāi)航的動(dòng)力;對(duì)于聽(tīng)眾或者觀眾來(lái)說(shuō),有的可能就是奇跡、神話、傳奇,等等之類的。對(duì)我來(lái)說(shuō),這第一“桶”金,是我創(chuàng)業(yè)的直接“導(dǎo)火索”,同時(shí)也是我的啟動(dòng)資金,這中間更多的是我的沖動(dòng),是一種藏在心底里長(zhǎng)久的一種火苗的突然燃燒。所以對(duì)于聽(tīng)眾來(lái)說(shuō),可能比較平淡無(wú)奇了。
公司的第一個(gè)項(xiàng)目,也是我第一桶金的資金來(lái)源,既然是公司做的東西了,肯定不能象toy軟件了,要真正當(dāng)作一個(gè)軟件產(chǎn)品來(lái)做了,要有需求分析,軟件架構(gòu)設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì),編寫源代碼,測(cè)試,維護(hù)等環(huán)節(jié)了。因?yàn)閯傞_(kāi)始公司就我們兩個(gè)人,所以我們兩個(gè)就充當(dāng)了架構(gòu)設(shè)計(jì)師,軟件工程師,測(cè)試工程師,售后工程師等角色。
雖然以前也做過(guò)很多項(xiàng)目,也和很多人合作開(kāi)發(fā)過(guò),但是真正的流程還是理解的不夠,其實(shí)在軟件開(kāi)發(fā)中這個(gè)流程是非常重要的。下面我就以我的親身體驗(yàn)來(lái)說(shuō)明軟件開(kāi)發(fā)中的各個(gè)環(huán)節(jié),這同時(shí)也是我的教訓(xùn),其中有許多可能也是不對(duì)的,希望朋友們給予指正。
項(xiàng)目描述:是一個(gè)生產(chǎn)企業(yè)的綜合計(jì)劃管理系統(tǒng),包括了訂單管理,排產(chǎn)管理,令號(hào)管理,銷售管理,發(fā)運(yùn)管理五個(gè)模塊,另外還有綜合查詢等統(tǒng)計(jì)信息。
需求——你受客戶的影響有多大?了解了基本需求之后,我做了一個(gè)解決方案,其中包括了J2EE架構(gòu)和.NET架構(gòu),并詳細(xì)描述了各自的有缺點(diǎn)和環(huán)境需求,讓客戶來(lái)選擇。我向客戶推薦的是采用J2EE架構(gòu),一方面是我的原因,我想在J2EE設(shè)計(jì)中積累更多的經(jīng)驗(yàn),二是客戶的公司的訂單的處理將來(lái)可以移到Internet,實(shí)施E-commerce。當(dāng)把方案拿給客戶以后,我自然的推薦了J2EE模式,但是這個(gè)客戶他本身還是很了解技術(shù)的,他說(shuō)J2EE比較復(fù)雜,將來(lái)維護(hù)的費(fèi)用會(huì)比較高,另外他也不是太懂,因?yàn)橐郧八_(kāi)發(fā)了公司的網(wǎng)站系統(tǒng),使用ASP開(kāi)發(fā)的,所以他就建議我們使用ASP開(kāi)發(fā),一是ASP的環(huán)境要求比較低,二是將來(lái)他可以自己維護(hù),譬如需要什么報(bào)表,他就可以自己加進(jìn)去。因?yàn)槭俏业牡谝粋€(gè)項(xiàng)目,所以我也接受了他的建議。說(shuō)句實(shí)話,對(duì)于生產(chǎn)企業(yè)的管理系統(tǒng),我還是第一次做,其中的一些流程我一點(diǎn)都不清楚,好多名詞更是第一次聽(tīng)說(shuō),如“令號(hào)”,“排產(chǎn)”等。這也給我寫需求造成了困難,在和客戶交流了一周多后,我基本熟悉了流程,客戶也把數(shù)據(jù)表的要求寫出來(lái)了,綜合了我所了解的業(yè)務(wù)后,我寫了一篇洋洋灑灑的《需求分析說(shuō)明書》,這也是我第一次這么完整、規(guī)范的一個(gè)需求分析。
架構(gòu)設(shè)計(jì)——能設(shè)計(jì)出一種彈性、合理的架構(gòu)嗎?以前設(shè)計(jì)的軟件,我沒(méi)有這個(gè)環(huán)節(jié),直接拿來(lái)題目,根據(jù)經(jīng)驗(yàn)馬上就開(kāi)始編碼。但我現(xiàn)在是公司了,必須要按照規(guī)范來(lái)作,即使我做的不好,我也必須加入這個(gè)環(huán)節(jié)。當(dāng)然要想設(shè)計(jì)出彈性靈活的架構(gòu),不是一朝一夕就有這個(gè)功力的,對(duì)于一個(gè)軟件也不是一次就能設(shè)計(jì)出非常好的架構(gòu)的。李維在《面向?qū)ο笤O(shè)計(jì)實(shí)踐之路》中提到的PFM系統(tǒng),之前也是為了完成任務(wù)而做的,我之前設(shè)計(jì)的軟件可能都是這樣的,沒(méi)有什么架構(gòu)而言的,現(xiàn)在要對(duì)PFM改造,進(jìn)行重新設(shè)計(jì),使之有一個(gè)彈性靈活的架構(gòu),但也要經(jīng)過(guò)幾次反復(fù)之后才行。
界面設(shè)計(jì)——能設(shè)計(jì)出簡(jiǎn)潔美觀符合習(xí)慣的界面嗎?以前不很注意,界面隨便搞一下就可以了,以前看了林銳的《Web界面設(shè)計(jì)》覺(jué)得沒(méi)有什么看的,覺(jué)得我都知道,當(dāng)這次我要真正的要進(jìn)行界面設(shè)計(jì)的時(shí)候,我覺(jué)得他說(shuō)得好多我可能正要碰到或者將要碰到,覺(jué)得很多“規(guī)則”還是很有道理的。我不見(jiàn)得要設(shè)計(jì)出非常有創(chuàng)意的界面,但是我應(yīng)該設(shè)計(jì)出標(biāo)準(zhǔn)的界面,不能讓用戶一看,啊!真難看啊!所以這次我對(duì)于界面非常的注重,因?yàn)檫@個(gè)是給用戶的第一感覺(jué)。功能是軟件的第一要素,如果軟件連客戶的功能都沒(méi)有實(shí)現(xiàn),就別提別的了,當(dāng)功能實(shí)現(xiàn)以后,就要讓用戶用著舒服,看著舒服,界面一致。軟件的界面和寫文檔一樣,有沒(méi)有用心一看就有結(jié)果了。
程序編碼——是反思一下編程技巧的時(shí)候了?編碼,以前變了很多,C/C++,Delphi,VB,ASP,PHP,JAVA等等,都編過(guò),但那種編碼缺少一種藝術(shù)性,當(dāng)然也缺乏規(guī)范,那是為了完成任務(wù)而寫的。但這次不同,這次是做為公司的產(chǎn)品,是代表我公司的形象的,是該反思一下編碼的問(wèn)題了,不能讓客戶一看我的代碼,就覺(jué)得我象個(gè)業(yè)余的似的。以前使用ASP,關(guān)鍵代碼和界面一起,顯得非常的混亂,即使最后發(fā)覺(jué)了,也懶得去改了,一個(gè)軟件到最后,自己都不想看自己的代碼了,這種情況在這一次絕對(duì)不能出現(xiàn)。我要實(shí)現(xiàn)數(shù)據(jù)和界面的分離,要實(shí)現(xiàn)統(tǒng)一的錯(cuò)誤機(jī)制,實(shí)現(xiàn)單一登錄,實(shí)現(xiàn)靈活而嚴(yán)謹(jǐn)?shù)臋?quán)限管理等等。
軟件測(cè)試——程序員加入了單元測(cè)試了嗎?是不是應(yīng)該寫出完整的測(cè)試用例和測(cè)試文檔?測(cè)試,這是以前根本不當(dāng)回事的,但這次一定不但要加入這個(gè)環(huán)節(jié),而且還要建立一套測(cè)試流程,不能給客戶的軟件,出現(xiàn)一些注釋,出現(xiàn)一下不該有的錯(cuò)誤。我對(duì)每個(gè)模塊建立了詳細(xì)的測(cè)試用例,寫了測(cè)試跟蹤表,寫了測(cè)試報(bào)告,并且我和另外一個(gè)開(kāi)發(fā)人員互相測(cè)試,也理解了“不能讓自己看自己代碼”,當(dāng)然這次測(cè)試都是手工進(jìn)行的,以后要加入自動(dòng)化測(cè)試。
軟件周期管理——能控制住軟件的進(jìn)度嗎?這是做為管理者,做為經(jīng)理應(yīng)該具備的,要能保證控制住軟件開(kāi)放的進(jìn)度和周期。這次我也充當(dāng)了管理的角色,這也是第一次。
軟件交付——軟件能讓自己滿意嗎?
思考:流程、管理對(duì)于一個(gè)公司是非常重要的,拿軟件產(chǎn)品來(lái)說(shuō),流程和管理的規(guī)范應(yīng)能使得軟件的交付更加及時(shí),但是對(duì)于剛起步的小公司來(lái)說(shuō),是一上來(lái)就規(guī)范呢?還是先按作坊式發(fā)展?
(由于時(shí)間太緊,細(xì)節(jié)沒(méi)有列出,將來(lái)補(bǔ)上)
2006年3月4日
下一篇:我的創(chuàng)業(yè)日記2(公司愿景)——我們的目標(biāo)
posted on 2006-03-04 19:16 soochow_hhb 以java論成敗 以架構(gòu)論英雄 閱讀(3266) 評(píng)論(7) 編輯 收藏 所屬分類: 我的創(chuàng)業(yè)日記