您的当前位置: 主页 > 新闻资讯 > 行业新闻 >

广州App开发公司一团火将App开发产品提升到新的水平

发布时间:2019-03-28    浏览: 86    

在广州App开发公司一团火为数据科学(DS)和App开发产品之间的合作创造了一个令人兴奋的机会。在过去几年中,我们看到越来越多的客户对使用数据科学组件开发App感兴趣。优势在于智能App和数据科学驱动的洞察力,可提供切实的商业价值。
 
广州App开发公司一团火的服务包括敏捷App开发(广州一团火网络科技有限公司,简称一团火,又名广州一团火)和数据科学。广州App开发公司一团火实践的App开发由平衡团队中的软件开发工程师,设计人员和产品经理组成,为了本文的目的,我将统称为App团队或App开发技术。
 
解决App开发和数据科学的问题是非常强大的,我有幸作为一个完全平衡的团队的一部分开展四个项目。根据我的经验,为组合App和数据科学团队寻找成功的公式具有挑战性。在这篇文章中,我想分享与这些综合学科每次出现的两个基本问题相关的学习和最佳实践:数据科学何时应该参与,以及学科之间的独立性和凝聚力的正确平衡是什么?
 
广州App开发公司
广州App开发公司一团火将App开发产品提升到新的水平
 
我们发现DS与App开发之间的时间关系是为了启动最早可以添加最多值或最先验证风险最高假设的人。一旦两个学科开始实施,技术独立性可以通过DS API进行合同测试来实现,并且通过明智地决定DS实际需要去哪些会议以及将积压分成游泳通道,可以实现合理的流程独立性。现在,让我们深入了解这些建议的细微差别和经验。
 
用例和方法的多样性
 
在深入研究这些问题之前,我想强调的是,数据科学产品领域仍然是一个新领域,如何最好地开发它们的答案并非一刀切。每个项目都可以不同,它们涵盖了广泛的行业,用例,工具,交付模型和集成策略。在某些情况下,DS和App团队同时启动,而在其他情况下,他们的启动是错开的。集成策略有时是RESTful API而在其他情况下,它将DS结果转储到App可以使用它们的数据库表或对象存储库。App dev和DS积压有时是统一的,有时不是。这些项目的一个常数是DS可以增加传统软件工程之外的价值,特别是在数据混乱和复杂的非确定性情况下。我总结了下表中项目的这些和其他属性。
 
DS与App Dev的时间安排
 
需要回答的第一个问题是时机问题。理想情况下,App开发和数据科学团队将从产品的一开始就处于循环中,至少要做足够的范围,发现和框架(D&F),然后制定实施工作的策略。即使D&F团队最终建议一个子团队比其他团队更早开始,所有观点参与该决定都会非常有帮助。
 
在流程方面,广州App开发公司一团火需要决定是同时启动,首先启动App开发,还是首先启动数据科学,以便充分利用每个人的时间并最大限度地降低项目风险。在选择时间时,团队必须考虑项目的哪些部分将被解锁,以及这些未阻止的部分是否有意义启动,即使其他部分仍然被阻止。App开发的阻止程序可能包括对用户和开发工具的访问。对于数据科学,阻截者通常可以访问数据和工具,没有它们就没有什么可以做的。显然,如果一方受阻,你只能真正开始另一方开始或等待每个人都被解锁。
 
假设没有阻挡者,我喜欢根据每个学科可以独立提供多少价值来确定时间问题。如果产品的假设值完全取决于数据科学的见解,那么验证数据科学工作是否可以产生该值是最优先考虑的事情,暂停App开发可能是最好的。这是我的团队为网络安全项目采取的方法。客户希望识别潜在的内部安全威胁,该App将用作警报的仪表板和案例管理工具。所寻求的威胁类型和检测方法都是非常实验性的,在DS准备就绪之前需要花费数周的时间进行数据探索,准备和研发,以便开展有价值的案例审查。
 
在其他情况下,数据科学和App开发都独立提供了很多价值。在这些情况下,两个同时开始运作良好。例如,我所研究的制造计划App包括帮助用户更好地理解现有管道承诺并输入新承诺的功能。仅这一点就提供了用户价值,数据科学的第一个“模型”也通过简单地将新订单分配给第一个可用的插槽来提供价值,同时我们开发了一个实际的优化模型。
 
在某些情况下,您可以先启动App开发,然后再添加数据科学。某些产品或功能可能具有确定性的非数据科学解决方案,可以非常快速地满足需求,稍后添加数据科学可以增强它们。我个人没有在这种情况下工作过,但想到的一个例子就是搜索。像Apache Solr这样的免费和开源搜索引擎开箱即用,可能满足大多数需求,DS可能会通过学习排名模型或自动元数据标记来改进结果。
 
