开发与设计中那些共同的隐喻

看起来程序员和设计师的工作好像差得很远,但其实大家做的事情是有很多相通之处的。细细体味其中的不同,可以填补之前一些unknown unknown的空白,说不定还可以给你现在的工作带来一些新的灵感。

设计师/产品经理:“他会在万众瞩目中出现, 身披金甲圣衣, 脚踏七彩祥云,咔咔咔把我的设计全部实现!”

引子

偶然跟设计师同事聊天,谈到他们眼中的程序员应该是什么样的。

大叔:“好的程序员不应该三心二意,上来就学很多不同的语言,应该精通一门语言!”

小九:“那设计师会在Photoshop,Pixelmater,Sketch,balsamiq等等这些工具中,只精通一样,而不去学习别的吗?”

大叔:“这不一样,编程语言怎么能跟这些工具相提并论,比如Sketch比较适合快速实现一些Hi-Fi的高保真原型,Photoshop善于处理位图,balsamiq用于画一些Low-Fi的线框图,这些工具都是在不同情境和需求下使用的。”

小九:“我倒觉得这跟编程语言一样一样的。当需要写后台服务端的时候,我们用Java;要快速写工具脚本的时候用Ruby;要写页面交互的时候用Javascript;要写底层高性能代码的时候,用C或者C++。每个语言都有自己的特点,也有自己的使用场景。设计师应该不会说只要精通Photoshop或Sketch,其它工具就不用学了吧。怎么能为了一滴水,而放弃整片海洋!每一种设计工具都有自己独特的魅力,在学习中都会体会到不一样的乐趣 ”

语言/工具 vs 特性

熟悉PS的都知道,Photoshop中有滤镜、蒙版、图层等一系列特性,我们也往往是先学习工具,顺便就学会了这些特性。然而,其实这些特性比工具本身具有更高的复用性。现在几乎任何一款绘图软件,都会带有图层功能。

程序员也一样,往往是从语言开始,来认识语言的特性的。比如我们学习了C++,顺便知道了Template;从Java中知道了Exception的处理方法,从Javascript中知道了闭包,从Scala中知道了Monad等等。这些特性、思想在程序设计中的应用往往要比语言本身更重要。

除了语言,其实还有一些别的,也是程序员和设计师可以类比的。

思维方式

在程序世界里,有3种比较经典的编程范式:面向过程,面向对象和函数式。

  • 面向过程的编程范式,简单的讲就是把一个大的任务拆分成N多个步骤,只要一步步从上到下的实现即可。
  • 面向对象则是把所有程序中的概念都想成是一个个具体的对象,每个对象有自己的属性、行为,每个对象可以完成自己应该完成的一些事情。通过对象间的彼此互动,来完成复杂的功能。
  • 函数式则是更侧重于用数学函数的方式来思考,把现实中的复杂问题转换成各种不同类型的函数,通过数学的思维方式来解决问题。

这是程序员的三种不同的思维方式,而映射到设计师,可以理解成平面设计师习惯的平面思维和工业设计师习惯的立体思维。

模式

程序世界中的设计模式,是前人大量经验的总结,是在实战中形成的一些在面对具有一定共性的问题时所采用的最佳实践。

在产品设计中,也同样有一些模式可以遵守,比如现在的提醒功能,往往会使用内含数字的小红点模式。

再比如说消息通知功能,往往是采用消息中心的模式 。

再比如说一些常用的组件,如输入的文本框,在交互上共有诸如auto suggestion之类的模式。

有了这些模式之后,不管是在做程序设计还是界面设计,都可以有效的降低设计的复杂度。

Clean Code -|- Human Interface Guidelines

大部分情况下,我们不是一个人工作,而是一个团队工作。

作为一个程序员,我可能会阅读、修改团队内任何一个人的代码,这时候一套统一的规范就很重要,而《Clean Code》就是这么一套规范,让我们写出的代码可读性大大提高,便于团队彼此共享编辑代码。

而作为一个设计师,也有这么一套规范,比如iOS中的《Human Interface Guidelines》,或者Android的Material Design,这些规范用于指导我们在做界面设计的时候该如何选择合适的控件,应该有何种样式,如何在界面中合理的布局,并在团队中形成共识,好让大家可以在同一个工程中协调工作。

最后

综合上面说的:看起来程序员和设计师的工作好像差得很远,但其实大家做的事情是有很多相通之处的。细细体味其中的不同,可以填补之前一些unknown unknown的空白,说不定还可以给你现在的工作带来一些新的灵感。


更多精彩洞见,请关注微信公众号:思特沃克

Share

敏捷团队的办公室设计

ThoughtWorks武汉办公室的装修花了三个月时间,整个办公室的装修设计体现了很多敏捷的特点,环境布置的目标就是为开展敏捷实践提供最大的方便。

ThoughtWorks旨在打造世界领先的办公环境,通过营造环境最大限度的激发人的潜能,人们可以在此获得自然光,新鲜空气,这有益于成功营造高效的工作环境。办公室内部应该实现色彩、光影、纹理、对比度,以及自然元素(如植物)的均衡,最大限度让人感到舒适——既能满足人们协同合作、专注工作的需求,同时也能让紧张的大脑得到放松。

ThoughtWorks武汉办公室的装修花了三个月时间,整个办公室的装修设计体现了很多敏捷的特点,环境布置的目标就是为开展敏捷实践提供最大的方便。

ThoughtWorks旨在打造世界领先的办公环境,通过营造环境最大限度的激发人的潜能,人们可以在此获得自然光,新鲜空气,这有益于成功营造高效的工作环境。办公室内部应该实现色彩、光影、纹理、对比度,以及自然元素(如植物)的均衡,最大限度让人感到舒适——既能满足人们协同合作、专注工作的需求,同时也能让紧张的大脑得到放松。

武汉办公室的前台包括两部分,前台办公区和前台背后的接待区。

进门右手边的地方放了两组沙发,用来招待临时的客人,比如来面试的候选人,访客。

我们会有意识地培养社区,并专门开辟这样的物理空间,以方便人们进行更多面对面的互动。从前台走进去之后就可以到达社区活动区。从这里也可以看到办公室整体的装修风格是简洁明快的。办公室的社区活动区离前台很近。这样的好处是访客来的时候直接就能到这个区域。同时这个区域也是与主办公区隔离开的,安全性特别好。在社区活动室的站立式办公区,大家可以选择站着办公,也可以选择坐高椅子。

进门是一整面的黑板墙这次的主题是回到童年还有类似拼车的生活信息。除了八卦杂志,“我想听/我想分享的海报也放在了这里供大家交流。在社区活动室也专门放置了乒乓球台和foosball,方便大家在放松的时候增进彼此之间的感情。

