【导读】前端时间,一篇“从产品经理的角度算一算,作个app须要多少钱”的文章在网上疯传,可见你们对互联网创业的热情!此次,从一名技术经理的角度再给你们分析一下,如何使用跨平台开发技术为你节省上百万的开发成本。所谓“跨平台”开发技术,就是使用一种语言和一种开发工具同时支持几种不一样的手机/平板设备,这样作不只仅省钱并且开发效率高,可让你更快的推出新版本和新功能!javascript
做为一名软件工程顾问,我曾参与过不少的项目,主要为软件团队进行开发工具和方法论方面的咨询/培训/指导,我接触过不下100个各类类型/大小的开发团队,有传统行业,有互联网,有不差钱的,也有刚起步的创业者;其中也不乏app开发项目。开发团队遇到的问题最大共性是每一个人在一个团队中的位置很大程度上决定他的判断,简而言之:视野问题!而当你们问一名IT人士那个经典的“作个app要多少钱?”的问题时,他也仅仅能根据本身的技术背景和经验给你一个答案,更加倾向于推荐那些相对稳妥的方案;而不懂技术的人更加无从判断。我想说的是:虽然互联网创业是个技术活,但技术选型必定要业务先行,ROI(投入产出比)优先。这就是为何你首先应该从成本角度进行分析,作出判断;而不要受制于技术!html
在回答完那个经典的“作个APP多少钱?”的问题后,下面这些问题就会接踵而来:前端
对于当前所流行的“互联网+”的众多创业者来讲,如何可以以最快的速度和最小的成原本开发/运营本身的产品是决定是否可以在早期快速取得客户,获取生存空间和赢得将来机会的决定性因素。其实对于任何的软件开发来讲,多快好省永远是咱们的追求,当前的创业大潮使得这一原则更加凸显,也让更多的人了解到了软件开发。java
DevOps(研发运维一体化)也是最近几年在软件行业很是流行的作法,DevOps经过打通开发和运维这两个本来属于不一样领域的团队来为咱们运营产品提供更快的价值输出,其实也是多快好省地体现。从用户的角度,使用手机/平板等移动设备的用户已经超过了PC用户,而在移动设备领域又存在着iPhone/Android/Windows三分天下的情况,这使得上面所提到的快速推出产品变得更加困难,同时因为不一样的设备所使用的操做系统,开发环境和运行环境都彻底不一致,让咱们的研发管理变得更加的复杂,实现DevOps也是难上加难。程序员
本篇博客将使用MyShuttle.biz这个应用来为你展现一个“互联网+”时代的创业团队如何使用跨平台开发技术来多快好省地解决以上问题。web
在2014年的 Visual Studio and Azure Connect() 在线发布会上,微软使用了一套名为 MyShuttle.biz的样例程序来展现Visual Studio 2015和Microsoft Azure所提供的DevOps能力,这套样例的源代码也被分享出来。其中使用了众多的技术来全面展现微软开发工具和云计算平台所提供的跨平台开发和DevOps能力。
全套样例代码能够经过如下地址下载:
https://code.msdn.microsoft.com/windowsapps/MyShuttle-demo-applications-1a4b68fe#content数据库
这本白皮书将对当前2大主流跨平台开发技术进行详细的介绍,我将借助MyShuttle.biz这个案例,为你展现如何使用跨平台开发技术结合云计算完成一个典型“互联网+”产品的技术布局,团队组织,开发环境配置和开发流程管理,最终实现基于云的开发运维一体化(DevOps)环境。因为内容较多,我将按照如下顺序逐步发布;本系列的前一部分不会涉及过多的技术内容,适合创业者,技术管理者和普通大众阅读;后半部分会涉及较多深刻的技术细节,适合对DevOps和跨平台移动开发技术自己感兴趣的朋友阅读。windows
MyShuttle.biz是一套相似“滴滴出行”的互联网租车应用,能够为企业用户提供叫车,计费和后台管理能力,解决企业用户平常用车需求。虽然“滴滴出行”解决了普通民众的出行需求,可是企业用车市场仍然是空白。做为在公司中工做的人来讲,有客户到访,公司团建,出游,甚至平常的跑业务,税务等活动都须要用车,而企业养车则是很是大的开销;MyShuttle.bizs就是在这样的大背景下诞生的,但愿可以将租车公司的空闲车辆与企业用户相衔接,实现社会交通资源的优化和企业用车成本的下降。浏览器
你们能够经过如下视频来了解这个应用:安全
http://v.qq.com/page/n/g/h/n0171nvm6gh.html
MyShuttle.biz使用3套相互独立的系统来实现以上业务目标,后台系统经过云计算提供数据存储,业务逻辑处理和后台管理功能,并经过网页应用/Windows APP的形式提供给租车公司/用户企业的管理人员使用;用户APP经过各大应用市场给用户免费下载和使用,用户可使用APP完成叫车,付费和订单管理功能;司机APP则提供给司机使用,完成叫车信息的推送,接受订单,跟踪里程等操做。
后台系统除了能够由用户经过浏览器完成各类操做外,还提供了流行的Restful接口供APP和其余第三方系统集成使用。
后台系统
用户APP
司机APP
因为使用了跨平台开发技术,咱们没必要聘用同时具有Object-C/Java/C#能力的开发人员,只须要熟练使用C#语言和Visual Studio IDE的开发人员便可,咱们的团队组成能够规划为:
– Team 1: 2名后台开发人员:
○ 熟练使用C#开发语言,ASP.NET MVC
○ 对Microsoft Azure云计算平台有所了解
○ 了解Restful接口开发
○ 负责后台系统中的数据库,WebAPI开发
– Team 2: 2名HTML/Javascript/Web/APP开发人员:
○ 熟练使用C#/HTML/JavaScript/CSS开发语言,前端框架如Jquery, AngularJS
○ 对Microsoft Azure云计算平台有所了解
○ 了解Restful接口开发
○ 负责Web SPA App及Apache Cordova Hybrid APP的开发(司机APP),同时支持iPhone/Android/Windows Phone移动平台
– Team 3: 2名原生APP开发人员
○ 熟练使用C#和Xamarin
○ 了解Restful接口开发
○ 负责原生APP开发(用户APP),同时支持iPhone/Android/Windows Phone移动平台
– Team 4: 1名设计人员
○ 熟悉移动APP和Web应用用户体验设计
○ 能够独立完成平面原型和元素切图,熟悉应用开发过程,具有与开发人员合做的经验
– 1名产品经理
○ 熟悉互联网产品和移动APP运营
○ 熟悉互联网产品开发,具有与研发团队合做经验
○ 能够独立完成用户故事的编写
○ 熟悉敏捷开发过程,熟练使用backlog来进行产品规划
○ 良好的沟通能力
– 1名技术经理
○ 熟练使用C#/ASP.NET MVC/HTML/JavaScript/CSS等开发语言
○ 熟悉主流前端开发框架和Restful接口
○ 熟悉Microsoft Azure云计算平台
○ 熟悉互联网开发,具有管理研发团队经验
○ 熟悉敏捷开发过程,数量使用backlog,sprint,burndown,kanban等工具来进行产品开发过程管理
○ 良好的沟通能力
固然,根据应用的复杂度和业务量的不一样,咱们也能够对以上团队结构进行简化或扩展;若是咱们资源有限,能够按照如下思路简化团队
随着业务的推动,咱们也许须要扩展团队,使用跨平台开发技术前提下,不管简化或者扩展团队,咱们的团队永远会和业务对齐,不会有多条业务线使用同一个技术团队的状况出现。在传统的开发模式下,若是你没有足够的资源给每一个业务线(司机/租客等)配备独立的技术团队,而按照技术平台(iPhone/Android)来组建团队架构的话,就会出现不一样的业务线须要同一个技术团队作不一样的事情,这时候必然会形成资源冲突,形成内耗。而使用跨平台开发技术就很好的避免了这个问题,由于咱们没必要由于技术不一样而割裂本应该跟随业务的团队结构。大型软件研发团队的管理中的首要原则就是团队应该和业务对齐,而不要受技术选型的影响;这样作的目的是为了咱们能够根据业务线的需求,最小化外界因素对交付的影响,作到按照业务功能持续交付;而多条业务线使用同一个技术团队,不只仅开发人员无所适从,也会大幅增长沟通成本,形成质量问题。
最后,对于团队建设和能力成长,采用跨平台技术的团队使用一样的语言,工具,开发环境;这使得团队成员的沟通变得容易,你们能够一块儿交流技术,互相帮助对方完成工做,这样更加有利于咱们创建健康的团队氛围,培养你们互相协做的气氛。
按照以上团队能力,下表中咱们看到研发成本的计算:
(如下开发人员工资的数据采集自CSDN的2013年开发者薪资调查,根据这份调查的数据我大体估算了各个类别程序员的薪资中上位水平,同时乘以1.4的系数以考虑社保等因素来计算整体月成本。调查原文:http://www.csdn.net/article/2014-03-26/2818997/1 )
须要特别提一句,这里的团队配置中咱们对每一个技术岗位的职位都配置了2个开发人员,同时不一样技术岗位由于所使用的技术很是类似,都具有互换性。岗位的互换性对于咱们避免员工生病/请假/离职所带来的影响很是重要!并且我这里的平均工资达到了18000元/月,比产品经理的那个计算方式更高!这意味着你能够聘用更高水平的开发人员。
按照以上咱们也能够推算出前3年的开发成本:
若是按照以上计算,单单使用跨平台移动开发技术,就能够在第一年为你节省将超过60万元的研发成本,随着团队的扩大(由于APP团队占研发成本的大部分),节省的比例和金额会变得更加惊人!请你们注意,在“产品经理”的计算中,他所使用的“初版”成本是按照6个月计算的,大体100万的研发成本,和我这里的“传统”计算方式基本一致,而实用“跨平台”技术的“初版”成本比“产品经理”的计算方式低20万元!
在现实中,我遇到的朋友不少都问我怎样多快好省地开发一款app,我经常告诉他们应该用跨平台技术;但最后的结果他们仍是会选择传统的各平台独立开发的方式,但愿以上的分析可以帮助这些朋友能够对“跨平台”技术的成本优点有所了解。固然,你内心关于这些技术的其余疑问,好比他们和传统原生app有哪些不一样,各类不一样的跨平台技术间有哪些优劣,在后续的文章中我都会一一解答……
更多内容,请关注公众微信号 DevOps