创业型软件公司的心得
我在兩家創(chuàng)業(yè)公司工作過。A公司,由3人發(fā)展到20人;B公司,由20人發(fā)展到60人。這兩家公司都不算成功,因此,要講收獲,更多的是經驗與教訓。就如同教材一樣,反面教材更加有教育意義。我針對創(chuàng)業(yè)公司面臨的重要問題,談談我的想法。
靈活性
相對于大公司,小公司的靈活性是核心競爭優(yōu)勢。小公司的靈活性,是指小公司船小好調頭,能夠快速地響應用戶。我在B公司時,公司剛好處于創(chuàng)業(yè)擴張期(20→60人)。公司也就是在這個時候失去它的核心競爭優(yōu)勢的。
初到B公司,公司的情況是:已經做出了產品,有一些鐵桿用戶,有投資者表示愿意入股,希望在兩三年能夠上市。上市,則要求公司在人數上,管理上發(fā)生一些改變。我們公司實施了如下舉措:
一、將技術部細分為各個小組。如Android組、iOS組、Web組、通訊組、架構組等。為了讓公司的整體技術實力提升,公司花重金為每個組都招來工作經驗豐富的人帶隊。在之前,兩三個人通過簡單的溝通就可以完成包含 Android, iOS, Web 前端以及后臺服務的整個軟件。現(xiàn)在,要完成這樣的軟件,需要各個組的組長相互討論,得到一個相互妥協(xié)的結果。
得到妥協(xié)的結果存在三個問題:(一)花費的時間長;(二)各個開發(fā)組長更多會采取各為其組的策略,而不站在全局考慮問題。各個組長所花費的力氣不是共同的產品目標上,而是各組的局部利益上;(三)因為結果由多個人共同決定,這樣會導致沒有承擔責任的人,大家會相互推責任。
三個問題直接的結果就是,公司處于船大難調頭的局面。這個時候更需要的是一個能夠站在全局進行快速決斷的人,并且這個決斷的人能夠說服各個小組接受已經決定的方案。因為此時的公司還是一個小公司,還需要保持靈活性,保持快速反應能力。
二、成立項目部和產品部。也許是為了讓公司看起來更加有規(guī)模,公司需要新招一些員工,并給這些員工安插一些事情。項目部與產品部就招了很多員工,用來計劃和管理開發(fā)部的工作流程。新招來的員工有兩個問題:(一)經驗不足,很多是剛畢業(yè)沒多久;(二)缺少技術背景,無法管理技術研發(fā)。與此同時,各開發(fā)小組組長都是工作經驗豐富的人,本身就具備一定的管理能力。當被其它部門的人管理的時候,會存在不配合的情況。
比如,項目部要管控進度,開發(fā)組會盡可能多要時間,項目部無法評估時間的合理性。小組與小組之間推責任的時候,項目部也無法決斷應該由誰來擔當起相應的責任。產品部做出來的產品設計,往往不考慮開發(fā)實現(xiàn)的代價,結果導致開發(fā)的時候,花大量的時候來滿足產品的非核心功能。這些情況使得項目部與產品部不得不間接地管理。
所謂間接的管理,就是,項目部招集所有的開發(fā)組成員給自己評估時間,然后與開發(fā)組在時間上進行討價還價。比如,Web組評估時間需要1個月,項目部就會說,1個月太長了,我們半個月就要提交給客戶演示……產品部則通過開發(fā)組(而不是用戶)來找產品設計的缺陷。比如,Android組發(fā)現(xiàn)按照產品的設計實現(xiàn)代碼會與Web端不一致,這反過來促使產品部重新考慮如何保持產品的一致性。
間接管理使得整個公司在內部不斷地消耗人力資源。一個把產品做出來的部門不僅僅要把產品做出來,還要應付項目部、產品部的管理。這樣的組織形式很難適應快速變化。
在公司度過創(chuàng)業(yè)初期,準備擴大規(guī)模的時候(20→100人),往往重視的是單純地擴大規(guī)模,而忽視了繼續(xù)保持創(chuàng)業(yè)初期的優(yōu)勢——靈活性。使得響應用戶的時間拉長,用戶的增長速度減緩。一個企業(yè)的價值高與不高取決于用戶,而不是公司的管理水平和技術水平。只有快速地響應用戶,才能不斷地提升公司的價值。
確實存在的用戶
我在A公司的時候,公司只有7人。兩位創(chuàng)業(yè)老大和5個剛畢業(yè)的學生。我就是學生中的一個。當時老大剛從大公司出來,有一定的業(yè)務關系,可以容易地拿到客戶訂單。我們初期就是針對一個客戶做項目,做了兩年。在這兩年內,公司還是有些營利的。這正是因為有確實存在的用戶。
公司為了發(fā)展,轉做了一個互聯(lián)網產品。做產品的時候,公司往往容易忽略實際用戶,更多的是自己去想像出一些用戶,然后按照想像的用戶需求去設計產品。我們公司就是這么做的,結果產品的實際用戶量比較少,并且難以增長。這使得我所在的A公司陷入被動的位置。
在公司創(chuàng)業(yè)初期(2→20人),一定要做有確實存在的用戶使用的產品。產品雖不完美,但如果確實能夠解決用戶的問題,用戶也會有比較大的容忍度。并且這個時候的用戶都是專業(yè)級的用戶,所提出的建議對完善產品有著巨大意義。在產品完善之后,這些用戶還能夠通過口碑將產品推廣出去。因此,有著確實存在的用戶是創(chuàng)業(yè)用戶成功的必要條件。
定義產品版本
對于做一個產品,我建議的版本管理如下:
| v0.1 | 開發(fā)版 | 針對于鐵桿專業(yè)用戶,解決他們的實際問題,并且根據用戶的建議不斷對產品進行完善 |
| v1.0 | 正式版 | 能夠系統(tǒng)地解決所在行業(yè)的問題,代碼可能不容易維護,效率可能不高 |
| v2.0 | 升級正式版 | 針對第一版代碼問題進行徹底重寫,解決維護性及效率不高等問題 |
| vx.0 | 后續(xù)版本 | 這個時候公司已經運作起來,后續(xù)版本根據公司的運營進行調整 |
對于創(chuàng)業(yè)初期到擴張期,所需要關注的主要就是前三個版本。
開發(fā)版(v0.1)。可以快速出來一個可用的產品,能夠確實解決某個領域的用戶的實際問題。這里強調一點,如果出來的版本過早,導致并不能解決用戶的核心問題,會讓用戶失去信心。但又要防止想開發(fā)出來一個完美無缺的系統(tǒng)的行為。簡單來講,就是開發(fā)出來一個具有核心功能的產品,讓用戶在使用的過程中對產品完善。在完善的過程中,可以進一步推出 v0.2、v0.3 等版本。
正式版(v1.0)。這個版本出來的時候,用戶已經能夠系統(tǒng)地解決所在領域的問題了。比如,一個銷售系統(tǒng),核心功能是進銷存功能,用戶在使用的過程中會產生如:報表生成,工資管理,人員管理等功能。這些功能在 v0.x 中進行不斷地完善。到 v1.0 時,用戶已經可以使用這個軟件解決整個銷售環(huán)節(jié)的問題了。
升級正式版(v2.0)。v1.0 是通過代碼的修修補補不斷地積累而成的。代碼不容易維護,在初期也無從知曉性能的瓶頸會出現(xiàn)在什么地方。在用戶在實際生產中使用 v1.0 的時候,性能問題就會出現(xiàn)。這就是升級正式版要解決的問題:一、重新設計整個軟件,讓代碼易于維護;二、解決 v1.0 出現(xiàn)的性能等問題。
招的人越多越好嗎?
創(chuàng)業(yè)公司要盡可能降低運營成本。在公司選址,人員招聘,費用支出方面,都可以想辦法節(jié)約。對于軟件創(chuàng)業(yè)公司,最大的支出項就是人力成本。公司支出了高昂的人力成本,是否能夠達到預期的效果,這就是我接下來要說明的問題。
軟件行業(yè)有一本20年前的著作——《人月神話》,里面所講的內容到現(xiàn)在還非常適用。書中提到軟件開發(fā)的核心:保持概念的統(tǒng)一性。開發(fā)人員多了,為了保持概念的統(tǒng)一性,可能需要花費更多的時候去交流,進而造成時間上的浪費。即,?第一、人多并不能使得開發(fā)速度變快?。同時,因為交流當中會產生歧義的理解,會造成概念不統(tǒng)一。即,?第二、人多會更加有可能在軟件中引入BUG?。
所謂保持概念的統(tǒng)一性,就是指,一個軟件的各個部分和諧地統(tǒng)一在一個軟件當中。軟件的各個模塊相互配合,完成軟件的整體功能。打破概念的統(tǒng)一的情況是,開發(fā)人員只看到局部,并不理解全局。做好局部的同時給其它局部引入問題(引入BUG)。這需要各個局部的開發(fā)人員一起解決沖突,這就會產生交流的時間浪費。
因此,一位月工資 1W 的程序員的工作效率并不會比總工資 1W 的三位程序員低。特別是在創(chuàng)業(yè)性的公司,程序員是為自己而工作的時候,會更加有效率。
當然,并非人越少越好。一個創(chuàng)業(yè)公司,主要的問題是:一、將產品做出來;二、將產品賣出去。人的多少依賴于這兩點。要招的人要么是能夠將產品做出來的人,要么是能夠將產品賣出去的人。
招人之后,是以合作的方式,還是其它的方式來發(fā)揮人的積極性,也是需要考慮的。讓一個人有積極性容易,讓十個人都有積極性非常難。
軟件創(chuàng)業(yè)對人的要求
一個軟件創(chuàng)業(yè)公司至少需要兩個人,一個負責將產品推出去(CEO),一個負責將產品做出來(PA)。如果 CEO 對技術有所了解的話,會更加有優(yōu)勢。
CEO 需要具備以下的能力:
PA(Programming Artist) 需要具備以下的能力:
轉載于:https://www.cnblogs.com/shangguanjunzhi/p/3392240.html
總結
以上是生活随笔為你收集整理的创业型软件公司的心得的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Format Currency Samp
- 下一篇: 制作安装媒体来部署额外域控制器