怎樣做出好的軟件產(chǎn)品?
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/2/23 15:36:32 ] 推薦標(biāo)簽:
僅僅編程來(lái)說(shuō),實(shí)在是一件很簡(jiǎn)單的事,是“程序 = 算法 + 結(jié)構(gòu)”,但要想做出一個(gè)軟件產(chǎn)品來(lái)不是這么簡(jiǎn)單的事了。
雖然“程序 = 算法 + 結(jié)構(gòu)”沒(méi)錯(cuò),但隨著市場(chǎng)的變化,需求的變更,這些算法和結(jié)構(gòu)也是在時(shí)刻變動(dòng),有可能我們分析出這些算法和結(jié)構(gòu)后,投入到市場(chǎng)中卻發(fā)現(xiàn)產(chǎn)品已經(jīng)過(guò)時(shí)。所以我們有必要建立一個(gè)平臺(tái),用來(lái)管理和分析這些影響算法和結(jié)構(gòu),并導(dǎo)致其發(fā)生變化的需求,以至我們能夠?qū)崟r(shí)的把算法和結(jié)構(gòu)對(duì)應(yīng)的程序發(fā)布到市場(chǎng)中給客戶(hù)使用。
顯然這時(shí)候算法和結(jié)構(gòu)已經(jīng)越來(lái)越多,所以更加有必要建立一個(gè)開(kāi)發(fā)平臺(tái)來(lái)整理這些算法和結(jié)構(gòu),方便我們更好的開(kāi)發(fā)改進(jìn)程序。
但一個(gè)好的軟件產(chǎn)品除了程序本身,還有產(chǎn)品理念、操作說(shuō)明、培訓(xùn)教材、實(shí)施步驟、問(wèn)題反饋等一系列為客戶(hù)服務(wù)的事物,所以有必要建立一個(gè)實(shí)施平臺(tái)來(lái)存放這些事物,共享這些事物。
因此一個(gè)存在于市場(chǎng)的產(chǎn)品,必然擁有這三個(gè)平臺(tái):需求平臺(tái)、開(kāi)發(fā)平臺(tái)和實(shí)施平臺(tái)。
建立平臺(tái)要知道這個(gè)平臺(tái)包含哪些東西,有什么方法可以管理這些東西,這是個(gè)復(fù)雜而長(zhǎng)久的過(guò)程。我們只能夠先從簡(jiǎn)單的做起,從實(shí)踐中慢慢的整理出來(lái)這些內(nèi)容和方法。自己馬上實(shí)踐,總比別人成功后走別人的老路好!
首先要設(shè)立三個(gè)崗位,需求平臺(tái)組長(zhǎng)、開(kāi)發(fā)平臺(tái)組長(zhǎng)和實(shí)施平臺(tái)組長(zhǎng)。
需求平臺(tái)組長(zhǎng)把現(xiàn)在所有的需求全部收集整理,并實(shí)時(shí)的更新這些需求,可能開(kāi)始都是些文檔,手動(dòng)處理,形成規(guī)模可以考慮做一個(gè)管理工具,在線需求提交、審查等系統(tǒng)。
開(kāi)發(fā)平臺(tái)組長(zhǎng)整理所有程序功能模塊,重新整合設(shè)計(jì),提出公共的算法結(jié)構(gòu)等。
程序 = 算法 + 結(jié)構(gòu) + 方法
因?yàn)槌绦虻膹?fù)雜,所以我們?cè)诜治鏊惴ê徒Y(jié)構(gòu)的時(shí)候有了不同的方法,以前是面向過(guò)程,現(xiàn)在又面向?qū)ο,接著比較熱門(mén)的面向服務(wù)。這都是我們實(shí)踐中產(chǎn)生的一些方法,但他們也不是相互獨(dú)立的。面向?qū)ο罄锩婵赡馨嗣嫦蜻^(guò)程,面向服務(wù)里面也包括了面向?qū)ο。所以在?gòu)建不同的算法和結(jié)構(gòu)是需要用到不同的方法,我們現(xiàn)在用得多的算是面向?qū)ο蠓椒,所以面向(qū)ο笠渤闪碎_(kāi)發(fā)組長(zhǎng)整理的一個(gè)重要東西。
“懶人精神”并不是要我們做事懶,而是重于發(fā)現(xiàn),遇到問(wèn)題可以停下來(lái)多思考討論,可能找到了更好的方法。
實(shí)施平臺(tái)組長(zhǎng)負(fù)責(zé)整理實(shí)施需要的文檔,包括操作手冊(cè),培訓(xùn)教材等。
等到這些平臺(tái)都有所規(guī)模走上正道后,有必要還要成立一個(gè)質(zhì)量監(jiān)省平臺(tái),以第三方的眼光指導(dǎo)三個(gè)平臺(tái)的進(jìn)步。
現(xiàn)在阻礙這種開(kāi)發(fā)模式大的障礙是項(xiàng)目,為什么這么說(shuō),因?yàn)橐粋(gè)項(xiàng)目是一個(gè)陷阱,整個(gè)開(kāi)發(fā)部門(mén)十幾個(gè)人,如果有幾個(gè)項(xiàng)目在同時(shí)進(jìn)行,那么這十幾個(gè)人這樣分別掉進(jìn)了各自的項(xiàng)目,以致整個(gè)開(kāi)發(fā)部出現(xiàn)沒(méi)人沒(méi)時(shí)間的情況,變成一個(gè)空部門(mén)。
為什么每一個(gè)項(xiàng)目對(duì)于開(kāi)發(fā)部來(lái)說(shuō)都會(huì)變成了一個(gè)個(gè)陷阱了?
首先,產(chǎn)品的不成熟,由三個(gè)人幾個(gè)月搞出來(lái)的東西,沒(méi)有明確的需求,參考別的系統(tǒng)做,沒(méi)有正規(guī)的設(shè)計(jì),畫(huà)幾個(gè)流程圖,設(shè)計(jì)表結(jié)構(gòu)開(kāi)始編碼,沒(méi)有專(zhuān)業(yè)的測(cè)試,互相之間點(diǎn)點(diǎn)界面看有沒(méi)有錯(cuò)誤報(bào)出。這樣搞出來(lái)的東西,上場(chǎng)幾百萬(wàn)的項(xiàng)目,開(kāi)發(fā)人員哪跑得掉,F(xiàn)場(chǎng)調(diào)試程序,修改需求,到處救火。
其次,實(shí)施力量薄搦,隨便抓來(lái)的幾個(gè)人,沒(méi)有經(jīng)過(guò)系統(tǒng)的培訓(xùn),連個(gè)sql語(yǔ)句都寫(xiě)不出來(lái),更別說(shuō)跟客戶(hù)討論需求、擋需求,他們做的是培訓(xùn)客戶(hù),教他們操作,有問(wèn)題丟給開(kāi)發(fā)人員解決。
再次,客戶(hù)的素質(zhì)低下,使用系統(tǒng)的客戶(hù)大部分都沒(méi)摸過(guò)電腦,需要從打字培訓(xùn)起,提出的需求很隨意也很隨時(shí),大半年下來(lái)沒(méi)斷過(guò)需求。
后,公司領(lǐng)導(dǎo)層的制度方向,以打單搶占市場(chǎng)為重,對(duì)技術(shù)的漠視,人夠用行。沒(méi)有想過(guò)搞一批人認(rèn)認(rèn)真真的專(zhuān)門(mén)研究這個(gè)產(chǎn)品。
這些技術(shù)人員,在這個(gè)項(xiàng)目從頭到尾累死累活,轉(zhuǎn)到另一個(gè)項(xiàng)目又是從頭開(kāi)始。所以說(shuō)這些項(xiàng)目把所有的技術(shù)人員全部都陷了進(jìn)去,以致于公司技術(shù)部門(mén)空無(wú)一人,也是一本書(shū)上所說(shuō)的“軟件作坊”。
怎么跳出陷阱,走出軟件作坊?
下面是呂建偉先生說(shuō)的兩道防火墻教我們從哪里開(kāi)始走出軟件作坊。
大家想想美國(guó)金融危機(jī)吧。美國(guó)經(jīng)濟(jì)發(fā)生問(wèn)題,奧巴馬首先做的是什么?是設(shè)立防火墻,不要讓危機(jī)擴(kuò)展到更多的行業(yè)更深層次的方面。
我們想扭轉(zhuǎn)公司現(xiàn)狀,也是如此。先設(shè)立防火墻。
走出軟件作坊,我是以研發(fā)部門(mén)為中心的。當(dāng)然,和我交流的大部分人都是研發(fā)部的。大家都是共同的視角,共同的權(quán)限,想解決需要變革整個(gè)公司模式的問(wèn)題。
我們不可能變革其他部門(mén),只能從自己先下手。要走出的第一步,是給自己設(shè)立防火墻,不要讓自己的問(wèn)題擴(kuò)散到別的部門(mén),也不要讓別的部門(mén)的問(wèn)題擴(kuò)散到自己部門(mén)。
這個(gè)防火墻怎么設(shè)立呢?首先得有人。沒(méi)有人,說(shuō)句臟話(huà),叫干個(gè)屁啊。
但是,這立刻會(huì)面臨到一個(gè)很現(xiàn)實(shí)的問(wèn)題,沒(méi)有人。確實(shí)沒(méi)有人。老板也不給人,每個(gè)人都忙的很厲害。沒(méi)有人啊。
向老板申請(qǐng)人。這幾乎是不可能的事。一般在現(xiàn)狀,沒(méi)有作出成績(jī)還要人,這是不可能成立的事。雞生蛋,蛋生雞。有人是舍不得孩子套不住狼,有人是不見(jiàn)兔子不撒鷹。我們一般遇到的都是不撒鷹的主兒。所以大家不要抱怨,有啥人用啥人,能改善多少改善多少,盡力了。
現(xiàn)在這三五個(gè)人,大家看著辦。為了拯救自己,不做也得做。抱怨起不了任何作用。
相關(guān)推薦

最新發(fā)布
性能測(cè)試之測(cè)試環(huán)境搭建的方法
2020/7/21 15:39:32軟件測(cè)試是從什么時(shí)候開(kāi)始被企業(yè)所重視的呢?
2020/7/17 9:09:11Android自動(dòng)化測(cè)試框架有哪些?有什么用途?
2020/7/17 9:03:50什么樣的項(xiàng)目適合做自動(dòng)化?自動(dòng)化測(cè)試人員應(yīng)具備怎樣的能力?
2020/7/17 8:57:06幾大市面主流性能測(cè)試工具測(cè)評(píng)
2020/7/17 8:52:11RPA機(jī)器人能夠快速響應(yīng)企業(yè)需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消滅嗎?為什么?
2020/7/17 8:43:03軟件測(cè)試基本概念是怎么來(lái)的?軟件測(cè)試生命周期的形成歷經(jīng)了什么?
2020/7/16 9:11:10