“
對(duì)于初創(chuàng)公司來(lái)說(shuō),軟件開(kāi)發(fā)的要點(diǎn)有哪些?程序員的重要性到底有多大?外包、內(nèi)包能夠包治百病嗎?
主要結(jié)論
就算要失敗并重試,初創(chuàng)公司的速度也一定要快,更重要的是一定要專心聆聽(tīng)客戶心聲。初創(chuàng)公司的程序員需要迎合客戶而非代碼本身,這樣才能創(chuàng)造出足夠簡(jiǎn)單直觀的軟件,進(jìn)而改善客戶體驗(yàn)。
為實(shí)現(xiàn)品牌的擴(kuò)張和公司規(guī)模的擴(kuò)大,初創(chuàng)公司的程序員必須在前瞻性思維引導(dǎo)下用狂飆的速度和激情進(jìn)行嘗試。
初創(chuàng)公司的程序員必須在速度、成本、質(zhì)量、用戶體驗(yàn)、設(shè)計(jì)、伸縮性等要?jiǎng)?wù)之間進(jìn)行權(quán)衡。
初創(chuàng)公司的程序員必須能順利應(yīng)對(duì)安全弱點(diǎn)和失敗。
初創(chuàng)公司的程序員可以是創(chuàng)始人、公司員工,或外包的供應(yīng)商,重點(diǎn)在于恰當(dāng)?shù)男膽B(tài)。
對(duì)大部分初創(chuàng)公司來(lái)說(shuō),技術(shù)是最關(guān)鍵的分水嶺。無(wú)論將技術(shù)視作自己的精髓(例如谷歌或優(yōu)步),或希望通過(guò)技術(shù)促進(jìn)自己的核心業(yè)務(wù)(例如Zenefits或Zappos),對(duì)初創(chuàng)公司來(lái)說(shuō),軟件開(kāi)發(fā)很可能成為連接客戶痛點(diǎn)和公司收入流的橋梁。畢竟餐巾紙上規(guī)劃的構(gòu)思和藍(lán)圖需要通過(guò)軟件的形式交付到客戶手中。
初創(chuàng)公司實(shí)景
初創(chuàng)公司會(huì)面臨動(dòng)態(tài)、不可預(yù)測(cè),甚至混亂的環(huán)境,這就迫使創(chuàng)始人必須快速行事,快速失敗,更快速地學(xué)習(xí)經(jīng)驗(yàn)教訓(xùn)找出市場(chǎng)利基(Market niche),從中獲得可持續(xù)收入。60%的初創(chuàng)公司撐不過(guò)頭五年,接受風(fēng)投注資的初創(chuàng)公司中75%終將失敗。這主要是因?yàn)槌鮿?chuàng)公司面臨的風(fēng)險(xiǎn)較大,錯(cuò)過(guò)了市場(chǎng)機(jī)會(huì),或其他業(yè)務(wù)方面的原因。
為了獲得推動(dòng),初創(chuàng)公司需要快速發(fā)展出自己的第一個(gè)客戶,并用更快速度發(fā)展出前十個(gè)客戶。但這一切可能需要2年時(shí)間。考慮到收入,需要盡可能快地將1個(gè)收入來(lái)源擴(kuò)展為10個(gè),只要達(dá)到百萬(wàn)級(jí)收入,就可輕松實(shí)現(xiàn)15%的月增幅。
要快速獲取客戶并獲得收入,這種想法背后的原因在于,最適合的團(tuán)隊(duì)會(huì)借助每個(gè)客戶和每分錢的投入對(duì)產(chǎn)品進(jìn)行完善。各種緊迫情況會(huì)迫使團(tuán)隊(duì)更加立足于基礎(chǔ),專注聆聽(tīng)客戶的想法和反饋,用盡可能最簡(jiǎn)單的方式實(shí)現(xiàn)這些反饋,并周而復(fù)始地一直這樣做下去。
如果你的團(tuán)隊(duì)只是專注于他們自己覺(jué)得酷的地方,而非專注于客戶的實(shí)際想法,那只能說(shuō)你入錯(cuò)行了。只要你的一切行事以客戶為基礎(chǔ),而非以代碼為基礎(chǔ),客戶會(huì)讓你在這場(chǎng)游戲中順利獲勝。
這和父母養(yǎng)育孩子的過(guò)程很相似:如果你希望自己的孩子以后能有出息,就必須在孩子成長(zhǎng)和轉(zhuǎn)變過(guò)程中付諸足夠關(guān)心。你也許認(rèn)為孩子以后會(huì)成為氣象學(xué)家或NASA的專家,但這僅僅是因?yàn)槟阕约河X(jué)得這些職業(yè)很酷,只有朝著整個(gè)社會(huì)(而非你)需要他扮演的角色方向上培養(yǎng)、引導(dǎo)和教導(dǎo),你的孩子才能最終獲得成功。
程序員極為重要!
團(tuán)隊(duì)中的程序員能夠?qū)ψ罱K的成功或失敗造成多大程度的影響,這一點(diǎn)很難量化,但很明顯軟件和制造軟件的人在先于對(duì)手搶占市場(chǎng)方面扮演了一個(gè)關(guān)鍵的角色。這里有些例子。
為初創(chuàng)公司寫(xiě)代碼和為老牌公司寫(xiě)代碼的過(guò)程截然不同。初創(chuàng)公司有著獨(dú)特的文化,并會(huì)擴(kuò)展到業(yè)務(wù)的每個(gè)角度,從財(cái)務(wù)到銷售,從運(yùn)維到軟件開(kāi)發(fā),全都包含在內(nèi)。你的產(chǎn)品必須簡(jiǎn)單并且便宜。你必須精準(zhǔn)地專注于客戶,并不斷根據(jù)客戶體驗(yàn)快速完善自己的產(chǎn)品。沒(méi)什么是孤立的,沒(méi)什么是“神圣不可侵犯”的。這里有些例子。
不是隨便哪些代碼都可以這樣做,也不是隨便哪個(gè)程序員都愿意這樣做。無(wú)論程序員是否同時(shí)也是創(chuàng)始人,都必須首先和客戶而非代碼“聯(lián)姻”。尤其是軟件必須采用這樣的一種心態(tài):
理解客戶的想法,并采用差異化的技術(shù)滿足客戶的需求:
你的軟件必須能顛覆現(xiàn)有技術(shù)或企業(yè),通過(guò)更簡(jiǎn)單、更直觀、更穩(wěn)健的各種“更”改善用戶體驗(yàn)。
因此對(duì)程序員來(lái)說(shuō),如果初創(chuàng)公司的業(yè)務(wù)領(lǐng)導(dǎo)談到某個(gè)健康追蹤應(yīng)用的上市時(shí)間,針對(duì)某個(gè)在線花店談到更平滑、直觀、不受干擾的客戶購(gòu)物體驗(yàn),或談到要為放款人立刻提供針對(duì)特定客戶量身打造的報(bào)價(jià)方案;程序員需要知道這些要求意味著什么,以及如何通過(guò)軟件開(kāi)發(fā)工具、方法以及功能實(shí)現(xiàn)這些要求。
這并不是說(shuō)與項(xiàng)目有關(guān)的所有程序員都需要理解業(yè)務(wù)的方方面面,并理解將這些內(nèi)容轉(zhuǎn)變?yōu)榧夹g(shù)決策的方法,但技術(shù)領(lǐng)導(dǎo)者必須心里有譜,同時(shí)也要能解釋給技術(shù)團(tuán)隊(duì)。這樣整個(gè)團(tuán)隊(duì)才能通過(guò)大量小決策的積累最終產(chǎn)生大成果,成功實(shí)現(xiàn)“創(chuàng)造客戶想要的產(chǎn)品”這一愿景。
在競(jìng)爭(zhēng)和不斷變化的要?jiǎng)?wù)之間進(jìn)行權(quán)衡:
技術(shù)愿景要求技術(shù)領(lǐng)導(dǎo)者必須能在競(jìng)爭(zhēng)優(yōu)先權(quán)和速度、質(zhì)量、成本、用戶體驗(yàn)、設(shè)計(jì)、縮放性等方面進(jìn)行權(quán)衡。對(duì)每個(gè)初創(chuàng)公司來(lái)說(shuō)這些要?jiǎng)?wù)各不相同,并且對(duì)同一家初創(chuàng)公司,這些要?jiǎng)?wù)也會(huì)時(shí)常發(fā)生變化。
例如身處性命攸關(guān)的醫(yī)療設(shè)備行業(yè)的初創(chuàng)公司,無(wú)疑會(huì)先于上市速度或成本等因素優(yōu)先考慮代碼質(zhì)量。但如果要開(kāi)發(fā)網(wǎng)絡(luò)叫車應(yīng)用,上市速度和代碼質(zhì)量很可能同樣重要:客戶需要每次叫車時(shí)有車可乘,初創(chuàng)公司則需要在這個(gè)競(jìng)爭(zhēng)激烈的市場(chǎng)中通過(guò)速度保持領(lǐng)先。
技術(shù)領(lǐng)導(dǎo)者需要對(duì)不同要?jiǎng)?wù)進(jìn)行權(quán)衡,但同時(shí)也要獲得所有團(tuán)隊(duì)成員的認(rèn)同和支持。如果我的初創(chuàng)公司要開(kāi)發(fā)社交應(yīng)用,同時(shí)我雇傭了一位始終堅(jiān)持提供100%高質(zhì)量代碼的程序員,我可能會(huì)錯(cuò)失市場(chǎng)機(jī)會(huì)。
從2007年到2013年,每當(dāng)由于快速發(fā)布新功能導(dǎo)致網(wǎng)站出現(xiàn)技術(shù)問(wèn)題后,Twitter都會(huì)在網(wǎng)站上放一張我們稱之為“失敗鯨(Fail Whale)”的圖片。很明顯,對(duì)他們來(lái)說(shuō)創(chuàng)新速度的重要性遠(yuǎn)遠(yuǎn)勝過(guò)質(zhì)量。
成功僅僅是多個(gè)失敗粉飾后的結(jié)果:
對(duì)于技術(shù)領(lǐng)導(dǎo)者和支持團(tuán)隊(duì)來(lái)說(shuō),另一個(gè)非常重要的心態(tài)在于要能接受弱點(diǎn)和失敗。初創(chuàng)公司通常需要通過(guò)實(shí)驗(yàn)找出值得進(jìn)一步投入的想法、領(lǐng)域,以及特征。對(duì)于手頭的問(wèn)題或腦海中的長(zhǎng)遠(yuǎn)目標(biāo),并沒(méi)有哪怕一個(gè)已經(jīng)明確的解決方案,面對(duì)這種情況程序員也必須充滿活力,不能因此而感覺(jué)受挫。
團(tuán)隊(duì)的角色:
團(tuán)隊(duì)中的程序員實(shí)際上是公司創(chuàng)始人以及項(xiàng)目目標(biāo)實(shí)現(xiàn)過(guò)程中的“螺絲釘”。你的項(xiàng)目可能需要一名軟件工程師和一名質(zhì)量工程師,或者由同一位程序員擔(dān)任這些角色。你的項(xiàng)目可能需要架構(gòu)師,但此人同時(shí)也是產(chǎn)品的所有者或業(yè)務(wù)分析師。對(duì)初創(chuàng)公司來(lái)說(shuō),人員配置方面不存在嚴(yán)格的規(guī)定。人員需要接受項(xiàng)目的支配,然而你肯定不想面對(duì)冗員造成的開(kāi)銷和瓶頸。
平臺(tái)和方法論很重要
為實(shí)現(xiàn)品牌的擴(kuò)張和公司規(guī)模的擴(kuò)大,技術(shù)團(tuán)隊(duì)必須在前瞻性思維引導(dǎo)下用狂飆的速度和激情進(jìn)行嘗試。天使投資人和風(fēng)險(xiǎn)資本投資人想要看到的不光是單點(diǎn)解決方案,而是能夠通過(guò)發(fā)展成功打造出一個(gè)平臺(tái)的公司。這就需要針對(duì)不斷變化的大環(huán)境開(kāi)發(fā)出精彩的代碼,并持續(xù)專注于為最終用戶制造驚喜。
選擇能順應(yīng)這些需求的恰當(dāng)平臺(tái)就成為勢(shì)在必行的做法。平臺(tái)可以意味著某種操作系統(tǒng),某種編程語(yǔ)言,或者在某種編程語(yǔ)言基礎(chǔ)上構(gòu)建的某種框架。猶如房屋的地基,這種平臺(tái)可以為初創(chuàng)公司提供支撐,但也會(huì)造成局限。
在外人看來(lái)某些平臺(tái)似乎挺適合,但面對(duì)你的具體要求可能會(huì)顯得很糟糕。Azure也許很適合Olyve.com但并不適合Proflowers.com。Windows平臺(tái)也許很適合很多公司,但相比Unix系統(tǒng),在可伸縮性方面對(duì)PayPal來(lái)說(shuō)無(wú)異于災(zāi)難。選擇恰當(dāng)平臺(tái)的最佳方法是雇傭足夠出色的程序員,并將平臺(tái)的選擇任務(wù)交給他們。
一般來(lái)說(shuō),初創(chuàng)公司的程序員更愿意選擇能快速順應(yīng)產(chǎn)品及其管理過(guò)程中所產(chǎn)生變化的技術(shù)。例如一些通用的基礎(chǔ)架構(gòu),如配置管理、問(wèn)題報(bào)告、追蹤,以及規(guī)劃系統(tǒng)和調(diào)度與通知系統(tǒng)。
諸如白板等易于實(shí)現(xiàn)的工具,以及能夠應(yīng)對(duì)信息快節(jié)奏變化速度的技術(shù),可以降低初創(chuàng)公司的培訓(xùn)和維護(hù)成本。為了緩解資源缺乏的問(wèn)題,初創(chuàng)公司通常會(huì)大量使用開(kāi)源解決方案,這也使得他們能夠獲得大量“前人的經(jīng)驗(yàn)”。這里有些例子。
對(duì)于工具、平臺(tái),以及方法論的選擇是需要優(yōu)先考慮的要?jiǎng)?wù),但隨著時(shí)間的流逝,最終的選擇也會(huì)不斷變化。如果速度是頭等要?jiǎng)?wù),那么可以選擇包含各類附加功能和服務(wù)的云平臺(tái)(例如Azure云),但這種做法:1,比其他選項(xiàng)成本更高;并且2,無(wú)法在不同組件方面獲得同類中的最佳產(chǎn)品。后續(xù)的發(fā)展之路上,隨著從客戶處獲得不同反饋以及公司的繼續(xù)增長(zhǎng),考慮其他選項(xiàng)可能會(huì)成為你那時(shí)的頭等要?jiǎng)?wù)。
在方法論方面,對(duì)于初創(chuàng)公司來(lái)說(shuō)必須從整體上確保軟件開(kāi)發(fā)過(guò)程的敏捷性、持續(xù)演化,以及機(jī)會(huì)主義。敏捷方法論對(duì)“變化”持包容態(tài)度,可以讓開(kāi)發(fā)工作更適應(yīng)業(yè)務(wù)戰(zhàn)略。
采用快速發(fā)布后進(jìn)行迭代并持續(xù)集成的方法,可以縮短將創(chuàng)意構(gòu)思通過(guò)快速開(kāi)發(fā)變成最終產(chǎn)品所需的前置時(shí)間。精益(Lean)方法論是敏捷的一個(gè)變體,借此可發(fā)現(xiàn)軟件項(xiàng)目中風(fēng)險(xiǎn)最大的部分,并提供最小可行產(chǎn)品促進(jìn)下一次迭代的測(cè)試和修改工作。
外包,內(nèi)包,包治百?。?/strong>
最關(guān)鍵的軟件開(kāi)發(fā)領(lǐng)導(dǎo)者是否同時(shí)也是公司創(chuàng)始人?未必。創(chuàng)業(yè)團(tuán)隊(duì)必須包含一系列互補(bǔ)的特征,這樣才能讓初創(chuàng)公司從不同角度發(fā)現(xiàn)機(jī)會(huì),快速嘗試,與客戶保持足夠近的距離。
這一過(guò)程需要銷售、營(yíng)銷,以及技術(shù)的介入。需要?jiǎng)?chuàng)新并形成體系,需要冒險(xiǎn)但也要謹(jǐn)慎行事,同時(shí)需要維持極危險(xiǎn)的“全速狂飆”承諾。這些技能和特征也許并非每個(gè)創(chuàng)始人都具備,但每個(gè)創(chuàng)始人都會(huì)將其視作核心價(jià)值。這里有些例子。
程序員到底該來(lái)自哪里,這不光決定了一個(gè)或全部創(chuàng)始人是否恰巧都是軟件工程師,還決定了你想要實(shí)現(xiàn)什么目標(biāo),要使用什么語(yǔ)言、平臺(tái)和方法論,想多快速度實(shí)現(xiàn),這其中你能投入多收成本。對(duì)于軟件或解決方案,到底由公司內(nèi)部自行開(kāi)發(fā)還是外包,最重要的差別并不在于程序員到底居住在哪里,而在于誰(shuí)負(fù)責(zé)領(lǐng)導(dǎo)開(kāi)發(fā)工作。
負(fù)責(zé)人了解代碼嗎?最好能了解。負(fù)責(zé)人了解你的客戶和業(yè)務(wù)嗎?要能了解那就更好了。負(fù)責(zé)人能夠100%致力于實(shí)現(xiàn)初創(chuàng)公司所需的速度和價(jià)值嗎?如果能,那就大膽放手干吧。負(fù)責(zé)人可以是創(chuàng)始人自己或雇傭的員工,也可以是顧問(wèn)或外包團(tuán)隊(duì)的成員,但此人必須能夠駕馭公司的技術(shù)愿景。
如果軟件開(kāi)發(fā)工作是外包的,你只能獲得很少的潛在優(yōu)勢(shì)。雖然74%的高增速互聯(lián)網(wǎng)初創(chuàng)公司由于過(guò)早擴(kuò)張而最終失敗,但外包至少還有一個(gè)優(yōu)勢(shì):可以非??焖俑咝У?cái)U(kuò)張和收縮,以合適的規(guī)模進(jìn)行嘗試。
此外還有其他一些優(yōu)勢(shì),例如你可以更迅速地應(yīng)對(duì)程序員與代碼而非客戶“聯(lián)姻”,或所采取的方法無(wú)法滿足初創(chuàng)公司對(duì)企業(yè)文化的要求所造成的問(wèn)題。如果創(chuàng)業(yè)團(tuán)隊(duì)中有程序員屬于后一種情況,可能在起步階段就會(huì)面臨障礙。然而如果雇傭的人員無(wú)法滿足要求,隨時(shí)更換代碼、供應(yīng)商,或同時(shí)更換這兩者,即可瞬間做出動(dòng)態(tài)的調(diào)整。
Gigster的創(chuàng)始人兼初創(chuàng)公司軟件外包做法的擁護(hù)者Roger Dickey認(rèn)為,如果采取外包的方法,就可以輕松地快速做出5個(gè)原型,并根據(jù)客戶需求從中選擇。他認(rèn)為借此可以規(guī)避對(duì)代碼過(guò)度依賴這種對(duì)初創(chuàng)公司來(lái)說(shuō)致命的問(wèn)題。
我同意這一點(diǎn)但也要提醒大家,如果外包,那么你的公司內(nèi)部一定要有了解技術(shù)和業(yè)務(wù)的人員,這樣的人必須能用易于理解的方式促進(jìn)技術(shù)人員之間,以及技術(shù)和業(yè)務(wù)人員之間的交流,并將這種交流運(yùn)用到開(kāi)發(fā)環(huán)境中。
內(nèi)部開(kāi)發(fā)且創(chuàng)始人身兼程序員職責(zé),和/或由技術(shù)人員領(lǐng)導(dǎo)開(kāi)發(fā)工作,這些做法也能帶來(lái)收益。最重要的問(wèn)題在于,由于代碼本身已成為獲得成功的重要組件,你需要對(duì)代碼獲得盡可能多的所有權(quán)和控制權(quán)。
在尋求天使或VC投資的過(guò)程中,可以從技能和態(tài)度的角度將創(chuàng)始人描述為你們公司的“獨(dú)門秘方”,這一點(diǎn)對(duì)投資人很有吸引力,畢竟他們更愿意投資人員而非想法。如果你的所有優(yōu)勢(shì)都源自某個(gè)供應(yīng)商,對(duì)投資人來(lái)說(shuō)就有些危險(xiǎn)了。
無(wú)論軟件開(kāi)發(fā)選擇了外包或內(nèi)部開(kāi)發(fā)的方式,都必須在程序員、其他創(chuàng)始人,以及客戶之間維持活躍的交流溝通、信任、原則,以及開(kāi)放式討論。可以在公司內(nèi)部或外部尋找符合這些特征的人,但是要記住,他們對(duì)你的成功意義重大。
成功到底長(zhǎng)什么樣?
成長(zhǎng)只發(fā)生在旅途中,而非終點(diǎn)線上,這種說(shuō)法對(duì)初創(chuàng)公司來(lái)說(shuō)比任何其他領(lǐng)域都更為適用。成功意味著旅途還在繼續(xù),還是“熟悉的配方”,但“味道更多”:更多實(shí)驗(yàn),更多嘗試,更大規(guī)模,重構(gòu),失敗……。初創(chuàng)公司在第一階段會(huì)面臨不少挑戰(zhàn),就算后續(xù)階段都能獲得成功結(jié)果也不會(huì)有太大區(qū)別。
但你的工作要?jiǎng)?wù)可能會(huì)變?yōu)橐?guī)模、品牌的成長(zhǎng)、管理位于不同位置的(更)大技術(shù)團(tuán)隊(duì)等。面對(duì)這些挑戰(zhàn)的你依然能從第一階段所奠定的心態(tài)中獲益。也許彼時(shí)步調(diào)已經(jīng)不那么快得讓人發(fā)狂,但是對(duì)于客戶,對(duì)于迭代,以及對(duì)于集成和溝通交流的承諾始終是不變的。
如果你覺(jué)得這樣的過(guò)程有著獨(dú)特的樂(lè)趣,引人入勝,充滿挑戰(zhàn),那么你可能已經(jīng)變身為成功路上的初創(chuàng)公司創(chuàng)始人。
本文由譯者大愚若智翻譯自InfoQ英文站,原文鏈接:
https://www.infoq.com/articles/how-startups-build-software
▽
免費(fèi)沙龍報(bào)名:來(lái)深圳一起聊聊分布式架構(gòu)吧~(戳閱讀原文報(bào)名)
云計(jì)算的發(fā)展離不開(kāi)分布式架構(gòu)的應(yīng)用。在最新一期蝴蝶沙龍上,我們將邀請(qǐng)首都在線總工程師周東波、PingCAP首席技術(shù)官黃東旭等資深專家來(lái)到深圳,一起聊一聊分布式架構(gòu)背后的那些實(shí)踐經(jīng)驗(yàn)與技術(shù)細(xì)節(jié),內(nèi)容涉及容器化服務(wù)的分布式存儲(chǔ)選型、分布式關(guān)系型數(shù)據(jù)庫(kù)的架構(gòu)實(shí)現(xiàn)等話題。
喜歡我們的會(huì)點(diǎn)贊,愛(ài)我們的會(huì)分享!
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。