在进门的地方和社区活动室都会有超大显示器,展示公司最新会发生的重大事件,比如社区活动的日历、公告等。整个办公室也有几台悬挂的大电视,用于公司宣传片的播放和一些重要通知的推送。

ThoughtWorks,只要有人登高一呼就可以启动一个虚拟团队。在ThoughtWorks其实有很多虚拟团队这个大屏幕上展示的就是这个虚拟团队利用业余时间自发做的系统。团队的名字很有意思17High。大家觉得有必要做一个内部的广告系统广告什么呢比如谁有意愿分享session的时候就会在这个系统中登记登记成功后会在办公室的几个大屏幕上滚动播放这样大家就能随时知道在哪、什么时候、有什么样的session

在公司办公区的墙面上分别装饰了技术雷达和商业洞见。

ThoughtWorks在每年都会出品两期技术雷达,这是一份关于技术趋势的报告,它比起一些我们能在市面上见到的其他各种技术行情和预测报告,更加具体、更具可操作性,因为它不仅涉及到新技术大趋势,比如人工智能和大数据,更有细致到类库和工具的推介和评论。ThoughtWorks最近发布了自己的技术战略2.0(3年前我们发布了技术战略1.0),经过三年的发展,通过我们对业界,学术界和行业的发展,我们认为现在是时候展望更长远的未来。

ThoughtWorks在践行「科技即商业」的过程中,也一直在思考、研究、学习和总结,期望把最新的思考和最有价值的案例汇集起来分享给业界。由此萌发了一个想法:搭建一个平台,能分享我们的经验,并为这一领域的实践者、作者和读者提供一个交流的纽带。这是《ThoughtWorks商业洞见》的由来。

整个办公区域是完全开放式的,方便进行可视化管理,我们设计足够长、足够大、没有挡板和隔断的办公桌,有利于每天的结对编程和code review。

敏捷团队需要很多的沟通,办公区提供随处可见的白板,很多墙壁也是玻璃的,大家有足够的空间进行每日站立会议和进行各种各样的讨论。每个项目组都会配备专用的大屏幕电视或专用显示器,来可视化持续发布和自动化的流程。

我们也会设置由电视、Mac Mini和Skype组成的无间断视频(Always On Video),不仅方便与异地的同事通过视频的形式召开每日站立式会议,而且即使大家相隔千里,也能随时就问题展开讨论。

我们并不希望大家整整八个小时都被束缚在办公桌前。因此,适当地采用分区策略(例如茶水间和放松区这样具有文化敏感性的区域),将有助于人们在需要时补充能量和恢复精力。

类似这样的公共区域,都是开放性的,比如休息区、茶水间、打印机等,没有任何物理边界,一方面是方便各个区域的人的到达,另外是形成汇聚点,成为人们的交流场所,这样大家路过的时候就能够随时打个招呼聊上几句。

会议室相对团队空间来说,私密性会强一些,因此我们特地预留了一些小的quite room。敏捷团队的会议室的白板的面积应该尽量的大,画不下要擦掉会影响思路,我们将整面墙都做成白板。

整个会议室的命名采用:区域+星系。我们之所以要给会议室起不同的名字,不是为了fancy,而是为了让我们所有人在一起工作的过程中有值得记忆的事情!当多年以后,我们依然记得在某个会议室的点滴瞬间:比如为了某段代码的争论,为了某个上线的开心,为了生日的庆祝,或者为了一些事情的伤感。

会议室的门和墙做成了透明的,同时为了兼顾隐私,在玻璃中间贴一层磨砂纸,同时保障私密和透明。很多项目也利用这块空间做成物理看板,每天的站会就在这里进行。

整个工作区域设有2个people room,以舒适沙发取代会议桌椅,大家可以在里面更加随意的聊天或者休息。另外有一个专用的母婴室,方便怀孕期和哺乳期的女性员工,武汉办公室的女性员工比例超过40%。值得一提的是ThoughtWorks凭借在全球范围利用软件技术推动社会和经济公正的多年实践,和包括Google、Facebook在内的其他24家美国组织荣登2016年最佳女性科技人员雇主领导力指数榜单,并力压群雄最终摘得“2016最佳女性科技人员雇主”桂冠。

武汉办公室欢迎大家!


更多精彩洞见,请关注微信公众号:思特沃克

Share

一张漂亮的可视化图表背后

多年前读过一篇非常震撼的文章,叫《Lisp之根》(英文版:The roots of Lisp),大意是Lisp仅仅通过一种数据结构(列表)和有限的几个函数,就构建出了一门极为简洁,且极具扩展性的编程语言。当时就深深的被这种设计哲学所震撼:一方面它足够简单,每个单独的函数都足够简单,另一方面它有非常复杂,像宏,高阶函数,递归等机制可以构建出任意复杂的程序,而复杂的机制又是由简单的组件组成的。

数据的可视化也是一样,组成一幅内容清晰、表达力强、美观的可视化信息图的也仅仅是一些基本的元素,这些元素的不同组合却可以产生出令人着迷的力量。

可视化之根

多年前读过一篇非常震撼的文章,叫《Lisp之根》(英文版:The roots of Lisp),大意是Lisp仅仅通过一种数据结构(列表)和有限的几个函数,就构建出了一门极为简洁,且极具扩展性的编程语言。当时就深深的被这种设计哲学所震撼:一方面它足够简单,每个单独的函数都足够简单,另一方面它有非常复杂,像宏,高阶函数,递归等机制可以构建出任意复杂的程序,而复杂的机制又是由简单的组件组成的。

数据的可视化也是一样,组成一幅内容清晰、表达力强、美观的可视化信息图的也仅仅是一些基本的元素,这些元素的不同组合却可以产生出令人着迷的力量。

要列出“可视化元素之根”很容易:位置、长度、角度、形状、纹理、面积(体积)、色相、饱和度等几种有限的元素,邱南森在他的《数据之美》中提供了一张视觉元素的图,其中包含了大部分常用的元素。

令人振奋的是,这些元素可以自由组合,而且组合往往会产生1+1>2的效果。

心理学与认知系统

数据可视化其实是基于人类的视觉认知系统的,因此对人类视觉系统的工作方式有一些了解可以帮助我们设计出更为高效(更快的传递我们想要表达的信息给读者)的可视化作品。

心理物理学

在生活中,我们会遇到这样的场景:一件原价10元的商品,如果降价为5元,则消费者很容易购买;而一件原价100元的商品,降价为95元,则难以刺激消费者产生购买的冲动。这两个打折的绝对数字都是5元,但是效果是不一样的。

韦伯-费希纳定理描述的正是这种非理性的场景。这个定理的一个比较装逼的描述是:

