Android has 近82% 到2017年,全球移动市场份额将超过20亿活跃用户. (苹果几乎控制了其余18%的份额.)
原因对某些人来说是显而易见的:Android是开源的,可以免费查看, download, modify, 或重新分配. 这些事实对手机制造商非常有吸引力,因为他们可以直接将自己的体验带给客户,而无需额外成本.
此外,Android生态系统近年来已经扩展到移动设备之外的领域. Android Auto于2014年发布, 超过45个汽车品牌将Android操作系统带入车载pc, 然后可以轻松连接到安卓设备并与它们的应用程序进行通信.
Android也通过Android Things框架加入了物联网的战斗, 它允许开发人员在没有嵌入式系统知识的情况下创建生产就绪的设备.
随着虚拟现实和增强现实支持库的增加,这个列表变得越来越长,现在可以轻松集成.
而Android在多个领域的扩张速度非常快, 它仍然使用相同的编程语言和SDK. 这使得公司更容易扩展:开发人员可以使用他们已经拥有的相同知识为多个平台创建应用程序.
虽然这听起来很乌托邦,但请记住,用户是如何 perceive 产品是最重要的. 优秀的设计往往能吸引顾客, 但是一个马厩, 具有良好用户体验的有用应用程序使用户不会离开. 这就是为什么拥有一支优秀的开发团队对你的产品至关重要. 他们在整个过程中起着关键作用.
优秀的设计往往能吸引顾客, 但是一个马厩, 具有良好用户体验的有用应用程序使用户不会离开.
用户往往对崩溃和糟糕的性能非常敏感. Ideally, 应用程序在非常短的时间内(通常不到一秒)交付服务时应该是稳定的. Then again, 不管开发者有多优秀, bug是会发生的,但是最小化bug并交付用户期望的东西是非常重要的.
所以,问题来了:你何时以及为什么要开始招聘Android开发者?
答案是:当你需要做以下任何一件事的时候.
1)将业务拓展到新的领域
我们之前提到,Android应用程序可以为汽车和智能住宅开发, 但即使是可穿戴设备, TV boxes, glasses, 定制硬件设备是这里的选项. 随着Android成为这些不同IT领域的主要燃料, 紧跟潮流,通过推出新产品来扩大你的业务是非常有吸引力的.
这确实需要一些额外的资源, 无论你是已经有了Android应用开发团队,还是刚刚起步. 但是通过使用谷歌提供的sdk, 开发人员不需要学习新的语言, approaches, 或限制,因为这些平台使用几乎相同的代码,任何其他Android应用程序,可以使用其所有的库.
这使得快速实现和快速交付全功能成为可能, 稳定产品,开拓新市场.
如果这就是你所需要的,那么是时候雇佣Android开发者了. 那些熟悉你计划使用的框架的人可以帮助你启动你的 最小可行产品 更有效率.
2)利用外部意见改进你的产品
你是否曾经想过事情是否可以做得不同? 或者你的团队发现自己被限制所困?
有时候,随着时间的推移,项目会发展到专家咨询是前进的唯一途径的地步. 无论一个特定项目的原因是什么,目标都应该明确定义.
一旦你准备好了,雇佣一个Android顾问对你的公司是有好处的. 与公司内部的人相比, 他们可以对你当前的Android应用开发及其过程进行更全面、更客观的分析.
他们的意见将基于他们在多个项目中工作时的经验. 从这个品种中, 他们将能够看到不同的解决方案和方法,而不是内部团队已经习惯转向的问题.
他们可以调查UI实现, modularity, 性能和内存管理, 离线存储, 数据同步和缓存方法, SDKs, 框架和库, 通用技术, 代码组织, 使用的编码模式. 他们将能够识别最佳实践和痛点,并建议如何解决问题和避免潜在的陷阱.
Android承包商还可以将您当前的实现与现代原则进行比较. 例如, 他们可以总结使用不同后台同步方法或特定技术(如Realm(移动数据库))的好处。.
Finally, 他们可以查明工作流程问题,并建议自动化系统或外部服务,以提高团队的生产力. 一些常见的例子是使用Jenkins持续集成来运行自动化测试,使用Fastlane来轻松地将应用程序发布到多个商店.g.如果你的手机应用开发包含iOS版本,那么你也可以选择Apple Store.)
如果这些有用的话, 在这种情况下,你需要准备聘请Android顾问的最后一件事, 这就是思想开放. Android承包商将尽最大努力为你的项目提供最客观、最合理的分析, 但是,除非相关各方能够在足够长的时间内脱离他们对项目的感觉,从建设性的批评中获益, 这种分析毫无意义.
但是态度要好, 雇佣一名Android顾问可以帮助你获得所需的全面分析,从而优先考虑并解决项目问题,最终推动项目向前发展.
减少项目失败的风险
有时候项目不仅仅是停滞不前,而是实际上失败了. 这可能是一场灾难,以至于很难看到还有成功的方法.
这些事情可能是由于缺乏知识而发生的, 糟糕的任务委派和管理问题, 或者是完全不同的东西. 最重要的是,产品需要按照约定按时交付. 如果你的团队总是不能按时完成任务, 对客户和投资者关系的损害可能是巨大的.
这个问题需要解决,薄弱环节需要替换. 为了不失去比现在更多的东西, 公司可以雇佣有经验的Android自由职业者来代替个人,直到这个过程结束.
通过这种方法, 当人力资源部门组建新团队时,你的公司或多或少可以保证产品开发将向前推进并按时完成. 甚至可能发生各方都对这个临时工作的表现感到满意, 这样安排就可以变成长期的合作.
这给你的公司在处理内部问题时提供了很大的灵活性, 不损害结果和义务.
4)获得专业知识
这取决于你的项目给市场带来的创新, 它的任务自然需要更具体的知识. 在这种情况下,并不是很多开发人员能够完成这样的任务. 这是很正常的:没有人能指望员工都有理想, 他们将面临的每一项任务的超专业知识.
这对于WhatsApp等高度加密的应用程序和医疗应用程序来说可能是显而易见的,这些应用程序需要符合hipaa,以保护患者的隐私. 这些示例需要Android开发人员进行加密, store, 并以一种能够保护客户免受潜在欺诈的方式使用数据. 为了做到这一点, 他们需要对Android操作系统中存在的加密算法和安全系统都有非常具体的了解.
这是一个完美的场景,一个自由的Android开发者可以根据他们之前的经验加入. 这可能会让公司付出更多的代价, 但与此同时, 项目将按计划继续进行, 按时完成任务,信守承诺.
这就是企业成为市场先锋的方式, 通过增长和巩固他们的用户基础, 利用他们正在开发的创新来确保客户的忠诚度. 那些等待内部员工迎头赶上的公司也将在市场上迎头赶上.
5)提高员工的生产力
世界上的每一家公司,无论其工作领域如何,都有改进的空间. “在工作中使用Android”在这里能有多大贡献? 通常是相当大的数量. 潜在改进的领域各不相同, 从消除手工工作到简化现有工作流程.
蘑菇种植就是一个例子. 取决于物种, 各种外部因素需要不断维护, 比如湿度, 温度, light, 以及空气中二氧化碳的含量.
硬件结构是否齐全, 一个Android开发者可以通过Android Things SDK开发一个完整的系统,这将完全自动化这些因素的稳定. That way, 员工可以自由地专注于系统的定期检查和其他将促进公司增长的任务.
第二个例子是餐饮业. 服务员在走路和点菜上浪费了大量的时间.
通过使用Android应用程序,整个流程可能会得到显著改善. 当客户下订单时, waiters can note them through the app; chefs in the kitchen will be automatically notified and they can start preparing food immediately. 然后,这可以与支付过程集成, 这可以通过Stripe等公司的api实现自动化.
In short, 你所需要做的就是退后一步,看看员工的日常工作,找出他们的痛点. After that, 公司可以雇佣Android自由职业者来帮助他们设计和实施解决方案,帮助员工节省时间.
这也会让客户更满意:他们支付的最终产品或服务质量更好. 这样,客户和员工都更满意了,企业就可以扩大规模了.
在这一点上,也许很明显你需要雇佣一个Android开发人员. 在我们的一些场景中,很容易看出为什么它应该是a freelance 尤其是Android开发者. 但当这一切都有可能发生时, 在Android开发方面,为什么不坚持雇佣正式员工呢?
让我们这么说吧:你需要为手头的项目做多少以下的事情?
6)减少开支
每个企业都希望尽可能地节省资金,同时避免日后花费更多. 如果这是一个比正常情况下更强的要求, 这是一个明确的信号,表明你准备雇佣一名自由职业者.
这似乎有悖常理. 但是,当你雇佣一名Android开发人员时,情况会是怎样呢?
假设两个开发人员拥有相同数量的知识和专业技能. 一个是承包商,另一个是全职员工.
通常,对于全职员工来说,招聘过程可能代价高昂. 找到一个让你满意并能融入团队的人是需要时间的. 下一步通常包括培训开发人员,直到他们达到一定的专业水平,允许他们开始从事项目工作.
全职员工也有必须支付的福利. 这些可以是医疗保险和/或牙科保险, 假期, sick days, 工人的补偿, and more, 取决于你的公司. 所有这些都需要成为全职员工成本分析的一部分.
另一方面, 当涉及到外部承包商时,公司不需要为这些福利付费, 因为他们有自己的福利. 他们在其他方面也非常灵活:
他们只按你完成的工作量收费, 所以如果没有工作, 没有什么要支付的.
Usually, Android承包商不需要特殊培训, 因为他们通常在该领域具有相当水平的知识和专业知识.
承包商在公司方便的时候工作. 一个很好的例子是,如果您决定暂停或关闭项目, 没有人需要解雇, per se.
如果承包商没有提供他们所期望的东西, 和他们停止合作是很容易的. 另一方面, 如果是全职员工的话, 通常情况下,你必须咨询你的人力资源部,以遵守解雇程序的规则, 这可能会很长很复杂.
Overall, 公司对承包商有更好的灵活性,最终通常在他们身上花的钱更少.
7)从一开始就引进Android专家
正如我们上面提到的,招聘过程可能是漫长而昂贵的. In contrast, 你可以通过各种平台更容易地联系到那些专门从事你这样项目的承包商.
为了在市场上保持竞争力, 即使是拥有良好记录的Android开发者也需要不断学习和发展. 但Android顾问将习惯于展示他们以前的经验, 被自励的, 对最终产品的贡献也更大.
拥有一个经验丰富的团队对于任何产品都是非常重要的. 他们不仅会想出不同的方法, features, 以及对未来改进的想法, 他们还将花费大量的时间来规划项目路线图 before 它们开始发育.
如果您想要一个稳定且易于扩展的产品,这是必需的. 好的实现不只是用功能和崩溃的少来衡量的. 添加新功能或修改现有功能所需的时间是启动并运行后的关键.
Android开发人员应该具有Android编程中流行的当前标准和趋势的经验. 从组织的角度来看, 他们应该使用模型-视图-视图模型(MVVM)或模型-视图-演示者(MVP), 依赖注入库,如Dagger2, Retrofit 2, 或OkHttp用于API和网络通信, 用于延迟图像加载的毕加索, ButterKnife用于视图绑定, RxJava2用于多线程.
通过这种组合, Android编程逻辑被分成更独立的模块,职责更明确,更易于测试. That way, 您的项目将更具可扩展性, 解决方案将更加稳定,因为它们更容易测试, 对于未来的员工来说,即使是代码也会变得更容易阅读和理解.
如果你的潜在新员工知道如何使用上述技术,你就知道他是一个真正的Android专家, 或者能很好地解释为什么他们不这样做. 如果你需要快速组建一个开发团队来启动你的项目, 而不是自己花时间去训练他们, 现在是时候雇佣熟悉这些内容的自由Android开发者了.
8)加快Android应用开发
期限很紧的情况并不少见. 有时候,团队遇到的情况是无法在截止日期前完成,而客户出于各种原因不想推迟发布日期. 对于团队中的任何开发人员或领导他们的人来说,这绝对是不愉快的. 压力很大,这导致了糟糕的氛围和不满意的员工.
在这些情况下, 因为你必须寻找一个解决方案, 雇佣一个可以直接“跳进火里”的临时工在很多方面都是有益的.
首先,经验丰富的Android开发者的职业生涯中总是伴随着最后期限. 他们面临着在开发后期和各种形式的代码中面临压力的情况. 经常, 他们将为重复的场景准备好模板或库, 例如后台同步服务, DAO实现, 和UI组件.
例如, 他们可以在几分钟内使用Espresso测试记录仪轻松创建复杂的测试. 他们知道如何编写复杂的JUnit测试来断言业务逻辑,甚至模拟web服务器和测试API通信. After that, 他们将能够实现或修复各种问题,甚至在手动测试之前防止问题, 同时避免回归.
Due to this, 他们可以成为你提升团队动力的秘密武器:他们可以分担团队的部分压力,帮助他们放松一点. 这会让每个人的工作效率更高,因为他们感到更满意,压力更小,因此头脑更清醒.
Second, 寻找Android自由职业者的过程可以相当快,同时避免了以后的额外义务. 一旦项目完成并在截止日期前完成, 他们的合同到期了,没有一方不满意.
That said, 他们可以在之后帮助你维护应用, fixing bugs, 添加新功能, 或者是下一个截止日期——但是是自由职业者, 剩下的就是灵活性了.
9)收拾残局
当开发人员缺乏经验时, 或者只是处于压力之下, 一个产品最终可能陷入绝境, 低质量的状态. 这可能以各种形式出现, 比如行动迟缓、反应迟钝, 拥有糟糕的用户界面或体验, 或者难以规模化. 这可能会对你的业务增长产生各种负面影响, 尤其是当你的产品只包含移动应用程序时.
更具体地说, 应用程序被系统授予有限的资源, 如果管理不当, 应用程序的行为将出乎意料, slow, 或者反应迟钝的方式. 这些都可能导致客户流失和负面评价, 这会让更多潜在的未来用户失去兴趣.
如果你的产品很难规模化, 在竞争中保持竞争越来越难了. 您计划的每个新功能都需要更多的时间来开发,您将不得不在额外的团队成员身上花费资源来跟上进度.
例如,最常见的流程之一涉及内存管理和位图加载. 因为图像消耗大量内存,这在Android中是一个相当昂贵的操作. 位图应妥善处理,并在未使用时尽快回收. 否则,将发生内存泄漏,并抛出内存不足异常. 它们很难调试,因为它们没有提供关于它们在哪里以及如何发生的太多细节.
虽然上述几点需要开发人员注意, 公司通常无法将它们置于产品开发之上.
However, 如果Android编程代码没有持续维护或改进, 也许有一天,任何非表面的改变都会带来更多的问题. 随着代码复杂度的增长, 添加功能和修改将更加困难, 虽然bug很难识别, reproduce, and fix. 开发人员将无法跟踪指数级增长的使用场景,并且将忽略他们的更改将如何影响应用程序的其余部分.
在这种情况下, 在现有开发团队进一步改进产品的同时,外部Android开发人员可以作为改进现有代码库的一种手段. 它们的目的可能是:
使用这种方法, 一个产品将在质量和稳定性方面取得进步,而不会减慢其可见的开发进度.
你的企业准备好从Android的灵活性中获利了吗?
无论您是在寻找高度专业的开发人员来降低成本还是获得额外的帮助, 有时候很明显,你应该聘请Android顾问. 现在,当您下次遇到本文讨论的情况时,您就有了更好的选择.
尽管传统的经营方式在员工和这个术语的含义方面是严格的, 时代在变. 有时候,这只是迈出进入偏远经济的第一步的问题——但一旦你这样做了, 你不会回头看.
Android是b谷歌,Inc .的商标. Android机器人是从谷歌创建和共享的作品中复制或修改的,并根据中描述的术语使用 知识共享 3.0属性License.