這篇文章是去年 Rafy 框架發布后,許勝平先生為我提出的一些建議。他從用戶群體分析、社區、商業模式、技術支持等方面對框架發展提出了建議,我覺得寫得非常不錯。此文不僅適用於 Rafy 框架,所以不敢私藏,轉載出來和大家分享。
在此,再次感謝所有關注、支持 Rafy 框架的人。
WORD 文檔下載地址:《20131002 東莞-許勝平建議 ([201309]對 Rafy 開發框架的一些個人建議)》。
----------------------------------- 以下內容轉載自 Word 文檔-----------------------------------------
對Rafy開發框架的一些個人建議
1、潛在使用群體分析
個人認為使用類似Rafy、AgileEAS.NET、PDF.NET及OpenWorks框架的群體主要為以下幾種:
1.1、小微軟件企業
小微軟件企業,這類軟件公司的開發人員一般在10人以下,多以項目實施為主基本談不上產品,大多以某行業的信息管理軟件為主,主要由老板(核心銷售)談下來的一些項目,由於所在行業競爭比較激烈,多數在拼項目報價、實施時間,因此該類項目的利潤均不高,同時企業年經營額多在百萬以內,超過三百萬的都算非常好的啦[1]。
該類軟件企業的特點是:
1、 企業項目利潤很低,在軟件開發方面的投入相對較少,同時也沒有該方面的技術實力;
2、 由於不能給員工以比較有吸引力的薪酬,所以人員流動性較高,經常是做一個項目換一批技術人員,企業想進行一些基礎框架的開發也隨着核心開發人員的離職而丟了下來;
3、 實施的項目經常缺乏穩定的技術人員進行維護;
4、 由於人員流動性高,造成有關項目及類似項目在實施過程中經常被客戶投訴人員技術不好,特別是對所在行業的理解,而新進項目的人員一方面要學習原項目使用的開發技術,另一方面還要學習行業經驗;
5、 企業老板則對項目實施的進度、質量十分關心,也擔心核心技術人員的離職造成項目資產(代碼、流程及文檔)外泄,該情況一般會給企業比較大的打擊。
因此,小微軟件企業最關心的是:1)能夠在現有軟件項目成品的基礎上快速定制出客戶需要的軟件,像搭積木一樣組合出不同的產品,企業已有的軟件模塊能夠方便進行復用;2)快速響應、快速實施;3)更關心功能的實現,對軟件底層技術的運用因競爭、技術人員能力的限制無暇顧及;4)開發框架及應用技術的易用性,希望技術人員能夠通過簡單的培訓就可以上手,並加入到實際的項目中;5)良好的技術支持、完善的開發文檔、詳盡的開發案例及可以有底層的源代碼,必盡他們也關心自己產品的安全性,若他自己的產品都還沒有做出來你的東西就不再維護了,那免費也沒人敢用。
1.2、中型軟件企業
這類軟件公司一般都有自己的底層框架或比較成型的開發平台,所以一般不會或很少采用外部的軟件框架,有的話也會很慎重考慮各方面的因素,如框架的穩定性、是否可維護、有無源代碼、框架的延續性等。但是,他們目前面臨着原有軟件產品的更新換代及產品線的升級問題。
中型軟件企業在使用框架時主要:
1、 有選擇的使用其中一部分,例如模型驅動開發、界面生成、動態表單管理等;
2、 框架的魯棒性及可擴展性;
3、 與企業自身平台或框架的集成能力。
當然,若框架足夠優秀也不排除整套框架被全部收購的可能,對框架的主創人員雖說難於割舍,但這應該是大多數框架在發展過程中的最好結果。我個人沒有這方面的經驗不知能夠值幾何,呵呵:)
1.3、程序員、技術愛好者或干私活的
該類人群使用框架更多的是為研究、學習之用,或者使用它干私活的居多,或許這只是我個人的理解而矣。用來研究學習的有兩類:
1、 剛入職的程序員,對各類事物都感興趣也有較多的時間、精力;
2、 有一定經驗又希望提高的,通過對框架源代碼的研究以提高自己在架構、設計及編碼方面的技巧、能力,同時在自己的項目中進行應用,可能取其中部分或者改進已有的設計。
研究學習的人,感興趣的是技術,看設計、看代碼的多。而用來干私活的則可能軟件公司的骨干,也可能是已經不再做軟件的,又或者是在家里干的那種[2]人,這類人員的要求與小微軟件企業差不多。但是,他們可能更多的會在框架的基礎上修改以適應自己的需要,並將框架改造得盡量像自己的東西:)
1.4、非軟件企業的IT技術人員
一般為企業的IT部門的維護人員或技術主管,他們有一定的開發基礎,但是又缺乏能力去做一個完整的產品,特別是面對不同部門的快速變化的需求和外部技術的更新換代。
IT維護人員,可能平時會面對一些簡單的應用,從頭開發工作量大,比如一些基本的功能如權限管理、功能添加、自動部署、報表整合等。他們更多關注的是業務規則,對他們來說更熟悉企業的業務流程,希望能夠有一套功能全面、易於開發和使用的框架,能夠幫助他們快速實現主管安排的任務。
IT技術主管[3],一種是需要對企業IT架構、信息化從頭搭建的那種,自身有一定實力同時手下的技術人員也可以從事開發工作;一種是要對已有系統進行完善,要求對企業幾方面業務進行集成的情況。
對非軟件企業的IT技術人員來說,他們更關注的是:
1、 易於開發使用,通過簡單的學習或者利用框架本身的工具(如生成器)就可以開發具體的功能應用,框架的學習成本很低易於使用,對此要求有較多的事例、開發文檔及教學視頻;
2、 基礎功能健全,不用為開發一套應用的基礎模塊而費心,他們更多的是利用框架滿足業務要求,對應用系統的基礎功能如系統架構、服務管理、權限管理及通信安全等方面,能夠由框架自身的模塊提供最好;
3、 健壯方便擴展,框架提供的功能穩定,不會動不動就彈出一個錯誤提示框,並且有較好的性能,開發人員在使用時可以根據不同階段的業務需求,將所開發的模塊集成到一起,各模塊提供的功能服務若能夠復用最好,需要框架底層提供一套通訊服務;
4、 報表開發能力,除日常一些基本的功能點開發外,更多地是對現有數據按照不同的要求進行統計分析,因此易於使用的報表功能對於框架的應用來說則有特殊的意義;
5、 在線升級能力,利用框架工具或基礎服務能夠實現已經部署的模塊在線升級的能力,降低IT技術維護人員的維護工作量。
以上僅僅是本人對於Rafy潛在使用者的一些分析,而這4類使用者都可能成為實際的付費用戶,但是按照個人的理解1、2、4的可能性會更大一些。關鍵是要找准他們各自的需求點,並能夠讓他們放心,國內大多不敢使用開源產品的症結在於,開源的產品不能給人安全感,說不准哪天開源團隊因被收購、精力、生計等因素就不干了,而使用者寄於之上的東西就白費了。同時,由於缺乏適用的商業模式和外部環境,加之國人都喜歡使用免費的東西,開源作者不能從中獲得必要的物質補償,也使他們對開源產品升級、維護難於為系,僅憑工作之余或興趣是難於堅持下去的,這就形成了一種惡性循環。
2、對Rafy的一些建議
因此,個人認為Rafy要比較好的成長,需要解決以下幾方面的問題:
2.1、在社區的推廣工作
要讓盡可能多的人了解、認識並能夠使用Rafy進行一些開發,通過技術論壇、博客、網友分享讓大家都知道這樣一套框架,並通過大家的學習、使用來不斷完善框架。
為此需要:
1、編寫完善的開發使用文檔,包括框架接口API、框架高層架構、使用入門、案例開發等,可制定一個文檔規范,通過網友一起動手完成;
2、較為完整的視頻教程,不用包括所有的東西,但是對於一個完整的軟件開發過程應該都包括,同時對於該框架特有的東西也要入進來,要的就是讓人看得人心動;
3、也可以鼓勵網友將自己使用Rafy開發的產品拿出來秀一下,讓大家看到框架的應用,這需要作者比較全面的支持,以充分展示框架的魅力與特性。
2.2、持續的發展規划圖
對於一個自己都不知道向哪里發展的產品,又有誰敢於將自己的產品寄托在這上面呢?當然,對於框架的完整規划及持續的開發又涉及到大量的人力和物力,也需要一個相對穩定的團隊來運……
2.3、商業模式選擇問題
究盡是開源還是不開源?這個仁者見仁智者見智沒有統一的答案,個人的理解是需要平衡好上面1、2點之間的關系,對個人及企業使用者進行區別對待,在提供的服務上也有所不同,以保證付出與回報對等的原則,也能夠為作者提供必要的補償。那么如何吸引大家真正使用該框架進行實際的軟件開發,進而成為付費的用戶呢?這個值得花時間認真思考,過了沒有人用不及又不能很好的維持產品的正常開發升級。
個人認為首先還是要鼓勵大家使用Rafy進行開發,通過框架豐富的基礎模塊能夠迅速搭建起滿足實際要求的應用程序,幫助使用者解決實際問題才是邁出收費盈利的第一步,若大家過多的停留在研究學習的階段,那么也就失去付費應用的動力了。
Rafy在商業化的選擇上個人認為可以多方面並重:
1、利用框架對外完成一些項目,養活自己和團隊才是第一要務,如果可能讓自己活得更滋潤一點:)
2、利用框架進行一個作者熟悉的產品線開發,並爭取在該產品上有所回報;
3、利用社區宣傳來擴大框架的影響力,使框架得到更多市場的認可;
4、在做好上述3方面工作的前提下,考慮組織專門的人員對框架版本進行划分,可以考慮社區版、專業版、企業版等,以滿足不同的需求並制定相應的收費及服務策略。社區版免費,專業版及企業版收費,所有版本都開放源代碼,作者控制整個框架的主線就OK了,至於他們愛改不改都給錢了由他們好啦,若脫離主線的則強調不提供支持;
5、也可以考慮通過項目咨詢、出書等途徑進行營銷,老外在這方面做得不錯,一方面可以進行推廣另一方面也可以賺錢。
2.4、對技術支持的看法
目前國內不太敢使用開源項目進行產品開發的關鍵,個人認為還是開源項目的技術支持做得不夠充分,正如前面分析的一樣,存在兩方面的原因。因此,無論是開源或者是商業化都需要一套比較完善的技術支持體系來支撐,讓使用者放100個心,用你的東西沒有后顧之憂,即使你的東西被人收購了,也會有補充協議保證已經使用的用戶能夠得到必要的支持。
3、寫在最后的幾句話
由於許多年前就不再寫代碼,也不再是IT行業的一員,以上僅是本人的一些個人體會。目前國內並不缺乏優秀的IT技術人員或專家,但是真正缺乏的是一種良好的環境及商業模式,按理程序員、架構師本應該是受到社會普遍尊敬的群體,而今卻變成了最為苦逼的一群人,更被笑稱為碼農、程序猿!
盡管如此,目前國內還是涌現出許多優秀的開源項目,正是他們的持續不斷地努力,在推動着IT應用技術不斷的向前發展、進步。正如Rafy的作者一樣在工作之余,為了生活、為了信念揮灑着自己的青春和熱血,多少個不眠之夜!而作為使用者,你又准備以什么樣的方式來支持這些開源項目繼續向前呢?作為曾經的程序猿,我願意為每個優秀的國內軟件支付幾十至幾千元不等的費用,希望他們走得更好、更遠。或者,有時間進行專門的測試工作,或者,寫一兩段文字為他們搖旗吶喊!