感觉量与物理量的对数值成正比,也就是说,感觉量的增加落后于物理量的增加,物理量成几何级数增长,而心理量成算术级数增长,这个经验公式被称为费希纳定律或韦伯-费希纳定律。

– 摘自百度百科

这个现象由人类的大脑构造而固有,因此在设计可视化作品时也应该充分考虑,比如:

  • 避免使用面积图作为对比
  • 在做对比类图形时,当差异不明显时需要考虑采用非线性的视觉元素
  • 选用多种颜色作为视觉编码时,差异应该足够大

比如:

如上图中,当面积增大之后,肉眼越来越难从形状的大小中解码出实际的数据差异,上边的三组矩形(每行的两个为一组),背后对应的数据如下,可以看到每组中的两个矩形的绝对差都是5:

var data = [
  {width: 5, height: 5},
  {width: 10, height: 10},

  {width: 50, height: 50},
  {width: 55, height: 55},

  {width: 100, height: 100},
  {width: 105, height: 105}
];

格式塔学派

格式塔学派是心理学中的一个重要流派,她强调整体认识,而不是结构主义的组成说。格式塔认为,人类在看到画面时,会优先将其简化为一个整体,然后再细化到每个部分;而不是先识别出各个部分,再拼接为整体。

比如那条著名的斑点狗:

我们的眼睛-大脑可以很容易的看出阴影中的斑点狗,而不是先识别出狗的四条腿或者尾巴(事实上在这张图中,人眼无法识别出各个独立的部分)。

格式塔理论有几个很重要的原理:

  • 接近性原理
  • 相似性原理
  • 封闭性原理
  • 连续性原理
  • 主体/背景原理

当然,格式塔学派后续还有一些发展,总结出了更多的原理。工程上,这些原理还在大量使用,指导设计师设计各式各样的用户界面。鉴于网上已经有众多的格式塔理论及其应用的文章,这里就不在赘述。有兴趣的同学可以参考这几篇文章:

视觉设计的基本原则

《写给大家看的设计书》一书中,作者用通俗易懂的方式给出了几条设计的基本原则,这些原则完全可以直接用在数据可视化中的设计中:

  • 亲密性(将有关联的信息物理上放在一起,而关联不大的则通过留白等手段分开)
  • 对齐(将元素通过水平,垂直方向对齐,方便视觉识别)
  • 重复(重复使用某一模式,比如标题1的字体颜色,标题2的字体颜色等,保持重复且一致)
  • 对比(通过强烈的对比将不同的信息区分开)

如果稍加留意,就会发现现实世界中在大量的使用这几个原则。1,2,3三个标题的形式就是重复性的体现;每个标题的内容自成一体是因为组成它的元素(数字,两行文字)的距离比较近,根据亲密性原则,人眼会自动将其归为一类;超大的数字字体和较小的文字形成了对比;大标题的颜色和其他内容形成了对比等等。

这些原则其实跟上面提到的格式塔学派,以及韦伯-费希纳定理事实上是相关的,在理解了这些人类视觉识别的机制之后,使用这些原则就非常自然和得心应手了。

一些例子

  • 淡化图表的网格(和数据图形产生对比)
  • 通过深色来强调标尺(强烈的线条和其余部分产生对比)
  • 离群点的高亮(通过不同颜色产生对比)
  • 使用颜色(通过不同的颜色,利用亲密性原则方便读者对数据分组)
  • 元素颜色和legend(使用重复性原则)
  • 同一个页面上有多个图表,采取同样的图例,色彩选择(强调重复性原则)

实例

上篇文章提到我通过一个手机App收集到了女儿成长的一些记录,包括哺乳信息,换尿布记录,以及睡眠信息。这个例子中,我会一步步的介绍如何将这些信息可视化出来,并解释其中使用的视觉原理。

可视化的第一步是要明确你想要从数据中获取什么信息,我想要获取的信息是孩子的睡眠总量以及睡眠时间分布情况。

进阶版的条形图

确定了可视化的目的之后,第二步是选取合适的视觉编码。上面提到过,对于人眼来说,最精确的视觉编码方式是长度。我们可以将睡眠时间转化为长度来展现,最简单的方式是按天聚合,然后化成柱状图。比如:

2016/11/21,768
2016/11/22,760
2016/11/23,700

不过这种图无法看出时间的分布。我们可以考虑通过条形图的变体来满足前面提到的两个核心诉求。先来在纸上画一个简单的草图。纵轴是24小时,横轴是日期。和普通的条形图不一样的是,每个条形的总长度是固定的,而且条形代表的不是简单非数据类型,而是24小时。在草稿中,每个画斜线的方块表示孩子在睡眠状态,而虚线部分表示她醒着。

原始数据

name,date,length,note
心心,2016/11/21 19:23,119,
心心,2016/11/21 22:04,211,
心心,2016/11/22 02:03,19,
心心,2016/11/22 02:23,118,
心心,2016/11/22 05:58,242,
心心,2016/11/22 10:57,128,
心心,2016/11/22 14:35,127,
心心,2016/11/22 17:15,127,
心心,2016/11/22 20:02,177,
心心,2016/11/23 01:27,197,

这里有个问题,我们的纵轴是24小时,如果她晚上23点开始睡觉,睡了3个小时,那么这个条形就回超出24格的轴。我写了一个函数来做数据转换:

require 'csv'
require 'active_support/all'
require 'json'

csv = CSV.read('./visualization/data/sleeping_data_refined.csv', :headers => :first_row)

data = []
csv.each do |row|
    date = DateTime.parse(row['date'], "%Y/%m/%d %H:%M")

    mins_until_end_of_day = date.seconds_until_end_of_day / 60
    diff = mins_until_end_of_day - row['length'].to_i

    if (diff >= 0) then
        data << {
            :name => row['name'],
            :date => row['date'],
            :length => row['length'],
            :note => row['note']
        }
    else
        data << {
            :name => row['name'],
            :date => date.strftime("%Y/%m/%d %H:%M"),
            :length => mins_until_end_of_day,
            :note => row['note']
        }

        data << {
            :name => row['name'],
            :date => (date.beginning_of_day + 1.day).strftime("%Y/%m/%d %H:%M"),
            :length => diff.abs,
            :note => row['note']
        }
    end
end

有了干净的数据之后,我们可以编写一些前端的代码来绘制条形图了。画图的时候有几个要注意的点:

  • 每天内的时间段对应的矩形需要有相同的X坐标
  • 不同的睡眠长度要有颜色区分(睡眠时间越长,颜色越深)
var dateRange = _.uniq(data, function(d) {
  var date = d.date;
  return [date.getYear(), date.getMonth(), date.getDate()].join("/");
});

xScale.domain(dateRange.map(function(d) { return d.date; }));

