数据分析开发:在软件开发过程中,最终的商业价值并非来自于软件产品,而是源于附属的数据产品,包括数据集、数据库、分析、报告及数据驱动的决策。
在数据分析开发中,软件的创建和使用便意味着一种结束,但软件本身并不是最终的产品。相反,软件被设计用于实现数据提取、筛选、转化、分析、呈现及其他围绕数据等过程的自动化。通过产生的结果,后续的数据产品为利益相关者带去他们所需要的信息和知识。因此,软件产品本身可能并没有什么商业价值,但它是价值产生的关键——生成宝贵的数据产品。作为数据分析开发的语言,BaseSAS用于开发SAS软件产品(SAS从业人员创建的程序),这些软件产品会在SAS应用程序(SAS编辑器)中编辑和运行,用于各种各样从SAS公司购买或由其提供的 SAS界面中
(如SASDisplayManager、SASEnterpriseGuide、SASUniversityEdition)。
数据分析软件通常会在一个称为终端用户开发环境中产生,在该环境中,软件开 发人员同时也是软件的终端用户。在终端用户开发环境中,软件永远不会被转让或卖 给第三方,而是由开发人员或开发团队来使用和维护。例如,一名金融欺诈分析专员 可能需要生成一份周报表,详细地罗列出可疑的信用卡交易来验证和调整欺诈检测算 法。他需要开发出一套可重复的 SAS 程序,以生成能够满足客户需要的结果。但是,该分析专员是一个终端用户开发人员,因为他负责编写软件,同时也负责参照数据输 出生成一份周报表。需要注意的是,该例子代表的是终端用户开发环境中的数据分析 开发。
传统的、以用户为中心的软件应用程序开发与数据分析开发形成强烈的对比,因 为其终端商业价值是通过软件自身的生产和递送产生的。例如,当 Microsoft 公司开发人员创建出如 MicrosoftWord或 Excel 等产品时,这些软件产品一旦运行就会带来商业价值,因为产品是由第三方用户使用和购买的。SDLC 在购买之后将继续延续, 但只是存在于 Microsoft 的维护活动中,如开发和发布软件修补程序。下面我们会将数据分析开发环境与终端用户开发环境和传统开发环境进行对比和分析。
区分数据分析开发
我们为什么要区分数据分析开发环境呢?因为它们不仅影响软件的质量和性能, 还能帮助我们更好地理解每种开发环境的优缺点。
讲得更清楚的一点是,数据分析开发环境、终端用户开发环境以及传统开发环境之间并不是相互孤立的,图1-1所示为3种开发环境之间的相互关系,数据分析开发的大部分内容都离不开终端用户开发环境。
图1-1 软件开发环境
基于许多原因,数据分析 - 终端用户开发环境融合模式是数据分析开发中最常见的模式,主要是数据分析软件的创建并不是为了获得软件,而是需要解决一些问题,生成某些结果或制定一些决策。例如,金融专员需要撰写一份欺诈类别及欺诈检测精度的报告,然后会创建SAS软件实现报告撰写的自动化和标准化。创建数据分析软件的 SAS从业人员通常需要对手头处理、分析或使用的数据有非常深入的了解,这样才能确保自己创建出有效的数据产品,做出正确的决定。因此,SAS从业人员首先应该是一位金融专员,但是主要的责任是软件开发、测试、运行及维护。
BaseSAS 软件在技术层面的缺陷也促使数据分析开发环境依赖于终端用户开发环境。由于 BaseSAS 软件需要在执行时进行编辑,因此,该软件的代码在开发测试和生产阶段都是没有加密过的文件,这样做的弊端是无法实现标准化和软件加密所需的确定性,而加密则是软件开发过程中所必需的。出于这一原因,针对第三方用户数据库研发和销售 SAS 软件的公司根本就没有销售市场,因为软件的深层代码能够被他人自由检测、复制和转发。而且,没有加密,BaseSAS代码的可获得性使SAS从业人员能轻而易举地探索和干预代码,降低了软件的安全性和整合性。
数据分析- 传统开发环境融合模式在SAS软件中不像上述模式那么常见,但描述了数据分析软件,让人们知道该软件确实能够带来最终的商业价值,而并非是一个最终的产品。该模式在开发环境中也是比较常见的,在该模式下,除了分析团队或软件操作团队之外,还有独立的研发团队,例如,SAS开发人员的一个团队可能会编写提取 - 转化 - 加载(ETL)软件或分析软件,之后该软件会交给一个独立的分析专业团队或其他专业团队,这些人员会使用该软件及其相关的数据产品。开发团队可能会负责该软件的操作及维护(O&M),包括软件使用培训、维护及计算软件的使用期限,但除此之外,开发团队不会使用自己开发的软件,也不会与软件进行互动。
数据分析 - 传统开发环境确实存在,它们创建的软件通常只供团队内部使用。开发团队与其支持的团队之间有时会有服务等级协议(SLA,ServiceLevelAgreement),但开发出的 SAS软件通常不会进行销售。由于 SAS 代码是没有加密过的文件,可随意进行检测,因此,SAS 开发团队几乎不会将软件销售出去。所以,SAS专业人员通 常会在这个小环境中运作,为企业提供有针对性的软件开发支持。
终端用户 - 传统开发环境融合模式中的软件是由 SAS从业人员开发的,也是供这些人员使用的,但这些软件并不是以数据为中心的。此类SAS软件不会处理或分析各种各样的数据,它是一个由用户输入信息驱动的、独立的应用程序。例如,如果某个 SAS从业人员花费了几周的时间在 BaseSAS编辑和创建ParkerBrother梦幻棋盘游戏 Monopoly,那么软件本身就是最终的产品。当然,一个分析专员是否能够保住自己的工作,取决于他的管理层是否能够认识到他所带来的价值。
由于数据分析开发可能会在终端用户开发环境中进行,因此,本书只讨论传统开发环境和其他开发环境的优缺点,而不详细讲述传统开发环境。我们将在下一部分讲述终端用户开发环境的优缺点。