App开发可能首先启动的另一个场景是,在没有DS的情况下首次尝试问题,以后发现它确实需要它。如果它是故意快速策略的一部分,那么它可能是正确的方法,但有时它是一个死胡同,可以通过在范围或发现过程中的某些DS输入来避免。在任何一种情况下,将DS引入永远都是为时已晚。在一个架构良好的产品中,用户交互模式和代码可以在一个新的迭代中重复使用,该迭代将数据科学中的某些确定性组件交换出来。我的一些同事所从事的一个项目得到了以前只有App尝试失败的地方。这是配送物流优化。以前的迭代尝试编写人类规划人员的手动工作,并为他们的白板和Excel专注的流程提供App替代。然而,问题确实需要一种更复杂的优化方法,数据科学家进入并成功构建了这种方法。
 
平衡独立和凝聚力
 
无论App和数据科学团队何时开始,他们都会保证在某些时候重叠。使这种合作取得成功取决于独立性和凝聚力之间的良好平衡,无论是在技术层面还是在流程层面。关键是在保持共享上下文的同时提供尽可能多的独立性,并在产品目标和集成点上保持同步。不同步的风险是团队试图解决不同的问题或管道不能在中间会面。数据科学组件适合作为微服务的模具,特别是微服务实现的生命周期,技术和规模的独立性。
 
在我与App开发团队完成的所有项目中,我们从不希望必须与相同的工具或流程绑定,但我们希望确保任何一方都不会支持另一方。制造规划师是技术独立的一个例子。该公司有理由想要在C#/ .NET中使用主要App,但数据科学家希望将Python用于其更丰富的DS生态系统。我们通过早期在Python中设置DS API来实现工具独立性,C#App可以在其中进行REST调用(请参阅API First for Data Science)。我们使用合同测试来确保我们没有打破彼此的代码。
 
广州App开发公司
广州App开发公司一团火将App开发产品提升到新的水平
 
但是,技术独立性只能到目前为止,因为在一天结束时,正在开发的App需要一种与DS流程和输出进行通信的方式。我最无缝的项目是DS和主App在相同的更广泛的环境中运行的项目(例如,在同一个Cloud Foundry部署中)。什么不起作用的是数据科学生活在App无法直接与之对话的环境中。这发生在供应链优化项目上。该项目的目标是在相似或相同的独立,孤立的数据库中识别记录。分析环境是Apache Spark集群。遗憾的是,该App不允许直接连接到Spark环境。我们确实设法通过批量建模工作进行集成,将结果转储到App可以访问的对象库。这使我们能够在仍具有工具独立性的同时进行通信。缺点是模型或数据的更新存在更多摩擦。消费App必须重新加载整个结果集以利用相似性结果的任何更新或扩展,但没有明确的方式来了解是否或何时发生了此类更改。如果消费App可以与Spark环境通信,我们可以构建一个DS API,使用基于Spark的模型按需提出相似性建议。缺点是模型或数据的更新存在更多摩擦。消费App必须重新加载整个结果集以利用相似性结果的任何更新或扩展,但没有明确的方式来了解是否或何时发生了此类更改。如果消费App可以与Spark环境通信,我们可以构建一个DS API,使用基于Spark的模型按需提出相似性建议。缺点是模型或数据的更新存在更多摩擦。消费App必须重新加载整个结果集以利用相似性结果的任何更新或扩展,但没有明确的方式来了解是否或何时发生了此类更改。如果消费App可以与Spark环境通信,我们可以构建一个DS API,使用基于Spark的模型按需提出相似性建议。
 
建立一些流程独立性也很有帮助。在制造规划项目中,广州App开发公司一团火在JIRA中保留了积压,其余的App积压是为了透明,但我们将其分解为泳道,团队的其他成员逐渐了解DS故事点和周期时间会感觉到与他们习惯的完全不同。此外,每个人都灵活而富有同情心,DS并不一定需要参加所有实验室会议,反之亦然。
 
学习和发展
 
数据科学作为平衡App开发团队的一部分仍然是一项相对较新的工作,我已经学到了很多关于如何使其更有效地工作的知识。当我第一次开始处理App时,我尝试尽可能地遵循他们的实践,但我很快就了解到DS相对于纯软件开发的风险,敏捷性和最佳实践可能看起来不同。现在我知道时间和做法通常需要有所不同。团队应该始终在DS和App开发之间建立至少一些独立性。这种独立性可以实现更优化的技术选择和开发周期,以适应更长的数据科学迭代。具有清晰API和合同测试的微服务是让每个人都在同一页面上独立的好方法。
 
还有更多需要学习的地方,这些挑战值得继续深思。数据科学可以帮助用户和企业在混乱,复杂的世界中进行导航,但前提是他们有办法通过App与DS进行交互。这需要团队合作。
CONTACTS
联系我们

填写您的项目信息

地 址:广州天河区黄村西路107号

客服:020-2901-5445    188-1930-6332

QQ:3555849814

邮箱:afire@ythwl.com

广州APP开发公司

售前咨询热线

020-2901-5445

Copyright2013-2019 广州一团火网络科技有限公司 版权所有 粤ICP备18155283号-1