function getFirstInDomain(date) {
  var domain = xScale.domain();

  var index = _.findIndex(domain, function(d) {
      return date.getYear() === d.getYear()
          && date.getMonth() === d.getMonth()
          && date.getDate() === d.getDate();
  });

  return domain[index];
}

函数getFirstInDomain可以根据一个日期值返回一个X坐标,这样2016/11/21 19:232016/11/21 22:04都会返回一个整数值(借助d3提供的标尺函数)。

另外,我们根据每次睡觉的分钟数将睡眠质量划分为5个等级:

var level = d3.scale.threshold()
  .domain([60, 120, 180, 240, 300])
  .range(["low", "fine", "medium", "good", "great", "prefect"]);

然后在绘制过程中,根据实际数据值来确定不同的CSS Class

svg.selectAll(".bar")
  .data(data)
  .enter()
  .append("rect")
  .attr("class", function(d) {
      return level(d.length)+" bar";
  })
//...

实现之后,看起来是这个样子的。事实上这个图标可以比较清楚的看出大部分睡眠集中在0-6点,而中午的10-13点以及黄昏18-20点基本上只有一些零星的睡眠。

星空图

上面的图有一个缺点,是当日期很多的时候(上图差不多有100天的数据),X轴会比较难画,如果缩减成按周,或者按月,又会增加很多额外的复杂度。

另外一个尝试是变形:既然这个统计是和时间相关的,那么圆形的钟表形象是一个很好的隐喻,每天24小时自然的可以映射为一个圆。而睡眠时间可以通过弧长来表示,睡眠时间越长,弧长越大:

角度转弧度

我们首先将整个圆(360度)按照分钟划分,则每分钟对应的角度数为:360/(24*60),再将角度转化为弧度:degree * π/180

var perAngle = (360 / (24 * 60)) * (Math.PI/180);

那么对于指定的时间,比如10:20,先计算出其分钟数:10*60+20,再乘以preAngle,就可以得出起始弧度;起始时间的分钟数加上睡眠时长,再乘以preAngle,就是结束弧度。

function startAngle(date) {
    var start = (date.getHours() * 60 + date.getMinutes()) * perAngle;
    return Math.floor(start*1000)/1000;
}

function endAngle(date, length) {
    var end = (date.getHours() * 60 + date.getMinutes() + length) * perAngle;
    return Math.floor(end*1000)/1000;
}

实现的结果是这样的:

初看起来,它像是星空图,但是图中的不同颜色含义没有那么直观,我们需要在图上补充一个图例。通过使用d3的线性标尺和定义svg的渐变来实现,定义好渐变和渐变的颜色取值范围之后,就可以来绘制图例了。

图上的每段弧都会有鼠标移动上去的tooltip,这样可以很好的和读者大脑中的钟表隐喻对照起来,使得图表更容易理解。

由于我将整个圆分成了24份,这点和普通的钟表事实上有差异,那么如果加上钟表的刻度,会不会更好一些呢?从结果来看,这样的标线反而有点画蛇添足,所以我在最后的版本中去掉了钟表的标线。

可以看到,我们通过圆形的钟表隐喻来体现每一天的睡眠分布,然后用颜色的深浅来表示每次睡眠的时长。由于钟表的形象已经深入人心,因此读者很容易发现0点在圆环群的正上方。中心的黄色实心圆帮助读者视线先聚焦在最内侧的圆上,然后逐渐向外,这和日期的分布方向正好一致。

最终的结果在这里:心心的睡眠记录,完整的代码在这里

更进一步

一个完整的可视化作品,不但要运用各种视觉编码来将数据转换为视觉元素,背景信息也同样重要。既然这个星空图是关于睡眠主题的,那么一个包含她在睡觉的图片集合则会加强这种视觉暗示,帮助读者快速理解。

制作背景图

我从相册中选取了很多女儿睡觉时拍的照片,现在需要有个工具将这些照片缩小成合适大小,然后拼接成一个大的图片。这其中有很多有趣的地方,比如图片有横屏、竖屏之分,有的还是正方形的,我需要让缩放的结果是正方形的,这样容易拼接一些。

好在有imagemagick这种神器,只需要一条命令就可以做到:

$ montage *.jpg -geometry +0+0 -resize 128x128^ \
-gravity center -crop 128x128+0+0 xinxin-sleeping.jpg

这条命令将当前目录下的所有的jpg文件缩放成128×128像素,并从中间开始裁剪-gravity center+0+0表示图片之间的缝隙,最后将结果写入到xinxin-sleeping.jpg中。

拼接好图片之后,就可以通过CSS或者图片编辑器为其添加模糊效果,并设置深灰色半透明遮罩。

body {
  background-image:url('/xinxin-sleeping.png');
  background-size:cover;
  background-position:center;
}

当然,背景信息只是补充作用,需要避免喧宾夺主。因此图片做了模糊处理,且加上了深灰色的半透明Mask(此处应用了格式塔理论中的主体/背景原理)。

小结

这篇文章讨论了可视化作品背后的一些视觉元素理论,以及人类的视觉识别机制。在这些机制的基础上,介绍了如何运用常用的设计原则来进行视觉编码。最后,通过一个实例来介绍如何运用这些元素 – 以及更重要的,这些元素的组合 – 来制作一个漂亮的、有意义的可视化图表。

参考资料

这里有一些关于认知系统和设计原则的书籍,如果你感兴趣的话,可以用来参考


更多精彩洞见,请关注微信公众号:思特沃克

Share

知乎问我,在ThoughtWorks做设计是怎样一种体验

前段时间有热心观众在知乎提问,“在ThoughtWorks做设计是怎样一种体验?”,本以为这个问题会是ThoughtWorker的专场,没想到却乱入了许多让我司UX闻所未闻的“亲身经历”。为了不辜负、不误导提问者,我们从事实出发,对在职ThoughtWorker的回答进行了整理。

前段时间有热心观众在知乎提问,“在ThoughtWorks做设计是怎样一种体验?”,本以为这个问题会是ThoughtWorker的专场,没想到却乱入了许多让我司UX闻所未闻的“亲身经历”。为了不辜负、不误导提问者,我们从事实出发,对在职ThoughtWorker的回答进行了整理。

ThoughtWorks与ThoughtWorks设计的关系是什么?

回答者:熊子川

首先,在谈论其它之前,请允许我打岔来聊聊ThoughtWorks和ThoughtWorks设计的关系。

ThoughtWorks是一家以技术为核心的科技咨询公司,我们为行业内最好的客户服务,我个人认为ThoughtWorks要超越外包(Outsourcing)服务的传统定义,传统外包通常指的是非核心业务的外包,而我们所做的绝大部分事情已经成为客户的核心业务。这里的ThoughtWorks设计是ThoughtWorks业务下面的一个实验,这样的业务规划在绝大部分咨询公司中都有存在,在归于独立运营的业务单元(Business Unit)之前,大多数以实践的形式存在,其重点在于能力、服务、人才成长,而非销售和市场。

