僅僅編程來說,實在是一件很簡單的事,是“程序 = 算法 + 結(jié)構(gòu)”,但要想做出一個軟件產(chǎn)品來不是這么簡單的事了。

  雖然“程序 = 算法 + 結(jié)構(gòu)”沒錯,但隨著市場的變化,需求的變更,這些算法和結(jié)構(gòu)也是在時刻變動,有可能我們分析出這些算法和結(jié)構(gòu)后,投入到市場中卻發(fā)現(xiàn)產(chǎn)品已經(jīng)過時。所以我們有必要建立一個平臺,用來管理和分析這些影響算法和結(jié)構(gòu),并導致其發(fā)生變化的需求,以至我們能夠?qū)崟r的把算法和結(jié)構(gòu)對應(yīng)的程序發(fā)布到市場中給客戶使用。

  顯然這時候算法和結(jié)構(gòu)已經(jīng)越來越多,所以更加有必要建立一個開發(fā)平臺來整理這些算法和結(jié)構(gòu),方便我們更好的開發(fā)改進程序。

  但一個好的軟件產(chǎn)品除了程序本身,還有產(chǎn)品理念、操作說明、培訓教材、實施步驟、問題反饋等一系列為客戶服務(wù)的事物,所以有必要建立一個實施平臺來存放這些事物,共享這些事物。

  因此一個存在于市場的產(chǎn)品,必然擁有這三個平臺:需求平臺、開發(fā)平臺和實施平臺。

  建立平臺要知道這個平臺包含哪些東西,有什么方法可以管理這些東西,這是個復雜而長久的過程。我們只能夠先從簡單的做起,從實踐中慢慢的整理出來這些內(nèi)容和方法。自己馬上實踐,總比別人成功后走別人的老路好!

  首先要設(shè)立三個崗位,需求平臺組長、開發(fā)平臺組長和實施平臺組長。

  需求平臺組長把現(xiàn)在所有的需求全部收集整理,并實時的更新這些需求,可能開始都是些文檔,手動處理,形成規(guī)?梢钥紤]做一個管理工具,在線需求提交、審查等系統(tǒng)。

  開發(fā)平臺組長整理所有程序功能模塊,重新整合設(shè)計,提出公共的算法結(jié)構(gòu)等。

  程序 = 算法 + 結(jié)構(gòu) + 方法

  因為程序的復雜,所以我們在分析算法和結(jié)構(gòu)的時候有了不同的方法,以前是面向過程,現(xiàn)在又面向?qū)ο螅又容^熱門的面向服務(wù)。這都是我們實踐中產(chǎn)生的一些方法,但他們也不是相互獨立的。面向?qū)ο罄锩婵赡馨嗣嫦蜻^程,面向服務(wù)里面也包括了面向?qū)ο。所以在?gòu)建不同的算法和結(jié)構(gòu)是需要用到不同的方法,我們現(xiàn)在用得多的算是面向?qū)ο蠓椒,所以面向(qū)ο笠渤闪碎_發(fā)組長整理的一個重要東西。

  “懶人精神”并不是要我們做事懶,而是重于發(fā)現(xiàn),遇到問題可以停下來多思考討論,可能找到了更好的方法。

  實施平臺組長負責整理實施需要的文檔,包括操作手冊,培訓教材等。

  等到這些平臺都有所規(guī)模走上正道后,有必要還要成立一個質(zhì)量監(jiān)省平臺,以第三方的眼光指導三個平臺的進步。

  現(xiàn)在阻礙這種開發(fā)模式大的障礙是項目,為什么這么說,因為一個項目是一個陷阱,整個開發(fā)部門十幾個人,如果有幾個項目在同時進行,那么這十幾個人這樣分別掉進了各自的項目,以致整個開發(fā)部出現(xiàn)沒人沒時間的情況,變成一個空部門。

  為什么每一個項目對于開發(fā)部來說都會變成了一個個陷阱了?

  首先,產(chǎn)品的不成熟,由三個人幾個月搞出來的東西,沒有明確的需求,參考別的系統(tǒng)做,沒有正規(guī)的設(shè)計,畫幾個流程圖,設(shè)計表結(jié)構(gòu)開始編碼,沒有專業(yè)的測試,互相之間點點界面看有沒有錯誤報出。這樣搞出來的東西,上場幾百萬的項目,開發(fā)人員哪跑得掉。現(xiàn)場調(diào)試程序,修改需求,到處救火。

  其次,實施力量薄搦,隨便抓來的幾個人,沒有經(jīng)過系統(tǒng)的培訓,連個sql語句都寫不出來,更別說跟客戶討論需求、擋需求,他們做的是培訓客戶,教他們操作,有問題丟給開發(fā)人員解決。

  再次,客戶的素質(zhì)低下,使用系統(tǒng)的客戶大部分都沒摸過電腦,需要從打字培訓起,提出的需求很隨意也很隨時,大半年下來沒斷過需求。

  后,公司領(lǐng)導層的制度方向,以打單搶占市場為重,對技術(shù)的漠視,人夠用行。沒有想過搞一批人認認真真的專門研究這個產(chǎn)品。

  這些技術(shù)人員,在這個項目從頭到尾累死累活,轉(zhuǎn)到另一個項目又是從頭開始。所以說這些項目把所有的技術(shù)人員全部都陷了進去,以致于公司技術(shù)部門空無一人,也是一本書上所說的“軟件作坊”。

  怎么跳出陷阱,走出軟件作坊?

  下面是呂建偉先生說的兩道防火墻教我們從哪里開始走出軟件作坊。

  大家想想美國金融危機吧。美國經(jīng)濟發(fā)生問題,奧巴馬首先做的是什么?是設(shè)立防火墻,不要讓危機擴展到更多的行業(yè)更深層次的方面。

  我們想扭轉(zhuǎn)公司現(xiàn)狀,也是如此。先設(shè)立防火墻。

  走出軟件作坊,我是以研發(fā)部門為中心的。當然,和我交流的大部分人都是研發(fā)部的。大家都是共同的視角,共同的權(quán)限,想解決需要變革整個公司模式的問題。

  我們不可能變革其他部門,只能從自己先下手。要走出的第一步,是給自己設(shè)立防火墻,不要讓自己的問題擴散到別的部門,也不要讓別的部門的問題擴散到自己部門。

  這個防火墻怎么設(shè)立呢?首先得有人。沒有人,說句臟話,叫干個屁啊。

  但是,這立刻會面臨到一個很現(xiàn)實的問題,沒有人。確實沒有人。老板也不給人,每個人都忙的很厲害。沒有人啊。

  向老板申請人。這幾乎是不可能的事。一般在現(xiàn)狀,沒有作出成績還要人,這是不可能成立的事。雞生蛋,蛋生雞。有人是舍不得孩子套不住狼,有人是不見兔子不撒鷹。我們一般遇到的都是不撒鷹的主兒。所以大家不要抱怨,有啥人用啥人,能改善多少改善多少,盡力了。

  現(xiàn)在這三五個人,大家看著辦。為了拯救自己,不做也得做。抱怨起不了任何作用。