做了多年BI项目PM的工作,我知道,海量的数据,只有经过一系列的ETL过程,进行数据处理(标准化、数据修正、数据质量管控等等)才能在这基础上进行数据汇总、统计、数据挖掘、关联分析等,之后方能获得信息和价值、并准确地支撑决策,获得商业上的成功。从前端业务系统,到操作型数据存储(ODS)、再到面向主题和分析型的EDW,开发过很多分析类的报表,在不同的数据库平台之(oracle、DB2、Postgresql、greenplum、Mongdb)上愉快地玩耍和编码过。经历过的系统大大小小,开发过的报表也不计其数。不乏单调乏味的表格式数据,就这样浑浑噩噩时间久了,你总会对这样的产品失去兴趣。需要一切归零、选择另一个起点,继续前行。一次偶然面试的机会,被现在的上司问道,如何让一个系统变得独特而有趣?之后,我开始花很多的时间来思考,如何让一个BI的产品独特而有趣。如下是凌乱的点点滴滴……
唯有数据可视化,方可化繁为简
值的信息?如何从海量的数据中挖掘和发现商业知识?又如何从繁杂的企业运营数据中,高效而精确地诊断企业各个部门的运营情况,并及时作出准确的商业决策。这或许是目前商业智能最关注的话题之一。
很多企业在自己的ODS系统、EDW系统、ECRM等众多系统上部署了数据分析类的应用之后,面对海量数据,难以清晰的呈现,很难从中发现问题,企业管理者也很难从中找到决策之道。然而获得信息的最佳方式之一是将数据可视化,这样才能快速抓住要点和关键信息。
通过视觉化呈现数据,会产生令人惊奇的模式和观察结果,而这种惊喜,并不是通过简单统计就能显而易见的模式和结论。正如信息设计师 David McCandless 在 TED 上说道:“通过视觉化,我们把信息变成了一道可用眼睛来探索的风景线,一种信息地图。当你在迷失在信息中时,信息地图非常实用。”数据可视化的应用,给企业带来了很多有意义、有价值的事情。很多企业成功地构建了企业的驾驶舱系统或者决策支持系统。将企业的核心数据转化成运营的仪表盘,驾驶舱。企业的管理者可以像开车或者驾驶飞机一样,能够通过这一系列的仪表状态、预警等信息调整战略、目标和方向。最终使其能够快速地实现收入的增长,获得商业的成功。
数据可视化,是数据分析的一个重要方式,因为从数据变成信息,信息变成知识,知识最终还要传达到企业的决策层,不同部门的知识聚集而结合在一起就形成了群体的智慧。如何用数据说话?数据可视化无疑是很重要的用数据说话的方式。
让数据生动、有趣起来
做数据分析的人,对Tableau、Qlikview、SAS、SPASS、COGNOS等这些商业的昂贵的可视化工具或许会不会陌生。它们能够按照用户习惯,比较形象地选择数据可视化的展现方式。比如:折线图、柱状图、饼图等,也逐渐可以支持仪表盘。但在开源的世界里,有很多可视化的技术,在数据的呈现,可视化交互方面已经远远超越了昂贵的商业工具。比如百度的Echars,Google Chart Tools、jQuery Visualize、D3.js等等。
随着开源数据可视化技术的发展我们越来越看到,数据的可视化,让数据变成了动态的。这种动态的数据选择合适的展现方式以后,会因为它的生动和形象,更让用户影响深刻。而更加锦上添花的一点是,用户开始觉得这是一款有趣的产品,会有更好的用户粘度。
比如Echars的饼图(南丁格尔玫瑰)、散点图,地图、线图、雷达图、漏斗图和仪表盘等等在数据可视化的生动和有趣方面都已经有了很好的用户体验。用户可以以非常明确直观的方式感知到数据的变化,看到它的痕迹,看到数据是动态的。这个动态不需要我们去寻找时间序列。变化的散点图、折线追踪图等也很容易地被感知。
在今天的数据可视化层面,特别是在在线层面,需要解决一个在线的动态可视化,而这个可视化可以选择,就是这些底层的JS代码可以由更聪明的程序员去修改它。然后我们达到了想要表达数据的生动性和有趣性的相对而言比较理想的效果。关键,这一切都还是免费的。
比如修改Echars的折线图,修改代码后,让折线图上出现“移动的小火苗”,瞬间折线图适合表现随时间变化的数据趋势的特性被表现的淋漓精致;迁徙图,以地图的方式动态展现数据的变化和异动;而动态雷达图在少量的样本数据下,以多维度对比方式表现出良好的可视化效果。但我之前提过,总要考虑各种角色,所以要用在适当的地方。就像其他所有形式的设计一样,它也需要一种平衡。
良好的规划和设计,能够让用户产生共鸣。尤其在重要信息上。力求使你的数据与众不同,但是要避免过度设计和无谓的分心。为数据选择正确的图形,更别忘了有层次地构建页面。
很多仪表板和数据可视化的报表项目,视觉上设计得都很漂亮,但通常都使人眼花缭乱、过目即忘。它们要么是各种图表组件以缺乏层级的瀑布流形式排列,要么视觉上过度设计,并不适合这项数据、这项指标的呈现。那么这样的数据可视化,很难让User或者决策者在看到它的时候,能够迅速地抓住资讯和信息的重点、能够迅速发现价值或者捕获到问题。
别样的用户,别样的数据
任何时候设计一套复杂的系统,都不可避免要为很多用户和角色进行设计。总裁、总经理、经理、主任、主管、运营分析师是几个常见角色,每个角色都有自己的工作流程和对数据的需求。定义好角色,产生不同视角,这本身就是一种艺术。关于角色,重要的一点是预先确定好,围绕它们来组织信息结构与线框图。一个系统或者一款产品,均会为不同的用户群而服务,他们各自都需要不同的数据管理。创建了关键角色后,我们每次评审会将它们放在旁边。在解释线框图、流程图,还是就视觉设计进行讨论的时候,都很难让每个人跟上你的观点。通过角色来组织规划和设计,会防止你和用户在这些讨论中跑题。
严谨的框架和思路才不会让用户迷路
在众多项目的规划和设计经验中,我觉得首先是制作页面模型框架。核心点很简单:首先为用户呈现他们需要的,再将页面余下的信息根据用户的业务流程或信息层级,进行结构化处理。在你设计好模型框架后(通常也是用户能够沿着你的引导思路走下去的深度信息层级和页面的跳转和返回),不要着急将页面上的元素很快填充、充实起来。如果可以,你需要邀请最精通需求和业务逻辑的那个人和你一起走一遍你的页面模型框架。他或许没法给你提供专业的意见和建议。但他可以告诉你,你的思路是不是符合业务逻辑,在那些地方容易让用户迷惑。
为页面信息建立模型,首先给用户呈现关键信息,然后才是支撑内容。先给创建某种具备结构和层次的框架。问问自己:在这个框架之上,通过哪些信息要讲述怎样的故事?最关键的一点,避免创造出令人一知半解的图形。如果一开始就使人分心,那么用户不仅难以分辨每个元素是什么,也难以集中精力于整个流程。这是进行用户体验设计时需要牢记的一项准则。
下面是制作页面模型的两个常用方式。
自上而下概览数据层级信息,即先从横向思维考虑信息层级结构的切换。通常,一个企业的组织信息都具备一个金字塔式的形式,不同的层级衍生出来不同层次的User,然后从纵向的N个可能性分支深入探查(树状状结构的每一条分支)。当你在页面上布局、排布好一切以后,这不等于就结束,有一种“摈弃式思考”方法会给你带来很多意想不到的益处。很多根本不需要的元素、控件或者那些影响用户体验的设计,都需要在你“摈弃式思考”的过程当中做删除或者变通。你需要不停地问自己“拿掉这个元素那又如何?”。看看每个图表、组件、表格,仔细考虑用户从中能获取到什么。通常你会得出这样的结论,“那些你花费了很多时间设计的元素,这些都不重要”,这就意味着要减少或是重新思考。
这在我身上发生过好多次,不论过去还是现在,我创作了复杂漂亮的仪表板,包含了一系列时尚的图表、饼形图,柱状图。但用户总是不会太满意。 “HI,Jacky 我只想知道这样有效吗?……我要的东西在哪?…. HI,Jacky可以有多人对比的图形吗?,时间维度的查询可以更自由和灵活一些吗?“诸如此类种种。当然,你首先要感谢那些可以让你的设计变的更好的用户。
如果你了解用户,你总会懂得,任何精明的PM总有一点会遗漏掉,但你的用户不会,用户想要得到的东西,虽然他讲不出来那是什么、或者说讲不明白到底想要什么。但在你的设计引导用户的时候,他就会象一个有很多需求的孩子一样,需要别关注和照顾。当你原型和产品摆在他面前的时候,用户才会有很多的想法和建议。所以,永远都要保持和用户紧密的沟通。千万不要自以为是地认为,你认为合理、靠谱、完美的用户体验,在用户那里也同样奏效。
用恰当的可视化图形,阐释数据之美
未经处理的原始数据表格一点也没有吸引力。但它是最佳的起点。它帮你开始思考数据中有哪些变量可用,这些变量数据如何关联。原始数据的单调特性,会帮你思考系统中各种变量间的关联。除了从空白数据行列入手,等待灵感忽然进入你意识。你还可以更积极一些。
折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。在你处理数据和优化原型的时候,随着你对可视化的图表的属性的理解的不断深入。总会发现有些图表比其他更能表达你的数据。在系统规划和产品设计中很容易陷入这样的境地,选择一种好看的图表,然后指望它能发挥作用。
我喜欢直观明了的图形,能够很形象、生动地展现数据应当呈现的最佳方式。这取决于你所处理的数据类型。选择合适图表的方法之一,是评估你手中的数据。有两种主要数据:离散数据,数值可清晰计数,而柱状图最适合表现离散数据;连续数据,任何范围值,曲线图最适合表现连续数据。简单说,曲线图最适合表现连续数据,柱状图最适合表现离散数据。而3D图表中,透视角度的改变在视觉上非常有冲击力,也让用户更好理解数据间的关联。
而作为PM,你得反复问自己“我应该选择非常规方式来定制化设计?还是使用久经考验的图表来展现信息?”图形的“有效性”胜过它的视觉特征。虽然,我也相信定制化的图形通常也能提升数据的易用性,同时独具一格引人入胜。对我来说,有“一种尺寸通行”的图表,还有“适用于最佳尺寸”的图表。表格、曲线图和柱状图就很好,可以容纳各种类型的数据。我希望我的设计看起来首先是实用的,就是解决了基础的功能需求,然后在感觉上是独特而有趣的。
驾驭数据,一份可靠的运营分析报告
不论在金融行业还是在教育行业,一份运营分析报告,或者叫的形象一点,称作运营体检报告。企业运营的好不好,有没有问题?有问题是在那些指标上出了状况?再好一点,给出一系列改进的建议和建议,甚至方案。当管理者发现能够有一个系统能够很直观地告诉他这些的时候,商业智能的价值才能充分体现出来。
金融行业有很多银行构建了企业级的决策支持系统,但实际呈现的数据更像一个数据分析的报表平台,没有仪表盘、没有运营分析报告、在上面你也看不出来关系到企业核心商业价值的KPI是什么,决策还是一堆的数据报表,表现趋势的折线图、饼图、柱状图等。
我以为这不能算是真正的决策支持系统,或者可以这样讲:如果决策支持系统当中,只是历史时间维度上的折线图、饼图、柱状图种种,那么这个DSS系统是极度失败的规划设计和实施。
CIO之家 www.ciozj.com 公众号:imciow