这个前提决定了ThoughtWorks设计和市面上绝大部分的设计机构或咨询公司(Design Agency/Design Consultancy)完全不是一个商业模式类型,更不要说互联网产品类或初创公司。

我们需要帮助客户实现最终的创新,“实现”是我们的第一优先级,而不一定是创意,因此我们必须走入真实的世界中,而不是在一个装修得极好的设计环境里进行设计,产出一些「以创新为名」却毫无意义的概念。我们需要我们的设计师充满对真实世界的好奇,而不是对办公室里的咖啡机或可升降桌更加冲动。

什么人适合来ThoughtWorks做设计?

回答者:朱晨

ThoughtWorks设计不适合哪些人?

毕业生:培养设计技法更适合去产品型公司,而咨询公司能带来的更多是视野和广度。另外,ThoughtWorks的设计师往往要在客户现场与客户一同工作,与人打交道的难度远远高于与Photoshop打交道的难度。当然,如果你在毕业前就做过大量实习,自然另当别论。

太恋家的人:为了能与客户更好地交流业务,往往是客户在哪里,设计师就要出差到哪里。

内心不够平和的人:平和的内心能够让你更好的面对客户现场的压力与ThoughtWorks内部的反馈文化。

ThoughtWorks设计适合哪些人?

希望与各个角色紧密合作的人:在我们的交付团队中,不同角色会按照敏捷的方式协同办公、密切配合。设计师能够与业务分析师一起探讨业务,也可以看到自己的设计稿如何被各种编程语言实现出来,帮助设计师更为全面的了解产品。

适合想要开拓视野的人:产品型公司让人深入的关注一个领域,同时也会让人变得局限。只有在多个行业间有所切换,才能从中概括出做设计的规律。

厌恶官僚型企业的人:尽管ThoughtWorks也会有职位的划分,但是任何人都可以表达不同的声音,中国区目前有接近1000人,依然保持着十分扁平的氛围。

具体体验如何?

回答者:高媛媛

记得有位同事说过这样一句话“如果说在其他公司是做任务,那在ThoughtWorks就是下副本,几个人组一个团队就去打怪了,涨的经验非常多”,觉得这段话实在太形象了。

在我入职后的一年里,经历了各种好玩有趣的项目,人无完人,没有哪个项目是你的经验完全可以hold住的,但这种让人兴奋的刺激就在于总会有新的挑战出现,每次都是那么的“危险”,能搞定这些“棘手”的事情,才越发觉得我们的使命感很重,价值也区别于其它普通设计师。由于没有所谓的层级和领导,进入项目了就只有团队和队友,与队友们并肩作战一段时间下来,了解了新的领域,分享彼此的经验,共享劳动成果,到了新的项目又开启了新的征程。

除此之外,最拉仇恨的就是,你的周末还在那个熟悉的商圈里兜兜转转,而ThoughtWorks的设计师已经跟着不同的项目到不同的城市去驻足停留,我们的手机相册里大都是马不停蹄的在各种时光里偷闲所留下的记忆碎片。

ThoughtWorks设计师都有1个共同点。这个共同点就是不满足于在一个产品流程中只做设计这个小小的螺丝钉。很多公司的设计师只接收需求而无法参与到需求沟通里,甚至遇到一些无理需求也没有什么话语权,只能改改改甚至用生命去加班。这不仅是人效上的内耗,时间长了也不利于设计师思维活跃度的提高。TW的设计师除了做设计本身,会再往前一步,注重产品业务逻辑的挖掘和梳理,参与到客户的需求沟通环节中,帮助统一上下文,这也是经验增长的快的根本原因。

最后引用熊子川的一句话,“我们在这个真实的世界里,如履薄冰的经营着我们的业务,好好学习。”


更多精彩洞见,请关注微信公众号:思特沃克

Share

重新思考Persona

我想,是时候重新审视甚至抛弃Persona这样的实践了。Persona作为以人为中心的设计方法论中不可或缺的部分,长久以来被几乎所有设计机构或团队使用,包括我们自己也将其奉为圭臬。

我想,是时候重新审视甚至抛弃Persona这样的实践了。Persona作为以人为中心的设计方法论中不可或缺的部分,长久以来被几乎所有设计机构或团队使用,包括我们自己也将其奉为圭臬。

在长期使用Persona的过程中,我们开始反思在当前设计环境下Persona作为设计方法论的必要性。Persona的定义和解释不再赘述,即尝试使用一个具象的用户画像来讨论用户的需求(内在与外在)、定义用户目标、规划体验地图、发现痛点和机会、最后进行设计。

Persona为何盛行

Persona开始盛行时,设计师所面临的环境是这样的:

  • 更多的企业内部系统、或应用型系统的设计,系统的存在往往是解决某个真实发生的业务问题;
  • 大多数人的思维依然停留在功能,决策者们、甚至设计师对于「以人为中心」缺乏理解和教育。
  • 功能与上下文是独立的,大多数设计讨论不需要讨论上下文;
  • 使用者是固定的,用户需求通常由工作岗位决定,设计者所接触的往往就是有直接任务、直接痛点的使用者;

Persona作为一种方法论恰好解决了这些问题:

  • 通过同理心地图(Empathy Map)的方式教育决策者和设计师将设计的中心从功能转向人;
  • 通过用户画像梳理出外在和内在的需要并转化成用户任务(User Tasks)进行优先级排序以精简设计范围;
  • 连接后续的用户体验地图设计(User Journey Map)将设计串连,而不是功能的堆砌。

时代的变迁

在功能时代过度到「以人为中心」的设计时代,Persona起到不可比拟的作用,但是,我们的时代已经不同,相较于上一个时代我们发现:

  • 大量设计需求来自于终端消费者的使用场景;
  • 越来越多的人认识到体验和人的重要性;
  • 在移动设计的背景下功能和上下文强相关;
  • 使用者的痛点并不明显,也不存在必要的用户任务、用户旅程多样;
  • 人们在拒绝标签化,在不同场景下人们可能表现出不同标签化行为。

总的来说,前一个时代,人的要素要高于相对特定的上下文——需求更多来自于人的不同;而在现在这一时代,上下文则高于人的要素——需求来自于上下文的不同。

最简单的例子,当所有人挤进地铁之后,在同样一个上下文中,用户的使用习惯趋同,而讨论每个人用户画像则变得意义不大。

此外还需要考虑当前移动体验的日趋成、价格日趋降低、和学习成本降低的背景下,一个60岁母亲在子女的教育下、使用最新款的智能手机,其使用习惯不见得比她的子女有多少不同。

