1. 程式人生 > >一張沉澱了九年的說明書,LeaRun技術創業指導篇

一張沉澱了九年的說明書,LeaRun技術創業指導篇

一張沉澱了九年的說明書,LeaRun技術創業指導篇

都說十年磨一劍,現在離十年,僅有咫尺之遙了。

記得當初因為工作的迷茫,才走上創業這條路的。既然是創業,就要選好發展方向,那年網際網路異軍突起,導致各大行業需要轉型。所以很明確地做了管理類軟體開發,但是做哪方面呢?這個過程是相當長且痛苦的,剛開始沒有太在意自己最熟悉的行業,反而跑去琢磨教育類軟體,養老院相關軟體,診所管理軟體等。而且在每一個方向都琢磨了很長的時間,甚至都拿出了初步的方案。但是到實際操作時,發現沒有相關行業的資深人員參與,做出來的東西根本沒法用。

幾個志同道合的人,經過無數次的討論,最終確定了我們的發展方向:集中開發業務管理軟體,協調辦公軟體。

系統的管理思路閉環由老領導憑藉其幾十年的管理經驗提出,再經過我們不同知識背景人員的補充形成。經過可行性分析、管理思路完善之後,從大的框架到實現細節,歷時幾個月終於完善了。然後拿著方案跟業內的管理專家和企業高管溝通,所幸的是在溝通的過程中所有的人都很贊同我們的東西,覺得對企業的幫助應該非常大。

一.系統初步規劃

按照我們的規劃,系統起碼應該有這幾個功能:

1.能快速開發出各種漂亮的報表。這款軟體主要是給企業使用的,資料的展示必須簡潔美觀。

2.即時通訊,方便管理層的命令下達。

3.工作流引擎,通用性強。

4.方便的資料匯入匯出功能。由於這套系統是一個跨業務平臺,很多資料取之於不同的管理系統,有的來自ERP,有的來自財務軟體,有的來自CRM等等,那麼簡單高效的資料介面是成功的關鍵。

5.嚴密、完善的許可權安全控制體系模組。由於系統管理的資料是企業的核心機密,一旦洩漏給競爭對手,那將是毀滅性的,因此要從各個方面控制權限。我們規劃至少應該從這幾個方面控制:

1)伺服器的硬體隔離。資料庫及應用都在企業內部網,不考慮B/S架構,而且伺服器的連線要加密,不能讓管理員之外的人員知道。

2)系統登入使用動態口令。考慮給系統使用人員都配備動態口令牌,登入時除了需要輸入靜態密碼外,還需輸入動態口令牌中的動態口令。賬戶和口令牌一一對應,口令牌半分鐘或一分鐘變更一次口令。

3)系統登入與IP地址或MAC地址繫結。對於關鍵崗位人員,能登入本系統的IP地址或MAC地址必須是有限制的。

4)嚴密的授權體系。首先必須要有部門、角色、人員的三級授權體系。其次要能做到原子級授權,即各個功能的各項操作都要有許可權控制。最後要有資料許可權控制,不同的人開啟相同的功能,其能看到的資料是不同的,有得多有的少。

6,快速開發。除了系統平臺的功能外,大量的是業務實現功能,開發這些功能時要能快速實現,要是一箇中等複雜的功能需要好幾天的時間開發,那麼等系統開發完,就好幾年以後了。

按照這樣的思路規劃完系統後,我們突然發現,這對我們來說幾乎是不可能實現的。像我這樣的非專業開發人員(工作以後,很大一部分時間在做ERP實施,開發做的不是很多),能否將這些需求設計出來還是一問題,談到開發出來簡直是天方夜談。自己開發不出來,是否可以考慮招人呢?也不行,手頭的開發資金預算有限,沒有辦公場所,招了人去哪辦公?又沒有太多的精力管理開發人員?一系列的問題目前是沒辦法解決的。

唯一可行的還是硬著頭皮自己開發,沒招了。

.開發平臺選擇

只能是購買一個現成的平臺,在此基礎上開發我們的系統。既然是購買平臺,那就要慎之又慎,我們幾個人都把身家性命、前途未來押在這上面了,不管哪個環節出問題,都將是致命的。出問題不僅僅是金錢的損失,原來的同事怎麼看,丟不起人,三四十歲的人了,也輸不起。處於這種考慮,詳細討論了好多次,最終形成了我們的需求。

1,平臺必須要提供原始碼,不加密,開發的產品在銷售上不能有任何約束,不用購買其任何授權。很鮮活的例子,有同事的公司曾經購買了別人的平臺,開發時需要供應商授權(每個開發者都需要一個授權),每銷售出一套產品之後還要分成。這不還是給別人打工嗎?這種三毛、哪吒、金剛葫蘆娃級的損己利人的事咱還是別幹了吧。

