从技术经理的角度算一算,如何可以多快好省的做个app(转)
【導(dǎo)讀】前端時(shí)間,一篇“從產(chǎn)品經(jīng)理的角度算一算,做個(gè)app需要多少錢”的文章在網(wǎng)上瘋傳,可見大家對(duì)互聯(lián)網(wǎng)創(chuàng)業(yè)的熱情!這次,從一名技術(shù)經(jīng)理的角度再給大家分析一下,如何使用跨平臺(tái)開發(fā)技術(shù)為你節(jié)省上百萬的開發(fā)成本。所謂“跨平臺(tái)”開發(fā)技術(shù),就是使用一種語言和一種開發(fā)工具同時(shí)支持幾種不同的手機(jī)/平板設(shè)備,這樣做不僅僅省錢而且開發(fā)效率高,可以讓你更快的推出新版本和新功能!
作為一名軟件工程顧問,我曾參與過很多的項(xiàng)目,主要為軟件團(tuán)隊(duì)進(jìn)行開發(fā)工具和方法論方面的咨詢/培訓(xùn)/指導(dǎo),我接觸過不下100個(gè)各種類型/大小的開發(fā)團(tuán)隊(duì),有傳統(tǒng)行業(yè),有互聯(lián)網(wǎng),有不差錢的,也有剛起步的創(chuàng)業(yè)者;其中也不乏app開發(fā)項(xiàng)目。開發(fā)團(tuán)隊(duì)遇到的問題最大共性是每個(gè)人在一個(gè)團(tuán)隊(duì)中的位置很大程度上決定他的判斷,簡(jiǎn)而言之:視野問題!而當(dāng)大家問一名IT人士那個(gè)經(jīng)典的“做個(gè)app要多少錢?”的問題時(shí),他也僅僅能根據(jù)自己的技術(shù)背景和經(jīng)驗(yàn)給你一個(gè)答案,更加傾向于推薦那些相對(duì)穩(wěn)妥的方案;而不懂技術(shù)的人更加無從判斷。我想說的是:雖然互聯(lián)網(wǎng)創(chuàng)業(yè)是個(gè)技術(shù)活,但技術(shù)選型一定要業(yè)務(wù)先行,ROI(投入產(chǎn)出比)優(yōu)先。這就是為什么你首先應(yīng)該從成本角度進(jìn)行分析,做出判斷;而不要受制于技術(shù)!
在回答完那個(gè)經(jīng)典的“做個(gè)APP多少錢?”的問題后,下面這些問題就會(huì)接踵而來:
- 應(yīng)該開發(fā)iPhone版本還是Andrioid版本?
- 可能需要聘用掌握了不同開發(fā)語言(iPhone使用Xcode/Object-C,而Android使用Android SDK和Java)和技能的團(tuán)隊(duì)成員,研發(fā)成本幾乎翻倍
- 產(chǎn)品的后臺(tái)系統(tǒng)使用怎樣的開發(fā)環(huán)境?
- 如何在新功能上線時(shí)保證iPhone/Android的APP與后臺(tái)系統(tǒng)的同步?
- 從無到有開發(fā)這樣一款A(yù)PP到底需要多少成本?
- 如何了解用戶的使用習(xí)慣,并通過數(shù)據(jù)分析來指導(dǎo)后續(xù)版本的開發(fā)?
對(duì)于當(dāng)前所流行的“互聯(lián)網(wǎng)+”的眾多創(chuàng)業(yè)者來說,如何能夠以最快的速度和最小的成本來開發(fā)/運(yùn)營(yíng)自己的產(chǎn)品是決定是否能夠在早期快速取得客戶,獲取生存空間和贏得未來機(jī)會(huì)的決定性因素。其實(shí)對(duì)于任何的軟件開發(fā)來說,多快好省永遠(yuǎn)是我們的追求,當(dāng)前的創(chuàng)業(yè)大潮使得這一原則更加凸顯,也讓更多的人了解到了軟件開發(fā)。
DevOps(研發(fā)運(yùn)維一體化)也是最近幾年在軟件行業(yè)非常流行的做法,DevOps通過打通開發(fā)和運(yùn)維這兩個(gè)原本屬于不同領(lǐng)域的團(tuán)隊(duì)來為我們運(yùn)營(yíng)產(chǎn)品提供更快的價(jià)值輸出,其實(shí)也是多快好省地體現(xiàn)。從用戶的角度,使用手機(jī)/平板等移動(dòng)設(shè)備的用戶已經(jīng)超過了PC用戶,而在移動(dòng)設(shè)備領(lǐng)域又存在著iPhone/Android/Windows三分天下的狀況,這使得上面所提到的快速推出產(chǎn)品變得更加困難,同時(shí)由于不同的設(shè)備所使用的操作系統(tǒng),開發(fā)環(huán)境和運(yùn)行環(huán)境都完全不一致,讓我們的研發(fā)管理變得更加的復(fù)雜,實(shí)現(xiàn)DevOps也是難上加難。
本篇博客將使用MyShuttle.biz這個(gè)應(yīng)用來為你展示一個(gè)“互聯(lián)網(wǎng)+”時(shí)代的創(chuàng)業(yè)團(tuán)隊(duì)如何使用跨平臺(tái)開發(fā)技術(shù)來多快好省地解決以上問題。
在2014年的?Visual Studio and Azure Connect()?在線發(fā)布會(huì)上,微軟使用了一套名為?MyShuttle.biz的樣例程序來展示Visual Studio 2015和Microsoft Azure所提供的DevOps能力,這套樣例的源代碼也被分享出來。其中使用了眾多的技術(shù)來全面展示微軟開發(fā)工具和云計(jì)算平臺(tái)所提供的跨平臺(tái)開發(fā)和DevOps能力。
全套樣例代碼可以通過以下地址下載:
https://code.msdn.microsoft.com/windowsapps/MyShuttle-demo-applications-1a4b68fe#content
跨平臺(tái)移動(dòng)開發(fā)白皮書 – MyShuttle.biz案例分析
這本白皮書將對(duì)當(dāng)前2大主流跨平臺(tái)開發(fā)技術(shù)進(jìn)行詳細(xì)的介紹,我將借助MyShuttle.biz這個(gè)案例,為你展示如何使用跨平臺(tái)開發(fā)技術(shù)結(jié)合云計(jì)算完成一個(gè)典型“互聯(lián)網(wǎng)+”產(chǎn)品的技術(shù)布局,團(tuán)隊(duì)組織,開發(fā)環(huán)境配置和開發(fā)流程管理,最終實(shí)現(xiàn)基于云的開發(fā)運(yùn)維一體化(DevOps)環(huán)境。由于內(nèi)容較多,我將按照以下順序逐步發(fā)布;本系列的前一部分不會(huì)涉及過多的技術(shù)內(nèi)容,適合創(chuàng)業(yè)者,技術(shù)管理者和普通大眾閱讀;后半部分會(huì)涉及較多深入的技術(shù)細(xì)節(jié),適合對(duì)DevOps和跨平臺(tái)移動(dòng)開發(fā)技術(shù)本身感興趣的朋友閱讀。
案例背景
MyShuttle.biz是一套類似“滴滴出行”的互聯(lián)網(wǎng)租車應(yīng)用,可以為企業(yè)用戶提供叫車,計(jì)費(fèi)和后臺(tái)管理能力,解決企業(yè)用戶日常用車需求。雖然“滴滴出行”解決了普通民眾的出行需求,但是企業(yè)用車市場(chǎng)仍然是空白。作為在公司中工作的人來說,有客戶到訪,公司團(tuán)建,出游,甚至日常的跑業(yè)務(wù),稅務(wù)等活動(dòng)都需要用車,而企業(yè)養(yǎng)車則是非常大的開銷;MyShuttle.bizs就是在這樣的大背景下誕生的,希望能夠?qū)⒆廛嚬镜目臻e車輛與企業(yè)用戶相銜接,實(shí)現(xiàn)社會(huì)交通資源的優(yōu)化和企業(yè)用車成本的降低。
大家可以通過以下視頻來了解這個(gè)應(yīng)用:
應(yīng)用架構(gòu)
MyShuttle.biz使用3套相互獨(dú)立的系統(tǒng)來實(shí)現(xiàn)以上業(yè)務(wù)目標(biāo),后臺(tái)系統(tǒng)通過云計(jì)算提供數(shù)據(jù)存儲(chǔ),業(yè)務(wù)邏輯處理和后臺(tái)管理功能,并通過網(wǎng)頁應(yīng)用/Windows APP的形式提供給租車公司/用戶企業(yè)的管理人員使用;用戶APP通過各大應(yīng)用市場(chǎng)給用戶免費(fèi)下載和使用,用戶可以使用APP完成叫車,付費(fèi)和訂單管理功能;司機(jī)APP則提供給司機(jī)使用,完成叫車信息的推送,接受訂單,跟蹤里程等操作。
后臺(tái)系統(tǒng)除了可以由用戶通過瀏覽器完成各種操作外,還提供了流行的Restful接口供APP和其他第三方系統(tǒng)集成使用。
后臺(tái)系統(tǒng)
- 使用SQL Azure 提供安全的高可用數(shù)據(jù)存儲(chǔ)服務(wù)
- 使用ASP.NET 5 WebAPI和Azure Mobile Service 所提供的WebAPI提供數(shù)據(jù)訪問服務(wù)
- 為租車公司提供基于瀏覽器的SPA應(yīng)用(單頁面應(yīng)用)來進(jìn)行車輛,司機(jī)和訂單管理服務(wù)
- 為用車企業(yè)管理人員提供基于Windows APP的桌面應(yīng)用來管理員工,車輛訂單
用戶APP
- 使用Xamarin跨平臺(tái)開發(fā)工具提供原生的App體驗(yàn),同時(shí)支持iPhone/Android/Windows Phone三大移動(dòng)平臺(tái)
司機(jī)APP
- 使用Apache Cordova跨平臺(tái)開發(fā)工具提供基于HTML/Js的Hybrid App體驗(yàn),同時(shí)支持iPhone/Android/Windows Phone三大移動(dòng)平臺(tái)
?
“跨平臺(tái)”技術(shù)如何做到多快好省?
由于使用了跨平臺(tái)開發(fā)技術(shù),我們不必聘用同時(shí)具備Object-C/Java/C#能力的開發(fā)人員,只需要熟練使用C#語言和Visual Studio IDE的開發(fā)人員即可,我們的團(tuán)隊(duì)組成可以規(guī)劃為:
– Team 1: 2名后臺(tái)開發(fā)人員:
○ 熟練使用C#開發(fā)語言,ASP.NET MVC
○ 對(duì)Microsoft Azure云計(jì)算平臺(tái)有所了解
○ 了解Restful接口開發(fā)
○ 負(fù)責(zé)后臺(tái)系統(tǒng)中的數(shù)據(jù)庫(kù),WebAPI開發(fā)
– Team 2: 2名HTML/Javascript/Web/APP開發(fā)人員:
○ 熟練使用C#/HTML/JavaScript/CSS開發(fā)語言,前端框架如Jquery, AngularJS
○ 對(duì)Microsoft Azure云計(jì)算平臺(tái)有所了解
○ 了解Restful接口開發(fā)
○ 負(fù)責(zé)Web SPA App及Apache Cordova Hybrid APP的開發(fā)(司機(jī)APP),同時(shí)支持iPhone/Android/Windows Phone移動(dòng)平臺(tái)
– Team 3: 2名原生APP開發(fā)人員
○ 熟練使用C#和Xamarin
○ 了解Restful接口開發(fā)
○ 負(fù)責(zé)原生APP開發(fā)(用戶APP),同時(shí)支持iPhone/Android/Windows Phone移動(dòng)平臺(tái)
– Team 4: 1名設(shè)計(jì)人員
○ 熟悉移動(dòng)APP和Web應(yīng)用用戶體驗(yàn)設(shè)計(jì)
○ 可以獨(dú)立完成平面原型和元素切圖,熟悉應(yīng)用開發(fā)過程,具備與開發(fā)人員合作的經(jīng)驗(yàn)
– 1名產(chǎn)品經(jīng)理
○ 熟悉互聯(lián)網(wǎng)產(chǎn)品和移動(dòng)APP運(yùn)營(yíng)
○ 熟悉互聯(lián)網(wǎng)產(chǎn)品開發(fā),具備與研發(fā)團(tuán)隊(duì)合作經(jīng)驗(yàn)
○ 可以獨(dú)立完成用戶故事的編寫
○ 熟悉敏捷開發(fā)過程,熟練使用backlog來進(jìn)行產(chǎn)品規(guī)劃
○ 良好的溝通能力
– 1名技術(shù)經(jīng)理
○ 熟練使用C#/ASP.NET MVC/HTML/JavaScript/CSS等開發(fā)語言
○ 熟悉主流前端開發(fā)框架和Restful接口
○ 熟悉Microsoft Azure云計(jì)算平臺(tái)
○ 熟悉互聯(lián)網(wǎng)開發(fā),具備管理研發(fā)團(tuán)隊(duì)經(jīng)驗(yàn)
○ 熟悉敏捷開發(fā)過程,數(shù)量使用backlog,sprint,burndown,kanban等工具來進(jìn)行產(chǎn)品開發(fā)過程管理
○ 良好的溝通能力
當(dāng)然,根據(jù)應(yīng)用的復(fù)雜度和業(yè)務(wù)量的不同,我們也可以對(duì)以上團(tuán)隊(duì)結(jié)構(gòu)進(jìn)行簡(jiǎn)化或擴(kuò)展;如果我們資源有限,可以按照以下思路簡(jiǎn)化團(tuán)隊(duì)
- 將Team 1和Team 2合并,節(jié)省2名開發(fā)人員;因?yàn)榇蠹叶际褂肅#語言,MVC架構(gòu)和REST接口的實(shí)現(xiàn)與前臺(tái)開發(fā)關(guān)系緊密,這樣做不僅僅可以節(jié)約成本,還可以提高開發(fā)效率,節(jié)約團(tuán)隊(duì)間的溝通成本;當(dāng)前,前提是工作量和進(jìn)度的要求可以滿足。
- 在Team 1/2合并的基礎(chǔ)上,我們還可以考慮只使用一種跨平臺(tái)技術(shù)(Apache Cordova或者Xamarin),這個(gè)案例中,為了能夠展示不同跨平臺(tái)技術(shù)的優(yōu)劣而同時(shí)使用了2種技術(shù);而在真實(shí)的項(xiàng)目中,我們完全可以只使用一種;這樣,我們還可以考慮砍掉team 3,而由Team 1/2完成所有工作,這也是使用HTML/javascript作為統(tǒng)一的前端語言以及Apache Cordova提供的最大優(yōu)勢(shì);讓我們可以使用最少的團(tuán)隊(duì)實(shí)現(xiàn)最多的移動(dòng)平臺(tái)覆蓋;當(dāng)然,如果用戶對(duì)于界面體驗(yàn)要求較高,使用Xamarin原生跨平臺(tái)方案還是有其優(yōu)勢(shì)的。
隨著業(yè)務(wù)的推進(jìn),我們也許需要擴(kuò)展團(tuán)隊(duì),使用跨平臺(tái)開發(fā)技術(shù)前提下,無論簡(jiǎn)化或者擴(kuò)展團(tuán)隊(duì),我們的團(tuán)隊(duì)永遠(yuǎn)會(huì)和業(yè)務(wù)對(duì)齊,不會(huì)有多條業(yè)務(wù)線使用同一個(gè)技術(shù)團(tuán)隊(duì)的情況出現(xiàn)。在傳統(tǒng)的開發(fā)模式下,如果你沒有足夠的資源給每個(gè)業(yè)務(wù)線(司機(jī)/租客等)配備獨(dú)立的技術(shù)團(tuán)隊(duì),而按照技術(shù)平臺(tái)(iPhone/Android)來組建團(tuán)隊(duì)架構(gòu)的話,就會(huì)出現(xiàn)不同的業(yè)務(wù)線需要同一個(gè)技術(shù)團(tuán)隊(duì)做不同的事情,這時(shí)候必然會(huì)造成資源沖突,造成內(nèi)耗。而使用跨平臺(tái)開發(fā)技術(shù)就很好的避免了這個(gè)問題,因?yàn)槲覀儾槐匾驗(yàn)榧夹g(shù)不同而割裂本應(yīng)該跟隨業(yè)務(wù)的團(tuán)隊(duì)結(jié)構(gòu)。大型軟件研發(fā)團(tuán)隊(duì)的管理中的首要原則就是團(tuán)隊(duì)?wèi)?yīng)該和業(yè)務(wù)對(duì)齊,而不要受技術(shù)選型的影響;這樣做的目的是為了我們可以根據(jù)業(yè)務(wù)線的需求,最小化外界因素對(duì)交付的影響,做到按照業(yè)務(wù)功能持續(xù)交付;而多條業(yè)務(wù)線使用同一個(gè)技術(shù)團(tuán)隊(duì),不僅僅開發(fā)人員無所適從,也會(huì)大幅增加溝通成本,造成質(zhì)量問題。
最后,對(duì)于團(tuán)隊(duì)建設(shè)和能力成長(zhǎng),采用跨平臺(tái)技術(shù)的團(tuán)隊(duì)使用同樣的語言,工具,開發(fā)環(huán)境;這使得團(tuán)隊(duì)成員的溝通變得容易,大家可以一起交流技術(shù),互相幫助對(duì)方完成工作,這樣更加有利于我們建立健康的團(tuán)隊(duì)氛圍,培養(yǎng)大家互相協(xié)作的氣氛。
按照以上團(tuán)隊(duì)能力,下表中我們看到研發(fā)成本的計(jì)算:
(以下開發(fā)人員工資的數(shù)據(jù)采集自CSDN的2013年開發(fā)者薪資調(diào)查,根據(jù)這份調(diào)查的數(shù)據(jù)我大致估算了各個(gè)類別程序員的薪資中上位水平,同時(shí)乘以1.4的系數(shù)以考慮社保等因素來計(jì)算總體月成本。調(diào)查原文:http://www.csdn.net/article/2014-03-26/2818997/1?)
需要特別提一句,這里的團(tuán)隊(duì)配置中我們對(duì)每個(gè)技術(shù)崗位的職位都配置了2個(gè)開發(fā)人員,同時(shí)不同技術(shù)崗位因?yàn)樗褂玫募夹g(shù)非常相似,都具備互換性。崗位的互換性對(duì)于我們避免員工生病/請(qǐng)假/離職所帶來的影響非常重要!而且我這里的平均工資達(dá)到了18000元/月,比產(chǎn)品經(jīng)理的那個(gè)計(jì)算方式更高!這意味著你可以聘用更高水平的開發(fā)人員。
按照以上我們也可以推算出前3年的開發(fā)成本:
如果按照以上計(jì)算,單單使用跨平臺(tái)移動(dòng)開發(fā)技術(shù),就可以在第一年為你節(jié)省將超過60萬元的研發(fā)成本,隨著團(tuán)隊(duì)的擴(kuò)大(因?yàn)锳PP團(tuán)隊(duì)占研發(fā)成本的大部分),節(jié)省的比例和金額會(huì)變得更加驚人!請(qǐng)大家注意,在“產(chǎn)品經(jīng)理”的計(jì)算中,他所使用的“第一版”成本是按照6個(gè)月計(jì)算的,大致100萬的研發(fā)成本,和我這里的“傳統(tǒng)”計(jì)算方式基本一致,而實(shí)用“跨平臺(tái)”技術(shù)的“第一版”成本比“產(chǎn)品經(jīng)理”的計(jì)算方式低20萬元!
在現(xiàn)實(shí)中,我遇到的朋友很多都問我怎樣多快好省地開發(fā)一款app,我常常告訴他們應(yīng)該用跨平臺(tái)技術(shù);但最后的結(jié)果他們還是會(huì)選擇傳統(tǒng)的各平臺(tái)獨(dú)立開發(fā)的方式,希望以上的分析能夠幫助這些朋友可以對(duì)“跨平臺(tái)”技術(shù)的成本優(yōu)勢(shì)有所了解。當(dāng)然,你心里關(guān)于這些技術(shù)的其他疑問,比如他們和傳統(tǒng)原生app有哪些不同,各種不同的跨平臺(tái)技術(shù)間有哪些優(yōu)劣,在后續(xù)的文章中我都會(huì)一一解答…… ?
?
http://www.cnblogs.com/ups216/p/4948952.html
轉(zhuǎn)載于:https://www.cnblogs.com/softidea/p/4949612.html
總結(jié)
以上是生活随笔為你收集整理的从技术经理的角度算一算,如何可以多快好省的做个app(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在64位Windows 10下完美安
- 下一篇: latex中加水印文字