被设计思维滥用

Persona的确是设计思维中一项重要的活动,同时也是最不需要参与者任何的洞察力与系统思考的能力,它几乎是零基础的。这往往就成为参与者们最喜欢做的一项实践,在头脑风暴中,无论背景和专业的人都参与到绘制过程中。

然而,设计思维所坚持的是心手合一,通过建造、思考、改进的过程设计真正直达人心的体验,而不是娱乐化的自我满足,以为满墙的纸片就是设计、以为热火朝天的场面就是协作。

自我陶醉的Persona

同样不能忽视Persona在设计过程中「夸大其词」的倾向,打开绝大多数设计咨询公司的设计文档,在Persona部分,我们往往看到的是一张姣好的面容,一份超过当地收入平均水平的普通工作,一份「爱旅行」、「爱美食」、「爱音乐」的组合,且不说这样的形象对于产品本身的用户使用习惯有何特别之处,是否真实存在这样一个形象,更让人存疑。

被美化的Persona变成了设计者的自我陶醉,或是「收买」决策者的幻药——用一个假设的、皆大欢喜的角色让决策者对其产品设计充满信心。

2011年的博文《什么是Persona》中提到,Persona的目的是为了「Emapthy」,既将自己带入到使用者的情景中。那么,一份脱离真实世界的用户画像,无非是建设了一个「自己和大家都愿意相信」的情景。

写在最后

此三点便是Persona作为一种实践应该被重新思考的原因:

  • 新的时代中,相同上下文中不同人的行为趋同——你是否和你的父母在自家客厅三个人各自刷手机?Persona的意义被消减;
  • Persona的实践难度低,人人都可以参与,Persona在设计思维的名义下被形式化,并不对后续阶段产生多少真正的设计价值;
  • Persona如果大部分时间都是拍脑袋的自我陶醉,用户画像只是你所希望目标用户形象,事实上他们要么不是真正用户、要么根本不存在。

Persona是过程而不是结果,真正目的是让设计师理解目标用户所处的情景,而真正理解情景,在以往,通过对目标用户的任务分析(往往可以从Persona中推导)就可以实现,而现在,理解情景必须走入到真正的世界中,而不是用理想化的用户画像让人「倾向于相信」,这样的Persona,还不如不做。


更多精彩洞见,请关注微信公众号:思特沃克

Share

我们在ThoughtWorks打造一款P3产品

我改变不了中国城市化的进程,无法让大城市的年轻人能回乡照顾自己的亲人;

我改变不了国家的户籍政策,无法让这些留守老人在大城市与自己的子女团聚。

我也改变不了现在的养老行业,无法让留守老人都住进养老院里,使之得到基本的照顾。

但是我可以做的是,利用自己的技术,帮助他们在生命紧急的关头,发出求救的信号。

从2016年3月份加入ThoughtWorks以来,已经过去了十个月的时间。从最初的激动,到逐渐的适应,这其中有一些感悟想要与大家分享。

初识P3

在新人入职培训中,公司的HR介绍了ThoughtWorks的三个支柱。也就是:

  1. 可持续化的业务
  2. 追求软件和技术卓越
  3. 提倡社会和经济公正

ThoughtWorks所做的每一件事、每一个决定都是从这个三个支柱出发的。

1-tw-3pillars

当然每个公司都有自己的使命和主张。例如Google想要“整合世界的信息”,让其更有效的被人类利用。Facebook则致力于“让人们可以更加有效的分享和联结”。每个公司无论大小,无论是否被总结成文字,都有自己的使命,只不过有大小之分罢了。

ThoughtWorks的前两个支柱都很好理解,我们追求可持续化的业务,我们追求软件技术的卓越。例如我们定期会发布技术雷达,为行业提供技术选型的指导。我们为客户提供敏捷软件工程方法,提高客户的软件工程质量。但是ThoughtWorks将“提倡社会和经济公正”作为自己的使命之一,而且写出来说出去,在之前我并不是十分的理解。追求社会和经济公正,在一个国家来说,不应该是政府应该做的事情吗?如果提到“人类”的高度上来说,那不应该是联合国应该做的事情吗?会不会是仅仅说说而已?

很多大公司也做慈善,比如说会捐献一些善款,组织一些公益活动。当然这些都是很好的回馈社会的方法。但ThoughtWorks的做法的确不同,公司更多的是利用自己的技术,来推动和影响社会和经济公正。ThoughtWorks与很多NGO组织合作,利用技术的手段来帮助他们提高IT能力,让他们能更高效的完成工作。ThoughtWorks组建的思沃学院,为在校的学生提供更多技术指导和培训,帮助学生成长。当看到这些以后,我慢慢的觉得,公司的P3好像并不是仅仅的说说而已,而是尽自己的能力,来改变一些事情。实话实说,这种冲击对我来说还是挺大的,但更大的冲击,是来自于我看到了“心声”这个APP。

缘起

“心声”是ThoughtWorks西安办公室的开发人员,利用自己的业余时间,做出的一款帮助聋哑人与正常人交流的APP,可以让正常人的语音转换为文字,帮助与聋哑人交流。这是我之前根本不会想到的事情,当我看到身边的同事,话费着自己的业余时间,利用自己的技术,在实实在在帮助聋哑人的时候,感受到P3文化已经融到了TWer的DNA里。在这家公司做这样的事情,是一种自然而然的事情。那么我又能做点什么呢?

直到有一天看到一篇报道文学,讲述是中国人口老龄化,农村和城镇的空心化,产生了大量的留守老人。有一些老人长期无人照顾,在突发疾病时容易酿成人间悲剧。具体的我就不详细描述了,因为是实在是太过悲惨。感慨万千一番,我想,自己能做些什么,哪怕能带来一丝丝的改变?

2-liushou

我改变不了中国城市化的进程,无法让大城市的年轻人能回乡照顾自己的亲人;

我改变不了国家的户籍政策,无法让这些留守老人在大城市与自己的子女团聚。

我也改变不了现在的养老行业,无法让留守老人都住进养老院里,使之得到基本的照顾。

但是我可以做的是,利用自己的技术,帮助他们在生命紧急的关头,发出求救的信号。

开始

产品梳理

基于这样的想法,我与身边的小伙伴一起商议得出了一个成型的方案,简单来说就是开发一个APP,搭建一个平台。在一个城市、一个社区,或者村庄里,招募志愿者。同时开发老人端的APP,和一些硬件设备,比如说手环、手表等等。当老人发生危险或者需求救助的时候,他可以按下这些设备上的救助按键。那么这个救助信息就会在平台上发布,附近的志愿者就能看到,从而在最短的时间内能提供救助,避免悲剧发生。当然这只是一个初始的想法。紧接着我们就做了一次User journey,梳理了对于我们最为关键的需求点。