2,系統穩定。一定要穩定,別讓花費很大的精力去溝通、處理平臺的BUG,光業務功能的實現已經夠我喝一壺的了,再要是平臺經不起折騰,出問題,再換平臺,還是殺了我算了,人生已經浪費不起,30多歲了

3,底層應用豐富。底層的服務或應用要完善,如果需要我自己從底層開始,開發一個平臺應用模組,我沒有精力,也不願意在這上面消耗耗費時間,都是軟體開發行業的過來人,都知道開發軟體有多少說不出的辛苦、平常人無法理解的痛有儘可能多的函式、類,只需要熟悉其呼叫方法,在開發新功能應該不是難事。這樣不但用著爽,而且節約時間。

4,為了能長期使用,平臺應該與業務是分離的。平臺的修改或升級不能影響到我的業務模組。另一方面,由於開發週期緊張,如果除了開發業務,還要處理平臺問題,一個是能力不夠,另外時間、身體、精力方面都不允許。最好的模式應該是,平臺的問題由平臺開發者處理,我只需專注於處理業務,我也想有個正常人的生活,工作之餘陪陪家人孩子,有個好身體,再活他500年。

5,有示例可以參考。不管是專案的示例還是功能的示例,我相信只要給我參考的示例,怎麼著我也能模仿著做出自己的功能來,這麼多年的開發工作經驗,讓我很堅信這一點。發明創造是難了一點兒,但是模仿的水平絕對是一流的。

6,完善的服務。不要是一把一清的只買了產品,在開發中是否能提供指導,以後能否提供產品升級,這也是非常關鍵的問題。這個年代,已經不缺好的產品了,缺的是完善的服務。很明顯的例子,買車的時候,是不是都會考慮售後呢?車是每個家庭的大件物品,而這個平臺是我們公司的核心產品,都選擇好的服務,道理是一樣的。

於是在將近一個多月的時間裡,瘋狂的上網查資料,找同學幫忙介紹,各種途徑找適合我們的開發平臺。由於自己熟悉的是JAVA開發,因此想找個成熟好用的JAVA平臺,但是努力一番之後,查詢無果。只好放棄這個思路,管他用什麼開發的,只要是成熟的平臺,開發語言現學就是了。

找到了不少平臺,但是仔細琢磨之後,發現成體系的不多,能直接拿來做商業系統開發的,為數更少了。經過一段時間篩選,初步框定了幾個平臺,對著這些平臺,我們幾個做了詳細分析,這些平臺各有所長,很難取捨。怎麼辦呢,總不能都買吧。最後轉換了下思路,重新審視我們自己的狀況,我們幾個組合後的長處是管理創新,能提出很多管理方面的思路,但是技術方面很薄弱,對平臺的要求除了前面的基本需求之外,能快速開發出實用的業務功能才是我們最關注的。因為按照我們以往的工作方式,在軟體選型時,吹噓有多麼先進的技術,多麼花裡胡哨的介面,我們根本就不關注,甚至是抵觸的。擠掉這些水分,真正能幫企業解決管理問題的,少之又少。

反而是我們自己開發的,看起來異常醜陋的東西,很實用,也很能解決問題。就這個問題,我們專門做過分析,為什麼拿著軟體給客戶演示的時候,他們會提一些介面、實現技術等一些莫名其妙的問題,我們認為原因有三方面。1,提這些問題的,很大一部分是資訊部的人,懂一些技術,不太懂管理,那麼為了體現自己的價值,除了提這些問題,還能提什麼呢?2,如果使用者中有人提出這個不好用,那個難用之類的問題,那麼你的這套系統肯定觸動了他的利益,否則作為一個打工者,才不會在這上面費那麼多心思(我不否定真有人花心思深入的考慮系統問題,但是這樣的人很少,退一步說,既然他這麼有心思,那麼他肯定不會僅僅關注這些問題,我們有自信能在管理角度說服他)。

給客戶講解的時候,企業的高層很少提好不好用,介面是否漂亮,技術是否先進之類的問題,高層關注的是能不能提升管理,能不能解決我的問題,才不會去關注這些細枝末節的問題,本來就給他們工資了,管你怎麼幹只要給我出結果就行,每天的工作那麼多,難道會去關注一個小辦事員在處理資料的時候是否方便?簡直是笑話。

按照這樣的標準分析之後,有個叫力軟敏捷開發框架的東西就冒出來了,系統的功能很符合我們的需求。

經過一週多的QQ、電話溝通,心中有譜了,這就是我們要找的實現業務系統開發的實實在在的基礎模板,完全符合我們的需求,而且價格也在我們可接受的預算範圍之內。於是很快的做了一個分析報告,給老領導彙報了,幾乎沒有任何爭議,大家一致決定購買這個平臺,最終我們購買了其企業旗艦版。

