在实际的工作中,数据科学家们不仅要学会如何实用工具,还要懂得如何与同事合作。在实际的数据建模和数据处理的过程中数据科学家和数据工程师应该如何处理好关系顺利地完成项目呢?
从表面上看,数据科学与工程科学就像是天作之合——数据科学家为商业问题创造全新的解决方案,而他们的同行工程师负责构建网络程序环境和集成来将这些“创造”变成现实。这种合作看起来是如此天衣无缝。
但事实上不幸的是,数据科学家和数据工程师之间现存的是一种普遍被认为脆弱的关系。对于大多数团队来说,两者之间的关系“正介于不存在和无法作用之间”。那么,为什么会产生这种不和谐的关系,如何能避免这种不和谐?
1.了解你的数据
好的模型依赖于好的数据。要建立真正具有生产力的模型,数据科学家需要知道他们基于创造和存储产品的数据库是否可靠,以及数据库更新的频率。这些信息在项目开始之前就应该被收集并且分享给工程团队,以避免项目进程之中可能产生的阻碍。
在一个理想的世界里,科学家和工程师都应该提前做好应对即将发生的变化的准备(例如,多种变量类型之间的变化),使他们能够据此共同创建,测试和部署相应的新版本。即使不能够保证避免每一个程序中的事故,共享资源和尽早发现缺陷也可以使工程师们降低风险和预见解决可能出现问题的部分。
2.熟悉合作伙伴使用的工具
数据科学家运用的主要编程语言是R或Python,这种语言便于数据的清洁,探索和建模。而工程师,却需要使用多种不同的工具集来构建可扩展的网络和移动应用程序(例如,NET、Ruby on Rails、Node.js 或 JVM)。虽然期望一个人完全懂得使用这两套工具是不切合实际的,但是跨过技术“藩篱”的限制对对方使用的语言和流程有一个基本的了解将大大有助于合作的开展。
3.了解技术的局限
一旦你清楚了模型开发和部署所需要使用的语言,就应该花时间研究一下使用这种语言做什么是可能的,什么是完全不能够实现的。然后就应该设定定期的跨职能讨论会的时间表,科学家和工程师双方要经常沟通例如:你考虑在哪些方面做一些突破?双方在哪些地方可以做出让步?哪些又是技术完全实现不了的?有没有其他选择?要实施需要付出多少努力?这些努力符合商业价值的考量吗?
4.互相尊重
对于数据科学家来说,你要做的就是写出便于维护和使用的高质量的代码,积极听取工程师关于重构模型和采取更好替代方法的建议,询问他们怎样才是一个现实的可实行的时间表,你还能提供哪些帮助等。
对于工程师来说,与数据科学家合作,需要明确必须的职责,并且共同商讨达成一份书面的处理问题的优先次序文件,遵循一个不断更新的和现实的路线图,并根据项目的进程不断检验、细化和落实科学的数据模型。
如果您还存在疑惑或是想要了解更多大数据相关知识,可关注西线学院!