前些日子,跟一哥們兒談及公司的發展時,談到了一個很傷心的話題:作為一個軟件公司,做了10年的軟件開發,居然沒有自己的核心框架,這確實也算是個奇葩!
其實這些年,我們一直在規划做公司的核心框架,因為大家都知道一個核心框架對一個軟件公司是很重要的。年復一年我們的談了很多,總是想等研發人員空閑的時候開始做,總是想等成立一個專門的項目團隊來實施,總是說的多而沒去落實。
我們是一個做項目型的公司,每一年要做很多專門針對各個行業的管理、監控、優化軟件。公司有多個項目組,針對性的做了很多軟件。每年都有十來個項目提交。因為每個項目組,甚至每個人都有自己的軟件編碼習慣,導致每個項目都帶着自身的濃厚色彩。人員的流失、項目組人員的調整,都需要犧牲很多時間去熟悉別人的代碼。維護組成了監控組,因為五花八門的系統讓他們也目不暇接,他們只能發現問題,然后把問題轉給以前這個模塊或者系統的研發人員,由研發人員去修改。於是研發人員不僅要完成新的項目,還需要維護和修改以前的自己做的項目。這樣就導致做的項目越多的研發人員越累。長此以往,辛苦不說,沒有成績,沒有成就感,導致身心疲憊,最后只能離開公司。因為不熟悉,他一個人的工作需要兩個人接手。於是,形成了一個軟件界的江湖傳說:他匆匆的離開,留下一堆歷史遺留問題,任憑后人咒罵,抓狂。
作為主要負責技術這一塊兒的小羅羅,我們當然可以過着“大王讓我去巡山,巡了北山巡南山”按部就班的日子!各忙各的,一片和諧。回頭又一起討論我們的核心框架,年復一年的談下去!我們也可以做一個想吃“唐僧肉”的妖怪,鬧他個天翻地覆。當然,咱們也有可能被哪路神仙給收了。可不要怕,即使被收了,咱們不是也跟着神仙去了天庭嗎!
怎么做?成了一個難題!因為談及這個問題,我們又要回到現實中來。確實,目前對我們來講,不可能抽一個專門的團隊來花一年或者半年的時間來實施我們的核心框架,雖然大家都知道這個核心框架實施后,對我們有百利無一害。是不是我們就沒辦法實施了呢?有。目前我們每個項目組都有事,不可能抽人出來,但不是每個項目都忙的不能做點別的有意義的事!我們可以用那么幾個愛好者,花點業余時間,做一個小的公共架構,比如組織架構、用戶管理、權限管理、日志管理、數據傳輸等,封裝一些公共方法,如導入導出等。然后讓大家使用這套架構,每個項目組都使用!使用的過程中不斷完善,加入新的公共模塊。如此反復,滾雪球的方式,咱們的核心框架包含的功能就越來越多。這是借鑒開源的思想。具體實施步驟如下:
1、制定標准和規范;
2、建立系統基礎框架;
3、推廣框架,強行推廣實施;
4、根據標准,納入新的模塊和方法;
這樣做有啥好處呢?我跟一些開發人員談過這個話題,有些人支持,有些人反對。有些人說,你提供的公共模塊,比如統計分析模板,我去配置一個,說不定和我重新寫一個花的時間一樣。是的表面上看是這樣,可是這是建立在自己的習慣基礎上的。假設一個開發人員根據自身的習慣建立了一個系統,他肯定對這個系統的結構很熟悉,但如果有一天,他因為某些原因要出差,別人接手他工作的時候,就非常困難。如果還要在他的系統中增加新的功能,那就更難了。如果要交給維護人員去維護,因為每一個系統都帶有個人習慣和特色,維護人員需要熟悉每一個系統。他們無法掌握,就不能維護,只能監控。所以,如果咱們能夠把這個實施了,至少有以下好處:第一,能夠節省時間;第二,使代碼可讀性強;第三,使系統可交維,可維護。
當然實施並不是上面說的那么簡單,需要政策和制度的支持,比如獎勵機制。如果能有一個正好也想吃“唐僧肉”的大王支持,說不定就逮住“唐僧”,從此咱們這些巡山的小羅羅,說不定也能“長生不老”。