Agile Data Science - Introduction
敏捷数据科学是一种将数据科学与敏捷方法用于Web应用程序开发的方法。 它侧重于适用于组织变革的数据科学过程的输出。 数据科学包括构建描述研究过程的应用程序,包括分析,交互式可视化以及现在应用的机器学习。
敏捷数据科学的主要目标是 -
记录并指导解释性数据分析,以发现并遵循引人注目的产品的关键路径。
敏捷数据科学按以下原则组织 -
连续迭代
此过程涉及使用创建表,图表,报告和预测进行连续迭代。 构建预测模型将需要多次迭代特征工程,并提取和生成洞察力。
中间产出
这是生成的输出的轨道列表。 甚至有人说失败的实验也有输出。 跟踪每次迭代的输出将有助于在下一次迭代中创建更好的输出。
原型实验
原型实验涉及根据实验分配任务和生成输出。 在给定的任务中,我们必须迭代以获得洞察力,并且这些迭代可以最好地解释为实验。
整合数据
软件开发生命周期包括不同的阶段,数据必不可少 -
-
customers
-
developers, and
-
这生意
数据的整合为更好的前景和产出铺平了道路。
金字塔数据值
上述金字塔值描述了“敏捷数据科学”开发所需的层。 它首先根据需求和管道单个记录收集记录。 在清理和汇总数据之后创建图表。 聚合数据可用于数据可视化。 使用适当的结构,元数据和数据标签生成报告。 顶部的第二层金字塔包括预测分析。 预测层是创建更多价值的地方,但有助于创建专注于特征工程的良好预测。
最顶层涉及有效驱动数据值的操作。 这种实现的最好例证是“人工智能”。
Agile Data Science - Methodology Concepts
在本章中,我们将重点关注称为“敏捷”的软件开发生命周期的概念。 敏捷软件开发方法有助于通过增量会话在1到4周的短期迭代中构建软件,因此开发与不断变化的业务需求保持一致。
有12条原则详细描述了敏捷方法 -
客户满意度
最重要的是通过早期和持续交付有价值的软件来关注需求的客户。
欢迎新的变化
在软件开发期间可以接受更改。 敏捷流程旨在满足客户的竞争优势。
交付 (Delivery)
在一到四周的时间内向客户提供工作软件。
协作(Collaboration)
业务分析师,质量分析师和开发人员必须在项目的整个生命周期中协同工作。
动机(Motivation)
项目应该设计有一个有动力的个人部落。 它提供了一个支持个人团队成员的环境。
个人对话
面对面交谈是向开发团队和开发团队内部发送信息的最有效和最有效的方法。
衡量进展
衡量进度是帮助确定项目和软件开发进度的关键。
保持稳定的步伐
敏捷过程的重点是可持续发展。 业务,开发人员和用户应该能够与项目保持一致的步伐。
监控(Monitoring)
必须始终关注技术卓越和良好的设计,以增强敏捷功能。
简约(Simplicity)
敏捷过程使一切变得简单,并使用简单的术语来衡量未完成的工作。
Self-organized terms
敏捷团队应该是自我组织的,并且应该与最佳架构保持独立; 要求和设计来自自组织团队。
审查工作
定期审查工作非常重要,这样团队才能反思工作进展情况。 及时审查该模块将提高绩效。
Daily Stand-up
每日站立是指团队成员之间的每日状态会议。 它提供与软件开发相关的更新。 它还涉及解决项目开发的障碍。
无论办公地点如何,无论如何建立敏捷团队,每日站立都是一种强制性做法。
每日站立的功能列表如下 -
-
每日站立会议的持续时间应大约为15分钟。 它不应延长更长的时间。
-
站立应包括有关状态更新的讨论。
-
本次会议的与会者通常希望尽快结束会议。
用户故事
故事通常是一个要求,用简单的语言用少量句子表达,应该在迭代中完成。 用户故事应包括以下特征 -
-
所有相关代码都应该有相关的签到。
-
指定迭代的单元测试用例。
-
应定义所有验收测试用例。
-
在定义故事时接受产品所有者的接受。
什么是Scrum?
Scrum可以被视为敏捷方法的一个子集。 它是一个轻量级的过程,包括以下功能 -
-
它是一个流程框架,包括一系列需要按照一致顺序遵循的实践。 Scrum的最佳例证是迭代或冲刺。
-
它是一个“轻量级”过程,意味着过程保持尽可能小,以在指定的给定持续时间内最大化生产输出。
与传统敏捷方法的其他方法相比,Scrum流程以其区分过程而闻名。 它分为以下三类 -
-
Roles
-
Artifacts
-
Time Boxes
角色定义了整个过程中包含的团队成员及其角色。 Scrum团队由以下三个角色组成 -
-
Scrum Master
-
Product Owner
-
Team
Scrum工件提供了每个成员应该注意的关键信息。 该信息包括产品,计划的活动和完成的活动的详细信息。 Scrum框架中定义的人工制品如下 -
-
Product backlog
-
Sprint backlog
-
Burn down chart
-
Increment
时间框是为每次迭代计划的用户故事。 这些用户故事有助于描述构成Scrum文物一部分的产品功能。 产品待办事项是用户故事列表。 这些用户故事按优先顺序排列并转发给用户会议,以决定应该采用哪一个。
为什么选择Scrum Master?
Scrum Master与团队的每个成员进行交互。 现在让我们看看Scrum Master与其他团队和资源的互动。
产品拥有者
Scrum Master以下列方式与产品所有者进行交互 -
-
寻找技术来实现用户故事的有效产品积压并对其进行管理。
-
帮助团队了解清晰简洁的产品积压项目的需求。
-
具体环境的产品规划。
-
确保产品所有者知道如何提高产品价值。
-
在需要时促进Scrum事件。
Scrum团队
Scrum Master以多种方式与团队互动 -
-
在Scrum采用中指导组织。
-
规划特定组织的Scrum实现。
-
帮助员工和利益相关者了解产品开发的要求和阶段。
-
与其他团队的Scrum Masters合作,提高指定团队的Scrum应用程序的有效性。
组织(Organization)
Scrum Master以多种方式与组织进行交互。 下面提到了一些 -
-
教练和Scrum团队与自组织交互,并包含交叉功能的特征。
-
在Scrum尚未完全采用或未被接受的领域中指导组织和团队。
Scrum的好处
Scrum帮助客户,团队成员和利益相关者进行协作。 它包括时间框架方法和产品所有者的持续反馈,确保产品处于工作状态。 Scrum为项目的不同角色提供了好处。
客户 (Customer)
短期或迭代的持续时间较短,用户故事按优先级设计,并在sprint计划中进行处理。 它确保满足每个sprint交付,客户要求。 如果没有,则记录要求并计划并采用冲刺。
组织(Organization)
在Scrum和Scrum大师的帮助下,组织可以专注于开发用户故事所需的工作,从而减少工作量超负荷并避免返工(如果有的话)。 这也有助于提高开发团队的效率和客户满意度。 这种方法也有助于增加市场潜力。
产品经理
产品经理的主要职责是确保产品质量得到保持。 在Scrum Masters的帮助下,可以轻松地促进工作,收集快速响应并吸收更改(如果有的话)。 产品经理还会根据每个sprint中的客户要求验证所设计的产品是否一致。
开发团队
凭借时间框架性质并在较短的时间内保持冲刺,开发团队变得热情地看到工作得到了反映和正确交付。 工作产品在每次迭代后递增每个级别,或者我们可以将它们称为“sprint”。 为每个sprint设计的用户故事成为客户优先级,为迭代增加了更多价值。
结论 (Conclusion)
Scrum是一个高效的框架,您可以在其中开发团队协作软件。 它完全基于敏捷原则设计。 ScrumMaster以各种可能的方式帮助和合作Scrum团队。 他的行为就像一位私人教练,可以帮助您坚持设计计划并按照计划执行所有活动。 ScrumMaster的权威永远不应该超越这个过程。 他/她应该有能力管理每一种情况。
Agile Data Science - Data Science Process
在本章中,我们将了解理解该过程所需的数据科学过程和术语。
“数据科学是数据接口,算法开发和技术的结合,以解决分析复杂问题”。
数据科学是一个跨学科的领域,包括科学方法,过程和系统,其中的类别包括机器学习,数学和统计知识与传统研究。 它还包括黑客技能和实质性专业知识的组合。 数据科学从数学,统计学,信息科学和计算机科学,数据挖掘和预测分析中汲取原则。
构成数据科学团队一部分的不同角色如下所述 -
客户(Customers)
客户是使用该产品的人。 他们的兴趣决定了项目的成功,他们的反馈在数据科学中非常有价值。
业务发展
这个数据科学团队可以通过第一手资料或通过创建登录页面和促销活动来签署早期客户。 业务开发团队提供产品的价值。
产品经理
产品经理重视创造最佳产品,这在市场上很有价值。
互动设计师
他们专注于围绕数据模型的设计交互,以便用户找到合适的价值。
数据科学家
数据科学家以新的方式探索和转换数据,以创建和发布新功能。 这些科学家还结合了来自不同来源的数据,以创造新的价值。 他们在与研究人员,工程师和Web开发人员一起创建可视化方面发挥着重要作用
研究人员(Researchers)
正如名称所示,研究人员参与研究活动。 他们解决了数据科学家无法做到的复杂问题。 这些问题涉及机器学习和统计模块的强烈关注和时间。
适应变化
数据科学的所有团队成员都需要适应新的变化并根据需求开展工作。 应采用敏捷方法和数据科学进行若干改动,如下所述 -
-
选择通才而不是专家。
-
小团队优先于大型团队。
-
使用高级工具和平台。
-
持续和迭代地共享中间工作。
Note
在敏捷数据科学团队中,一个由通才组成的小团队使用可扩展的高级工具,并通过迭代将数据细化为越来越高的价值状态。
请考虑以下与数据科学团队成员工作相关的示例 -
-
设计师提供CSS。
-
Web开发人员构建整个应用程序,了解用户体验和界面设计。
-
数据科学家应该致力于研究和构建Web服务,包括Web应用程序。
-
研究人员在代码库中工作,该代码库显示解释中间结果的结果。
-
产品经理尝试识别和理解所有相关领域的缺陷。