3-ag-user-journey

理清楚需求后,按照优先级划分好任务,并建起了我们的项目看板,追踪项目的运行情况。

技术选型

产品需求梳理好了以后,下面的问题就是如何进行技术选型了。第一个问题就是由于我们都缺乏相关硬件知识,在考察了市面上现有的手环之后,并没有发现可疑提供SDK让我们直接利用的。又想到了Apple Watch,但是考虑到高昂的价格并不是一个最好的选择。于是乎,还是决定再做一个针对老人的手机APP。

4-aidsgo-elder-app

5-aidsgo-elder-app-2

同样因为我们的Mobile开发经验并不是特别的丰富,于是选择了React Native。并设计出了我们的系统构架图。

6-ag-tech-artch

由于迟迟没有找到一个合适硬件产品来触发求救信息,让我们始终觉得这还不是一个真正可用的产品。终于有天,公司广发英雄帖,召开技术大赛。并在邮件中介绍了一款AWS刚出的硬件设备——AWS IOT Button。这让我们都眼前一亮,这不就是我们要找的东西吗。简单来说IOT Button的按键可以trigger AWS上的一个lambda。有了这个,后边的事情就是我们的强项了,于是乎立马报名参赛,并购入了IOT Button。

产品实现

下面就进入到了具体开发的阶段,充分发挥每个人的特长。虽然大家都是开发,但是有人有UX的特长,有人有mobile的特长,大家各尽所能,发挥自己的特长,让这个产品越来越好,首先就是UI设计。

7-aidsgo-app

8-aidsgo-app-2

React-Native可以说是给传统的APP开发带来了新的方式,可以让传统的web开发人员快速实现产品。但同样也带了不少问题,例如API的变化,第三方组件的支持,好在我们的产品场景相对的简单,所以使用ReactNative还是一个比较好的选择。

同时救助者的实时位置同步也是一个比较大的挑战,我们可以在自己的后台的实现一套消息队列的服务,来做位置同步。但是最终我们使用了市面上成熟的实时数据同步服务,来快速实现产品。

目前产品已经进入了后期开发的阶段,小伙伴们在进行最后的优化,期待能在最后技术大赛的showcase里拿出一个能够成行的,可以真正帮助到老年人的产品出来。

为什么做这些

从初始想法的生成到如今产品的逐渐成型,我们花费了不少业务时间,有朋友问做这些事的意义是什么?其实我现在也说不好,在加入ThoughtWorks之前,遇见一些社会事件,可能最多就是捐点钱,在网上转发转发、评论评论。加入了ThoughtWorks后,看到了很多、也想了很多,自己也想真正做些东西出来让这个社会变得更加美好一些。

Share

实体零售突围

实体零售怎么办——在世界各个角落,面对年轻一代新的数字化使用习惯和多元的购物需求、新兴线上零售的爆炸式增长,实体零售受到消费者变革和线上数字零售爆发的双重冲击。从数字渠道建设(Digital Channel)到全渠道零售(Omnichannel Retail),零售商们在数字领域已经走过了几十年的时间,那么下一步是什么?越来越多的案例证明,实体零售的突围关键在于破除渠道的观念、建立聚合多渠道的商业平台、整合横跨客户、订单、产品、库存信息的数据平台、提供多元化、个人化、灵活、无缝连接的线上线下体验、丰富店内服务的触点(Touchpoints)、让消费者重新回到店内,实体零售在未来将大有可为。

互联网对于实体零售的冲击是前所未有的,一个新的购物范式由此产生,并大行其道,最终形成全新的商业生态,包含新的供应链、营销形式、产品设计、消费者服务、物流等配套体系。

线上和线下的购物体验由此建立,大批实体零售商由于技术能力和反应速度的限制,在线上购物体验中进展缓慢。

尔后,移动互联网迅猛发展,从某个角度来说,移动互联网的兴起为实体零售带来了新的机会,这种机会并不在于技术上,而在于因为移动互联网更加基于场景化(Contextual),更加贴近于现实,这种场景化的体验模糊了线上与线下的边界,这种边界的模糊,使得线上零售和线下零售不是「非此即彼」的关系。

通俗来说,客户既需要线上购物体验的快捷与准确、又需要实体购物体验的即时性和现实体验,而实体零售能同时提供二者的可能性要远高于线上零售,这便是实体零售商在移动互联网时代的核心竞争力。

retaibreakout

然而,同时做好两件事情,要比做好一件事情的难度大得多,虽然在理论上,传统线下零售有着线上零售不能比拟的优势,即实体店,但往往是捡了芝麻丢了西瓜。

在几年前,美国每件商品存在多个SKU,消费者完成一个跨渠道的购物体验(例如线上购物、就近店内提取)几乎是不可能的,因为SKU不同,购买的就不是同样一件东西,此外现有的运营模式根本不希望发生这种跨渠道体验的发生——当支付和交付不在一个渠道完成,销售KPI的计算到底从支付算还是交付商品算?

事实上,这种跨越线上下的购买行为十分流行,在2015年普华永道的一份零售业分析报告显示:在19068名受访者中,有68%的购买者有意识地在线下查看商品却在线上购买,同时70%的购买者在线上查看商品却在线下完成购买。

emagazine pics-01

这就是我们说的「线上线下互搏」现象,回到我们刚才说的移动互联网的成熟,例如移动支付、社交网络、流媒体等技术的发展,这使得以前从未有过的跨渠道使用习惯不断出现,解决「线上下互博」问题成为线下零售商真正获得其核心竞争力必须解决的问题。

那么,作为实体零售商,我们如何解决「线上下互博」的问题?核心战略包含以下四个方面:核心战略包含以下四个方面:弱化渠道,发现客户新的体验需求,建立面向客户、库存、产品、交易的核心服务能力,建设成长型的整合技术平台。

弱化渠道

解决互博问题的基础核心是让两件事变成一件事,传统模式下,线下购物与线上购物的每个环节:发现、考虑、体验、支付、获得商品都完全分开,零售商真正要做的不应该是结合两件事,而是把战略目标定义成「变成一件事」。

这不同于传统全渠道(Omnichannel)零售所主张的战略,真正适应新时代的客户体验战略应是弱化渠道、甚至是消弭渠道的,而不是在渠道间增加集成点。

「变成一件事」在实体零售的运营中有着相当大的难度,电商与实体店在许多零售企业都作为独立业务线运行,并有完全不同的数据、系统、流程、人员、考核体系在支持,如果考虑大型零售企业多个品牌的因素,更是难上加难。

但是,消费者从来不认为这是两件事,获得我喜欢的商品就是唯一的事情,如果我能够在你的移动网站上快速购买,我为何还需要等待结账?如果我愿意在线上购买,并通过自取的方式马上获得,我为何要等待你的物流时间?

Crate & Barrel在全美范围内开辟了「线上购买、到店取货(B.O.P.S – Buy Online, Pick up in Store)」的服务模式。理论上来说,B.O.P.S提供给顾客一种独特的价值定义。首先,顾客可以精准地获得产品信息,其次,顾客到店后可以马上获得产品。因此B.O.P.S用精准的信息消除了顾客「白跑一趟」的担忧,弥补了传统到店消费的弊端。B.O.P.S同时又避免了线上购物需要等待的问题,把获得产品的主动权还给了顾客。因此,B.O.P.S模式帮助顾客既享受了线上购物获得信息的便利和准确、又获得了实体购物立即获得产品的好处。


retail-breakout-2(Crate & Barrel被称作「高端宜家」,它推出的「线上购买、到店取货(B.O.P.S – Buy Online, Pick up in Store)」服务深受北美中高端消费者的喜爱。)

零售商们预测B.O.P.S出现后,线上销售额在美国会持续增长,事实上,线上销售额不升反降、而最后的结果是整体的店内销售实现了增长。对于家具这样需要亲身体验的产品、顾客通过B.O.P.S模式确定商品的价格和是否有货、前往店内体验并购买。B.O.P.S用互联网解决了在店内获得信息受限的问题,又用店内取货的方式解决了互联网无法体验的问题。

这样的购买期待是不可逆转的大势所趋,没有一家零售商能够逃过这个浪潮,而谁能最先将两件事变成一件事,谁就能在移动变革的零售业取得先机,这也是实体零售能够抗衡数字零售的唯一机会。

发现客户新的体验需求

在世界各地,有趣的购物体验正在发生,那些中国购物者攒动的奥特莱斯里出现了一批「购物直播者」,他们用手机「直播」着购物过程,手机那头是真正的购物者,你能说,这是一个数字体验还是一个实体购物体验?

一些奢侈品或美妆品牌的零售商,每个销售人员都在通过微信管理自己的客户,他们一方面代表着品牌,又代表他们自己,客户甚至可以通过微信支付的方式,直接购买商品,再通过品牌现有的配送渠道完成配送,这是一个数字体验还是一个实体购物体验?

reatil-breakout-3

(在旧金山,为了与来自中国的消费者建立联系,几乎所有精品店的销售人员都会使用微信,通过微信他们将最新的产品信息发送给客户。)

客户在卖场内体验了产品,对于那些及时性要求不那么高的产品,客户可以通过散落在卖场的销售人员,可以通过其手持终端在其电商渠道上完成购买,再通过配送的方式获得商品,这是一个数字体验还是一个实体购物体验?

retail-breakout-5

(美国Gap公司推出各种线上与线下相结合的服务,例如Reserve In Store,客户可以在线上进行订购,直接去店内进行试穿最后购买。)

越来越多的零售商们发现自己的消费者有着各种千奇百怪的购物方式,而这也是完成「两件事变一件事」的第一步:发现需求。下图是ThoughtWorks零售为美国一家历史悠久的服饰品牌构建的跨渠道体验,该服务体验的完成横跨5个子品牌、并提供超过15种跨渠道服务。

建立面向客户、库存、产品、交易的核心服务能力

在传统渠道思维的零售战略中,客户(Customer)、库存(Inventory)、产品(Product)、交易(Transaction)的处理能力散落在各个渠道中,在新渠道建立的初期,为了更快完成渠道的建设,避免现有业务体系的限制,采用单渠道集中发展方式是合理的。

但是,当多个渠道的建设逐渐成熟,远见卓识的零售企业领导者应思考如何将四个方面的核心能力进行整合,而不是简单的系统集合,无论服务形式如何变化,最终都落在同一个客户、同一件库存、同一件产品、以及同一次交易上来。

以库存的信息处理能力为例子,Target已将库存信息的精度定位到每一件货品,其单品级别RFID(射频识别)系统将在2016年投入使用,在其遍布美国800家分店,此举将大大提高库存信息的实时性和精准度,并帮助消费者更好地完成线上下单店内取货(此服务已经占到整个Target.com全部购买的15%)。

建设成长型的整合技术平台

核心技术能力永远是零售企业的成长引擎,多元的客户体验、频繁抽取和服务化的系统重构、基础服务能力的搭建、对客户需求的快速反应,都离不开一个可成长的技术平台。

越来越多的零售商开始认识到,一劳永逸地选择一个大而全的技术平台在一段时间内解决所有问题,是不现实的。摆在零售企业CIO面前的任务,从选择和实施一个成熟的技术平台,变成了选择合适的技术战略、围绕一个基础平台、建立成长性的核心技术能力。

最新的一份零售企业CIO技术优先级选择的报告中显示,排在第二位是「整合能力」,即如何整合所有目前被隔离的销售渠道,包括线上、移动端、店内,这种整合需要考虑算税规则、价格、促销、以及产品信息的整合,借此打破数据孤岛。

持续交付(Continuous Delivery)开发自运维(DevOps),再到微服务(Microservices) ,技术领域发展的最前沿正在为其提供实践基础;而诸如大数据、分布式计算、机器学习、物联网等技术的成熟,也让建立下一代统一业务平台(Universe Commerce Platform,指不区分电子商务和普通线下业务的统一商业平台) 成为可能。

以DevOps为例,越来越多的零售商开始考虑零售技术的可成长型,以及先进技术文化对于企业技术能力的影响,Target公司将DevOps作为改变其技术研发实践与文化的突破口,以提高其研发效率、部署能力、和技术平台的延展性,有超过200名技术人员参与了Target的DevOps实践

写在最后

电商在一段时间内将实体零售逼入死角,但是移动互联网的流行与成熟为实体零售获得一线生机,消费者不再满足单一的购物渠道(无论是店内消费、还是线上消费),而随着实体零售数字化能力的提升,其线下体验就成为线上电商不可能比拟的优势。

而将其转化成真正的核心优势,最终为消费者打造出一个不需要考虑渠道的购物体验,亟需解决的是现阶段各大实体零售面临的「线上下互博」问题,解决这个问题的核心逻辑是:

  • 把「弱化渠道」战略作为零售企业突围的核心战略;
  • 发现多元化的消费者购物体验;
  • 针对体验建立围绕在客户、库存、产品、交易的核心服务能力;
  • 在可成长的整合技术平台上打造核心服务能力;

很多人看衰实体零售,事实上,经历一段时间的成熟,当实体零售的数字化能力逐步接近线上电商,我们有理由相信,一个弱化渠道、以多元客户体验为核心、基于成长型技术平台的核心业务能力、结合新企业行为的战略将成为实体零售企业突围的关键。

 

Share