技术嘉年华小结
今天参加了公司举办的技术嘉年华,晚上吃完饭,想简单的回顾一下,今天自己收获了什么?
上午主要是公司请的嘉宾做的分享。有三个主题:
- 所有的组织都是软组织
- 从图像识别到AlphaGo - 浅谈卷积神经网络
- 用户体验设计的方法和实践
下午有三个分会场同时举行,我参加的是Machine Learning。
AlphaGo、神经网络、机器学习这些概念很多人都听过,我也听过。但是,也只是听过,没有相关的学习。
上午那位演讲演讲嘉宾是一位“数据科学家”,她分享的内容里面,随便提一个概念、一个公式,我可能都一点不懂。但是一些表面的东西还是可以看到,并且会有自己的一些体会。
分享开始的时候,给我们看了一段视频。里面有无人驾驶、机器人厨师、机器人工人通过一遍学习就知道了怎么工作、机器人学习探索。这些技术我是毫无学习的,这里我收获的主要是一些感触吧。机器正在以非常快的速度追赶人类,未来也许会超越人类,至少是大部分的人类,更厉害的是机器可以不用休息,而且可以说是永生的,可复制的。当然,这肯定会给我们带来很大的便利,解决我们很多的问题。未来到底是什么样的呢?让我们一起拭目以待。对我个人来说,当然是要持续不断的学习,至少可以不用那么快被机器淘汰。
下午的机器学习也是很好的分享,是公司同事对公司一些数据,用机器学习来做一个预测。可以想象,未来机器学习、人工智能这些应该可以很容易,而且会很广泛的运用。
主要总结回顾一下另外的两个分享。
所有的组织都是软组织
All organizations will be software organizations
不确定性中的确定
在人类进化过程中,基因的突变是不确定的,但是适者生存的法则是确定的。未来是不停的变化的,而且变化越来越快,我们必须要能适应变化,迅速做出调整和改变,才能不被淘汰。
在软件未来的发展方向中,有很多的不确定性,能比较确定的是:用户已经成为软件产品的中心,用户价值决定一切。
在这个行业工作是否幸福
软件行业,有很多公司加班会比较多,大家经常说的996,因为需求改动太频繁、软件质量不高经常出问题等等原因,可能需要大家花更多的时间去处理。有同事提问说TDD让他们觉得不幸福,虽然我学习和使用TDD的时间不长,但是我深深的体会到了TDD的好处,TDD对我来说是让我觉得更幸福的。我觉得TDD是不可缺少的,对项目开发速度、质量保证、后期维护都是非常重要的。
怎么可以让我们在工作中觉得更幸福呢?对我来说,假如我们团队可以做出更好的系统,更有价值的系统,我会觉得更有成就感,我会感觉更幸福,可能我的收入还会因此而增加,我也会感觉更幸福。
这里我也想到,玩游戏也挺累的,为什么我们会喜欢玩游戏,并且玩游戏会觉得开心呢?玩游戏的过程中,我们可以和一起玩的人交流,我们可以获得胜利后的成就感,就好像大学宿舍,相同的宿舍一般玩的游戏也差不多,其实游戏就是一个增加大家互动交流的平台。我们工作中,Pair Programming也可以增加我们很多的讨论交流,另外,我们应该要建立一个玩技术、交流技术的平台,这样大家从玩技术的过程中,增加和他人的交流,并且获得成就感。也会增加幸福感,而且对自己来说也是一种成长。
软件组织结构
- 快速反馈
- 重复可见
- 追求简单
- 整洁代码
这四点在需要快速响应的敏捷的开发团队中,个人认为非常重要。
驾驭不确定性是软件组织的新常态
如何在不确定的环境中生存下去,就需要我们有更强的适应能力。
用户体验设计的方法和实践
Designing for our users.
A typical software product development lifecycle
product lifecycle.pngSources of waste
- Biggest waste: Not accepted by market or customers.
对于我在公司做的系统,我不知道我的用户“长”什么样子,不知道他们怎么用我们的系统,不知道他们是怎么“骂”我们的。所以,很明显,我们开发的系统,很多时候,是浪费时间。我们每天为了进度,飞快的敲打着键盘,其实更应该停下来多思考下,用户会不会接受我们的设计。
- Most common waste: Unused or low value features.
因为我们脱离了用户,我们不知道用户更需要什么,更需要解决什么,我们可能把大量的时间花在用户根本不需要的功能上面。
- Continuous waste: Low quality development.
大部分的时间,我们都在工作中,很少去更多的学习和练习,我们的技能问题是造成低质量的产品的一大重要原因。
sources of waste.pngEliminating of waste
eliminating waste.png当我们在设计开发的时候,经常是为了速度蒙着头一直往前冲,看起来好像更快速,很多时候我们并没有往正确的方向前进。
Design process
design process.png为什么要了解用户?
用户价值决定一切。
了解用户,站在别人的立场思考,从用户身上找用户的需求,给用户提供适合的解决方案。
很多时候,用户说的,并不等于用户实际做的,也不等于用户心里想的。一方面,用户可能也不知道自己真正需要的是一个什么;另外,用户可能难以表达自己真实的想法;而且,用户可能很多想法也是临时性的。
通过了解、研究用户,了解用户更深层次的需求。用户想要的,用户牵挂的,用户在意的,还有用户没有意识到的需求。
image.png用户研究的方法:定性与定量
- 定量:用数字说话
- 定性:产生洞察
用户研究最常用的方法:用户访谈
- 了解用户的基本情况
- 了解用户的兴趣点
- 了解用户的痛点
- 了解用户的使用场景
- 了解用户的期待
用户访谈设计
- Who: 哪些关系人我们需要深入了解?
- What: 什么样的讯息与脉络可以帮助我们了解用户的行为跟痛点?
- How: 什么样的问题,我们应该要提问?
用户访谈的要点
- 对访谈目的要清晰
- 不要对用户有偏见
- 降低姿态
- 了解用户的真实目的
- 在发生地访谈
- 留心用户修改言论的时候
- 让用户说自己的体验,讲故事
- 需要的不是完整的解决方案
如何问问题?
- 问开放性的问题
如:你喜欢吃苹果吗? 更好的问法是:你喜欢吃什么水果?
- 不要预设立场
最好到用户真实环境去问问题,在用户熟悉的环境下,用户可以不用去做一些假设。
- 多问上一次的经验
如:你上一次做的运动是什么,而不是你平时喜欢做什么运动
- 多问一个为什么
如:用户说喜欢跑步,就可以多问一下用户,为什么喜欢跑步。
- 让用户多讲讲他们的故事。
分析需求
"If I had asked people what they wanted, they would have said faster horses." —— Henry Ford
如何梳理需求
image.png image.pngQ: 为什么需要一匹更快的马?
A: 因为可以跑得更快!
Q: 为什么需要跑得更快?
A: 因为这样可以更早的到达目的地。
可以用不同手段实现用户真实的需求
image.png用户定位与产品定位
假设有三位需要买车的用户, 他们分别对车的需求如下:
UserA:好玩,快速
UserB:安全,舒适
UserC:耐用,容量大
如果我们完全按照这三位用户的需求去设计一辆汽车,我们很可能制造出一辆四不像的汽车:
image.png用户画像
可以通过观察用户的一些特征,画出简单的用户画像,而且可以根据越来越多的了解,对用户画像进行改动。
- 更加专注的从用户角度思考
- 做决策时更具同理心
- 不要预设立场
- 明确产品的出发点
如何创建用户画像?
- 和不同角色的用户访谈
- 总结了解到的不同用户行为和特点
- 将访谈过的用户根据不同的特点进行归类
- 将用户行为和特点进行进一步提炼
- 为用户的行为和特点扩展个性化内容
- 检查用户画像的完整性
- 确定用户画像优先级
- 为用户画像增加小故事和照片
Prototyping
根据收集到的用户需求,快速的将设计原型画在纸上,然后要用户通过在手绘的原型上面操作,根据用户操作的反馈信息,继续用手绘的方式改进。接着,快速的做出静态的UI界面,继续让用户进行操作,最后实现真正的产品。
What next?
image.png当我们做第一个迭代拆分story的时候,我们并不是把最基本的功能先实现,而且要像上图中划分的一样。