旗艦版的好處是有個長期穩定的售後服務,雖然也可以從其他平臺手中拿到一些東西,但是學習曲線太陡,沒有售後服務,沒有正式授權。公司穩定良好的工作都要放棄了,甚至人生未來都賭上了,還是挑個省心、安心、靠譜的東西要緊。這是對未來5-10年,甚至是20年的長遠規劃的起步。

3.系統開發

進入了正式開發,力軟指導了一個月時間之後,我在業務功能開發方面就沒有問題了,而且在這一個月內,竟然開發出了大部分的業務功能,不到兩個月,第一個版本的軟體系統開發完成。雖然後期我們對系統的業務功能做了無數次的調整,而且有些很複雜的功能,但是系統自帶了大量的元件,只要按照需求,東拼西湊,想要的功能基本都能開發出來。到後期熟練之後,業務功能的開發速度非常快,曾經一天能開發出7,8個功能。

4.系統展示

時至今日,軟體已經開發完畢,業務功能基本按照我們的規劃完成了開發,而且平臺方面的各種功能也能按我們的預計實現。沒有很高的技術含量,一起從實用觸發,但是符合我們設想的實際流程,實際工作、管理需要。下面截圖僅展示系統功能,由於涉及到商業方面的因素,只提供基礎框架的圖片。

 

 

5.開發總結

雖然創業中有各種各樣的問題、困難、瓶頸需要處理,但由於我是負責技術的,大量的時間花在系統開發上,因此在這方面還是有點感觸,寫下來作為以後的參考。

1)老生常談,開發之前需求一定要討論得非常清楚。無數次,在討論之後,感覺思路比較清晰了,就動手開發,結果往往由於細節所限,推倒重來,浪費了大量的精力。

2)雖然是單兵作戰,在動手之前還是要做好各種設計,否則很可能由於思路不完善,導致大量的返工,吃一塹長一智。現在的做法是,在開發任何功能之前,都會先理清功能需求,功能介面和資料流,最後列出開發步驟,然後按步驟一步一步開發。

3)相關的文件一定要完善,比如設計文件,使用文件等。若是不做記錄,過一段時間,連自己都不知道當時怎麼考慮的了,當然程式碼也要寫好註釋。

不管怎麼樣,經過無數個日日夜夜的激情工作,系統開發出來了,真心感謝我們這個團隊,面對問題時專心處理問題的態度,毫無保留的貢獻自己的智慧,是一個志同道合的,實實在在做事的團隊,各自不同專業累計的經驗正好形成一個互補的團隊,相信一定會成功的。

還得感謝這個開發平臺,基礎功能非常完善,底層應用也很全面,服務也相當到位,無論何時何地都能方便的聯絡到開發者本人。在我的開發過程中,力軟能不厭其煩的指導我,通過電話、QQ、遠端桌面等各種方式,幫我解決了很多問題。無論如何,能夠順利開發出我們的業務系統,很大一部分原因是,我不用擔心許可權控制,審批流等、訊息提醒、基礎資料管理等等平臺底層的開發問題,所有的精力只放在了核心業務的開發上。

就寫這麼多吧,從給人打工到給自己幹,感覺是個比較大的改變,因此囉囉嗦嗦寫這麼一堆,無他,紀念而已。

6.後記

總感覺意猶未盡,再多談談力軟的這套框架,畢竟對我的幫助特別大,而且直到現在我們仍然認為這平臺非常值,不管這句話在別人看來是多麼的矯情,但是我真是想表達自己的感謝之情。

在開發我們系統的這段時間,曾經花了不少時間看底層原始碼,力軟能堅持這麼多年改進一個軟體,堅持著把反饋的問題修正,再考慮相容性,通用性,業務與系統底層的分離等等,還是挺不容易的。

目前來看,我的業務系統還是比較穩定成熟的,模仿力軟的例子做出來的功能,規避了好多有可能出現的BUG(在看程式碼的時候感觸特別大,有些我沒想到的地方,他都有容錯處理)。系統自帶的許可權等模組就更不用擔心了,反正有問題找他處理就行了。

希望力軟的路也能走得越寬,能得到更多人的理解與同情,都是追逐夢想的人,力軟想開發通用的簡易快速開發平臺,我要做資訊化傳統行業的業務系統,都是你為我服務,我為你服務的事情。現在這年代的創業,光憑自己的力量從頭做起,傻子才幹的事,我們始終認為最經濟有效的是途徑是購買別人的元件,快速組合成自己的產品。

往深了說,還是因為東西好用,如果不好用,是忽悠人的東西,以我這性格,還真做不出這種事來,也沒心思花好幾天的時間扯這些閒淡。如果有跟我相似情況的同仁,建議還是多做分析參考,各種因素分析之後再做出自己的判斷,畢竟鞋合不合腳,只有自己清楚。創業沒那麼簡單,別一衝動給自己的將來埋下隱患,一定要冷靜再冷靜。