相關閱讀 |
>>> 技術話題—商業文明的嶄新時代 >>> | 簡體 傳統 |
// 呃。。。不說了,大家看吧,這次早上發帖,大家醒醒腦
//
工欲善其事,必先利其器
--《論語》
這一篇里面說說我作為獨立開發者的技術資本,我盡量寫得通俗易懂一點,盡可能做到行內看門道,行外看熱鬧。
所謂【獨立】,其實就是不在公司打工了,自己辭職,一個人專門做一項東西為他人服務。在傳統社會應該叫【手藝人】,修鞋的,修碗的,賣涼粉的等等;在改革開放叫【個體戶】,賣皮包的,修自行車的等等;只有在社會高度發展之后,人們出現了藝術欣賞和審美要求(就是學會了裝B和閑的蛋疼)之后,就出現了【獨立】思想者,說高逼格一點,就是喬布斯Think Different廣告里面那些,比如獨立藝術家,獨立電影人,和獨立軟件開發者。
解釋一番,其實就是那些有兩把刷子,但是又不愿意在大集體中工作的人。
先解釋一下我的“刷子”。
本人08年計算機畢業,大學四年,當當鉆石會員,3K+的零花錢幾乎全部買計算機書,畢業搬家4個29寸彩電紙箱那么多;畢業論文是自己寫的一個游戲3D渲染引擎,就是那種只利用計算機底層功能在屏幕上畫一個點,然后自己寫代碼搞出來整個引擎,當然是參考國外一本書做的,答辯時,導師和他的小伙伴們都驚呆了。
工作到這次創業前,已經5年,經歷過的游戲項目,從起開始寫基礎代碼,到完成上線,有3個。還有自己業余一個獨立小開源項目,每月能大概掙個1-2K零花錢。
“刷子”介紹完畢,下面說點干貨,我有什么技能,才敢開始【獨立】。
游戲開發和一般軟件開發一樣,甚至更加復雜多變,【復雜】在于龐大的構架和系統繁多,就像規劃一個大型宮殿,每個房子、草坪、拱門、拱橋等等都要設計,可能蓋著蓋著,設計師自己都忘當初,西廂房的墻壁為啥要用青瓦而不是紅磚了;【多變】在于創新和玩家的喜好,只要創新,就免不了來回的改,來回的折騰,玩家的口味也是隨時就會變的,也得來回折騰。
必須要管理上述復雜和多變。軟件工程三大管理,【文檔管理】、【代碼管理】、【Bug管理】(也叫缺陷管理)。在你決定走上技術創業的之路的時候,你對上述管理還有不知道的,或者沒有用過其進行開發的,還是慢慢學習一下吧,我之前的文字里也說過,去一家公司讓他們交學費吧,你免費學習這些,不是更好么?
-------------------------------割了-------------------------------
【文檔管理】
這里吐槽一下那些傳統策劃、項目經理什么的,用MS Office進行管理管理的人。我艸,都TMD Web2.0 時代了,還有離線文檔多人協同!?智商問題啊,有木有?!
當時我在大學里面學習MFC的時候(一種微軟設計出來,已經基本淘汰的程序框架),就強烈感到管理自己的工作和學習的必要性,就帶學習性的目的寫了一個基于本機的筆記管理軟件,極其像現在Evernote,后來也到工作的時候,還用過一段時間,但是感覺無法方便地多人多地合作共享,放棄了。于是后來,在工作的過程中就不斷地找文檔管理的軟件和方法。
我是在說啊,那些讓你用MS Office管理文檔、工作計劃的項目經理其實都是一些不愿意動腦子的人,如果動腦子,他就不覺得這樣很麻煩么?我要收了小明小紅的工作文檔,然后一個個看,小明說不定還要更新這個文檔,又得給我重發,更新,我要是查歷史,只能一個個查找,打開,再看,巨麻煩,回家之后,我還看不了,因為木有拷貝回來。。。他們即便是動了腦子,已經感到不方便了,那也是不愿意動手的人,沒法尋找、學習、推行新的協同文檔管理方法工具。
MediaWiki、Durpal和Wordpress、甚至剛剛提起的Evernote,都非常善于做這些事情。當然我這里首推MediaWiki。網絡共享、權限管理、多人協同合作等等非常方便。說白了,有網絡就能看,想改就改,想看就看,多人編輯一個文檔,永遠都是最新,查找歷史記錄?搜索。我找到MediaWiki之后,用其開發了2個項目,非常好用,而且人越多越好用,越能發揮出他的好處。另外幾個也都是很好的管理共享工具,但是問題是,我沒有用它們來管理過開發,沒有推銷的依據。
【代碼管理】
作為軟件最主要的結果,體現出來就是一堆一堆的代碼——人類寫出來的機器語言,如果沒有管理,就像傳統作家沒有手稿一樣,寸步難行。在我2008年畢業的時候,進入的那家公司,就還在用巨老式的代碼管理,微軟的SourceSafe,就是那種……“小T,等我改完這個文件啊”,“老板,我解鎖了,你可以編輯了”,“我先加鎖一下,你別改這個文件”……還好,最后在我強烈建議下,改用了SVN,停止了這個“開發基本靠吼”的過程。
當然代碼管理這個大的功夫下面,還有很多小的招式,諸如什么代碼合并掌,分支管理腿,版本管理心法等等,就不一一說了,不然就像老羅介紹他那個錘子手機的軟件一樣沒完沒了了。這里不說不等于他們不重要,在長期的積累過程中,長期的版本發布經驗中,是有一套完善的體制的。這里無私奉獻干貨福利圖一枚:
看圖簡單,后面的經驗教訓多了去了,有機會再八。(眼尖心細的讀者可能會發現一個新的繪圖工具)
【bug管理】(也叫【缺陷管理】)
這個也是軟件開發所獨有的,他可能還混合著有【需求管理】,不是行業內的人一般不太懂這個,所以我打個通俗的比方吧。各位都應該去有醫院掛水的經歷吧?有些人一掛就是一整天,比如我住院那些日子,從早打到晚的。
基本流程是這樣的,護士MM推個車車過來喊,“叫什么?”,我說,“小T”,對完名字,掛上瓶子打好針的同時還得掛一個板子夾一張紙,那張紙上面寫著今天掛什么,什么順序。然后護士MM還會過來換瓶子,如果瓶子掛的大一點,時間一長,護士換班,基本上每次都不是一個人來換,但都會問名字,都會在紙上寫上時間或者畫個勾什么的。到晚上,最后一個護士拔針,檢查板子上的紙條,如果沒有錯誤,就完事了。
Bug管理工具就是那個板子上的紙條,就是看病時候用到的病例本。
軟件或者游戲在發布運行中所遇到的問題,就像是我身上患的那些病,而大夫或者護士,就是程序員和測試人員。他們需要有一堆工具來管理醫院中每一個人的病,也就是程序員用bug管理系統管理軟件運行時候的錯誤和新的需求。
你想想,如果一個醫院沒有病例、沒有輸液單,是腫樣一個現象?也不難想想,一個僅僅用筆和紙作為管理工具的老醫院,來接納一個百萬人口的城市,又是腫樣一個現象。
Mantis、BugFree等等都是很好的【bug管理】工具,而且是免費的,如果你還聽過其他的,沒問題,只要方便,快捷就行。
這里寫著寫著就想到自己曾經住過3次醫院,局麻3次,全麻1一次,吊瓶無數的經歷,可能在那個時候我才知道自己有多么脆弱,身體有多么重要的吧?也是在后來,我重視bug管理的原因之一吧。
-------------------------------我又來分割了-------------------------------
當然我的招數還不止這些,我還用到了Google文檔,用到PHP,jquery等等進行游戲數據組織、后臺管理,還寫了一整套的數據管理工具,只需要加一個名字,就能將數據從Google 的Sheet(類似Excel)變到游戲數據中來,自己還會簡單的PS,3DMax處理圖像和圖形,畢竟諸如色調,大小,形狀這些小細節,自己就動手處理了,不必再叫美術小伙伴。這里就不一一列出來了,不然就變成茴香豆的“茴”字,老太太的裹腳布了。
這里還有一個誠懇的建議,即便是國內有這樣那樣的網絡限制,但是都不能阻止那些有獨立思想開發者,利用世界上最便宜最好用的工具,去戰勝那些腐朽的大組織,去改變這個世界。
程序員小T 2015-03-09 10:06:53
稱謂:
内容: