【猎云网(微信号:ilieyun)】8月19日报道(编译:田小雪)
编者注:本文作者是Mark McDonald,与Josiah Humphrey共同创建了一家叫做Appster的移动应用服务公司,专门为非技术出身的企业创始人提供帮助。
对于想要研发一款应用程序或者数字产品的人来说,究竟如何才能组建起一支最为优秀的工作团队呢?
上个星期,我和一位名叫Stephen的潜在客户,聊了聊他正在研发的应用程序。我问他,到目前为止,已经投入了多少资金。他非常沮丧地回答说,大约有25万美元,但收到的效果却不是很理想。
当时的我,就像是即将宣布糟糕体检结果的医生一样,说:“你投入的资金确实不算少,但问题就在于,这款应用程序的研发过程,属于意大利面条风格。所谓意大利面条式代码,就是指一个代码的控制结构复杂、混乱而难以理解,尤其是用了很多GOTO、例外和线程这类无组织的分歧架构。感觉在过去的几个月中,你们所有的开发人员,都像无头苍蝇似的乱飞乱撞,工作方向不明确,因而效率也不高。”
听完我的分析,这位潜在客户就向我发出了求助,希望我能够帮他解决这个问题。
当然了,这本来就是我的工作。平均算下来,我每个月都会进行20次诸如此类的对话。
对于一位只有创意的人来说,想要真正组建起一支优秀的软件开发团队,顺利完成应用程序或者数字产品的研发工作,是一件非常有难度的事情。在这种情况下,他们就只能退而求其次,花费相对较少的钱,组建相对较差的团队。
或许只是由一群自由职业者拼凑起来的团队,或许只是请了一家资质较为普通、开发经验较少的设计公司。
总而言之,只要你无法组建起一支优秀的软件开发团队,那就算是投入再多的时间和金钱,也不可能看到任何成效。
这一点,是非常令人沮丧的。这些人把自己辛辛苦苦赚来的钱拿出来搞创业、做投资,就是希望能够研发出一款可行性较高的产品。但可惜的是,他们错信了一只注定会失败的研发团队。我也知道,省钱是人之常情。对于一支普通的团队来说,预算限制就是真实存在的,没有办法不考虑这个问题。
就算你拿到了外部资金支持,那也还是会尽最大可能省钱。毕竟全方位服务软件开发的价格,还是十分昂贵的。
但是,如果我们换一个角度去想,这也不是完全绝对的。因为如果你真的能够与一支经验丰富的软件开发团队合作,那将会省去创新和研发过程中的很多麻烦事。
作为一名专业技术人员,我想要探究以下三个问题:
第一,专业应用程序开发团队提供的真实价值在哪里;
第二,不同水平层次上的开发团队和公司都是如何运营的;
第三,如何保证雇佣到最为合适的人才,组建起最为优秀的软件开发团队,将产品创意变为现实。
(一)以低价和省钱作为最高宗旨
不靠谱的开发人员
自由职业者、纯粹合约性质的在线网站、海外血汗工厂以及其他按需开发人员,都要归到这一类当中。通常情况下,这些人和机构的收费标准低得惊人,完全就是廉价劳动力。没有什么要求和限制,只需要在规定的时间内完成产品交付就行。
当然了,我并不是要故意诋毁自由职业者。只不过,现实生活中那些不太守规矩的承包商实在是太多,坏了自由职业者的名声,影响了大家对他们的看法和态度。
另外,就我多年来的工作经验来说,自由职业者之所以不受人待见,主要问题就出在“自由”上。由于双方合作关系的约束范围较小,所以这些自由职业者经常会莫名其妙地消失不见。也就是说,很有可能研发工作进行到一半,你的设计师或者开发人员就突然跑路了。不管是通过Skype,还是邮件,甚至是打电话,都联系不到他们。很显然,这是一个非常严重的问题。尤其是当你在开发前期投入了较多人力物力财力,而且设有明确产品发货目标的时候,出现这个问题,那情况就相当糟糕了。
乍一听,设计师和开发人员突然跑路,是一件挺不可思议的事情。但其实,在现实生活中,这种现象是十分常见的。
有的时候,那些在线合作对象,因为学校或者工作临时有事,无法按时完成你交代的工作,同样也会对你的产品研发产生负面影响。这些都是很正常的事情,没有必要太多担忧。而且有的时候,你的担忧根本就起不到什么作用。
质量低劣的软件开发公司
一般情况下,这些都是来自其他国家的中间开发公司,所使用的开发人员也都是廉价劳动力,组织比较松散,编写出来的代码,也没有足够的质量保证。花个五美元或者十美元,就完全能够买下他们一个小时的工作时间。
试想一下,一个小时五美元的预算,要怎么开发出优质的应用程序或者数字产品呢?答案就只能是雇佣廉价、低质的劳动力了。
我曾经亲自见过这种代码编写血汗工厂,员工真正的生存状况实在不是很乐观。这些工厂会从学校里招来一些毕业生,每个月付给他们200美元到500美元的报酬,让他们专门编写代码。作为极度缺乏工作经验的业余开发人员,这些毕业生经常同时负责至少六七个项目的代码编写工作。不仅如此,他们经常会利用多个应用程序的IP地址,来进行简单粗略的拼凑。说白了,他们进行的,根本就不是标准、正规的代码编写。
对于这些血汗工厂来说,安全、性能、代码编写的质量和可扩展性这些问题,根本都是不予考虑的。到最后,你拿到手的,就是粗制滥造的产品。不用细看,就知道既没有花钱,也没有花心思,完全就是“地摊”上的便宜货。
而这些不专业的代码编写人员,从某种程度上来说也都属于受害者,拖欠工资或者克扣工资这类问题,应该会经常遇到。所以,说这类开发公司是黑心血汗工厂,并不是无缘无故地贬低他们。不论是谁,都应该坚决抵制这样一种模式,不能助长这种不良风气。
(二)提供全方位服务的外包性软件开发公司
混合公司、经纪公司,以及质量一般的软件开发公司
前不久,墨尔本又有一家软件公司,进入了破产清算阶段。说实话,没有人希望看到一家初创企业走上破产的道路。但是对于这家公司的运营模式,我的确是不太赞同的。
就像许多其他混合公司一样,这家公司也设有现场项目经理。乍一看上去,就是一家专业的全方位服务公司。但其实,他们的绝大多数开发工作都,是外包给其他公司去做的。而这些公司不是别人,正是我们上文所提到的自由职业者,以及使用5美元一小时廉价劳动力的黑心代码编写工厂。
在科技行业,这种徒有其表、空虚其里的公司和业务外包模式,已经越来越常见。那些所谓专业素养较高的开发公司和咨询顾问,也都只是假装自己拥有高质量的内部开发团队罢了。
因此,这种混合模式所存在的风险和问题,与一开始介绍的自由职业者模式,都是差不多甚至是完全一样的。由于自由职业者的专业素养无法得到保证,所以会出现中途跑路、工作质量粗糙、无法按时完成工作以及标准不可靠等各种麻烦。
没错,在每个项目上安排一位专门的项目经理,确实是一种值得尝试的做法。但如果这位项目经理,也只是那些海外血汗工厂的中间人,那与你自己直接雇用廉价低劣开发公司比起来,也好不到哪儿去。
而且,与一家在代码编写方面资质平平的设计公司合作,也不会帮助你取得成功。与之相反,只会给你的项目带来较大风险。
创始人削减开支的决定,会给公司的哪些方面带来负面影响?
我可以很负责任地说,凡是排在前一百名以内的应用程序,没有哪一款是出自小规模研发团队、海外研发团队或者设计公司的。
现如今,应用程序和数字产品研发领域的市场的竞争,实在是太过激烈。对于各家公司、各个团队和各款产品的要求,可以说是相当高,上述这些机构是无法跟上这种节奏的。当然了,我并不是说这是件好事,仅仅是在陈述事实。
当你听到有人投入了1万多美元,想要开发一款小型应用程序,但到最后却一无所获的时候,真的会觉得非常沮丧。
更为糟糕的是,目前在澳大利亚、欧洲以及北美洲,有很多经纪公司,都会刻意把自己包装得高度专业,收费标准高达5、6万美元。可是到最后,拿出来的成果,仍然是意大利面式的代码。这种行为,就是在赤裸裸地欺骗客户。
在具体讨论应该如何选择合适的开发公司,或者如何组建优秀的开发团队之前,我们先来说一说,假如公司创始人真的出于预算限制,选择走捷径采用质量低劣的开发人员,那么会带来哪些负面影响。
产品的设计,将会非常糟糕。大家一眼看上去,就知道这是一款恶俗的廉价产品。用户不会对这样的交互界面产生信任,因而也就不会选择去下载这款应用程序,更不会为它的功能掏钱买单。
开发人员无法按部就班在预计的截止日期之前,完成自己应该完成的工作。所以,在原定日期到来之时,他们根本就拿不出成品。到时候,不仅会错失诸多发展机遇,还会损失大笔钱财甚至欠下一屁股债。
即便对方一开始的要价很低,但是由于各种不确定因素的存在,后期费用很可能会像滚雪球一样越滚越大。因为缺乏明确划定的工作范畴,以及详细简明的工作安排,所以应用程序或者数字产品的功能和要素每变动一次,都会被看作是我们主动提出的设计变动请求,因而就会向我们额外收费。甚至在现实生活中,就有一些公司用这种额外的“杂费”来做文章,收取等同于合同原本价值双倍的价钱,通过这样一种过于霸道的商业模式来赚钱。
研发出来的应用程序,缺乏足够的可扩展性。刚开始时,新用户会尽可能多地使用这一系统,但是随着后期知名度和用户数量的增加,而产品的可伸缩性又太小,所以就没有办法适应这种突如其来的变化,因而产品也就没有办法收获真正的增长。
对产品的质量毫不重视。既没有进行各种必要的测试,也没有设置特定的性能和安全协议。一方面,用户隐私和数据存在着泄露的风险;另一方面,你的源代码和源程序也存在着随时泄露的风险。
他们编写出来的代码,其他任何开发人员都没有办法继续使用。就算你到后期选择雇用合乎法律的正经开发公司,那他们也必须要从头再来,之前那些代码和结构,是完全用不成的。举个最为简单的例子,如果你在建房初期没有打好地基或者是使用了发霉的梁木,那么到后来再想加固装修的时候,就只能推倒重来了,肯定不能在破败劣质的基础之上再白费力气。
(三)真正专业的全方位服务软件开发公司
花钱雇用最为顶尖的开发人才
那么,什么样的人才,才算得上是最为顶尖的呢?很简单,就是智商较高、经验丰富、实力强劲的软件工程师。有了他们,软件开发的大部分难题,也就都迎刃而解了。可以说,他们发挥着不可替代的作用,是各家公司竞相争取的宝贵人才。
那种五美元一个小时的收费标准,是绝对不可能运用到他们身上的。
一家真正专业的软件开发公司,会舍得花大价钱来雇用这些顶尖人才。只有在这些开发人员、设计师和工程师的共同努力之下,才能够研发出具有高度可扩展性的系统,才能够保证广大用户被优质的交互界面所吸引。
而这也正是谷歌和Facebook这类大型科技公司,不惜斥巨资组建和优化研发团队的原因所在。作为各自行业的领头羊,他们清楚地知道具有批判性思维、能够通过创新方式来解决问题的大脑,所带来的真实价值。
商务咨询逐渐成为行业标准
与应用程序相比,数字产品更加需要完整生态系统所提供的全方位支持。
对于一家看重概要的开发公司来说,就算简要计划和方案不发挥作用,他们同样能够研发出一款优质的应用程序。因为在整个过程当中,专业开发人员会通过各种测试来验证之前的假设,并且提前找出那些可能产生负面影响的漏洞和缺陷。一般来说,优秀的程序和产品,都是这样产生的。
对于开发人员来说,如果想要在苹果软件商店上架,却遭到拒绝那肯定会感到非常失望。从苹果公司的角度出发,他们绝对不会接受一款功能不全甚至是缺失的游戏,也绝对不会接受一款未来可能会让用户赔钱的产品。
所以说,这时候就需要真正专业的全方位服务软件开发公司来提供支持,保证所有的这些细节高效运作,帮助自己顺利完成应用程序或者数字产品的开发工作。
选择设计师时考虑不同国家和地区之间的文化差异
在现实生活中,有不少公司都选择聘请来自澳大利亚、英国、美国和加拿大等西方国家的设计师。如果能够与这类公司达成合作,那么将会为自己争取到较大的竞争优势。
当然了,在这里,我并不是片面地强调全球精英主义。毕竟设计本身,是一件集艺术和科学于一体的事情。说白了,这是一个细致活儿。它牵扯到来自不同国家和地区的人,在各自与产品交互的过程当中,呈现出来的文化差异问题。
如果你的应用程序或者数字产品,以西方国家的民众为目标客户群体,那么你最好还是要选择具有相同文化认知和感悟的设计师进行合作。
另外,如果你的应用程序以多个市场为目标,那么你还需要一些精通国际业务拓展战略的专家来提供支持。因为他们清楚地知道,应该采用哪些不同的方法,来获取不同类型的潜在客户。
明确相关标准和法律问题的界限
研发一款应用程序,需要在代码编写、设计、功能性、隐私以及适用性等问题上,把相关的标准明确规定下来。
对于一家真正专业的软件开发公司来说,严格遵循相关的实践和程序,保证到最后拿出令人满意的优质产品,是一件至关重要的事情。他们也正是靠严格贯彻这些标准,才为自己建立起了良好的信誉和形象。
鉴于我在Appster所扮演的角色,我已经习惯于对每一款走向市场的产品进行回顾分析。但其实,在我进行回顾分析之前,这些产品都已经经过了非常频繁和全面的测试。
从法律角度来看,就算将来你与一家在业内信誉较好的公司发生了纠纷,那么还是能够通过带有强制性规定和标准的合同,在最大程度上为自己争取好处的。
但是如果你与一家海外公司,针对IP地址问题发生了纠纷,那我就只能够祝你好运了,因为这个问题解决起来就比较麻烦了。
总而言之,不管是哪一家公司,它总是要建立在担保、支持期、合同和责任等基础之上的。软件开发过程,同样也不能例外,同样也需要注意这些问题。记住,一定要尽最大努力保护好自己的钱财和成果。
买方注意:应该问些什么、应该调查些什么
在你签署一份合同、完成资金转账或者是雇用开发公司之前,一定要注意以下几个事项,不妨通过这些步骤来提高自己的投资效率,尽可能保证最终产品的质量。
首先,查看对方公司在领英上的资料档案
上面我也说了,有些公司会刻意去包装自己,说自己在全世界各大城市都设有办事处,负责开发工作的正式员工多达300人等等。为了分辨他们说的话,到底是真是假,你可以充分利用领英这一强大的求职网站,看看到底有多少人是真的在这家公司工作。
如果说,你找来找去,只找到了一位在该公司工资名单上的真实员工,那就应该提高警惕了。
其次,多找项目经理交流意见
在项目开始全面推进之前,项目经理就是你的全权代表。所以,你要经常跟他们保持联系。具体说来,可以通过以下几个关键问题来掌握实时进展:
第一,具体的开发工作是由谁来负责?目前这个规模较小的团队是否会一直持续下去,还是说日后会进行调整?
第二,开发人员、设计师、技术人员和其他团队成员,都在哪里办公?
第三,这些职责不同的人,一帮都向谁汇报工作?
第四,他们之前有过什么样的工作经历?
第五,他们是否都是公司的全职员工?
第六,彼此之间的互动频率如何?每天的会议和每个星期的会议,都是怎么进行的?
再次,不要把关注的重点限制在代码编写上
除了开发工作,你还得关注用户测试、代码评估、安全协议和IP保护等问题。
前不久,我还专门写过一篇这方面的文章,就是想要帮助那些非技术出身的公司创始人,增加自己与开发团队共处时的自信。
最后,千万要留意额外增加的成本支出
在正式开始合作之前,双方一定要就额外请求这个问题,进行明确的划分和规划。哪些情况,属于我们主动提出的变动请求?这些额外请求的收费标准如何?如果双方就这些额外请求或者收费标准产生分歧,又应该如何解决?
软件开发是一个频繁发生变化的过程,这一行的发展速度很快。对于那些从来没有接触过代码编写的人来说,出现挫败的感觉,是再正常不过的事情。
但千万不能因为这样,就逃避或者气馁。该提前做的功课你要问,该问的问题你也要问。要知道,你不投入时间和金钱,那么研发出来的产品,质量也不会好到哪儿去。
至于那些收费较高的公司,自有他们收费高的理由。他们能够明确列出各项服务的价格,以及自己能够带来的价值,让你心甘情愿掏钱买单。
现阶段,市场上的应用程序越来越多,开发公司也越来也多。就好像,只要有一串代码或者一个网站,人人都能进行应用程序开发一样。
这也从另一个角度证明,如果你是真的想踏踏实实搞开发,那就必须要做好自我保护工作。
总之,一句话,稍微挖深点、稍微乐观点、稍微谨慎点,保证每个阶段工作的优质和高效,那你就能够在应用程序和数字产品开发这条路上越走越远。