给生活加点惊喜,做创意生活的原型设计师丨编程挑战赛 x 选手分享
前言
做产品的大都跳过一个坑:我有了一个很好的产品创意,只差一个程序员帮我实现编程了。
事实上从产品创意到落地上线,中间需要经过非常复杂的过程,细节的逻辑流程才是难点,创意不能落地,并不值钱。
本文作者李新春是去年 RTE 2021 编程挑战赛「SDK 应用创新赛道」的冠军,为了给今年的选手避免一些弯路,我们邀请他结合自身以往的项目经历和参赛经历,谈谈在有了一个很好的创意之后,如何让创意不仅仅停留在脑海而是能够真实的落地到实际生活中。
由声网发起的「RTE 2022 创新编程挑战赛」于 7 月 7 日正式开启,共计 20 万奖金池,单团队奖金最高可达 10 万!点击了解 ☞☞☞「大赛详情 & 积分激励计划」
以下正文:
首先,很高兴能进行这次分享。去年受到各位评委的抬爱有幸拿到了赛道的第一名,适逢今年挑战赛的开赛,希望能把我去年的小小成功总结成经验,分享给每一位参与比赛的选手。
我分享的题目是「做创意生活的原型设计师」,我们每个人在生活中都可能会有各种各样的创意与想法,我会在分享中先和大家梳理下我们如何激发创意和想法,以及如何通过一些方法和工具实现创意的快速落地。
01 创意源于自嗨
所谓的创意很大程度上是我们的自嗨。但自嗨不只是浪费时间,而是在有一个想法之后再进行深度思考,思考如何完成对产品的打造和项目的实现。
那我们平时的创意可能会来自哪里?我梳理了以下三个点:
● 生活总结
我们会在生活中遇到各种各样的事情,在各种事情的处理中,时不时就会灵光乍现。比如我想让加湿器自动检测环境的室温和湿度,实现动态的调整;我为了想时刻看到我家的猫,知道我家的猫在什么位置,所以通过一个监控,用一套算法来识别并找到我家的猫。
● 工作实践
从事各行各业的人,会遇到各式各样的需求,在解决需求的过程中,放飞创意。我在去年参赛的时候遇到过一个创意 ——「摸鱼指南」,通过声网提供的产品工具实现了一个在线的虚拟会议室,自己跟自己开会。虽然不是很推荐,但偶尔我们还是可以找一些类似的想法和创意,提升自身的幸福感,给生活增加一些乐趣。
● 科技进步
科技改变生活,各种层出不穷的新概念为我们的创意创新提供了丰富的土壤。现在增强现实、AR/VR 的应用已经蛮多了,还有虚拟主播、元宇宙、5G 高速网络等等,以及各种各样的 DIY 电子元件设备,为我们提供了实现想法创意的快速通道。
02 问题分析,构建独创解决方案
当我们有了一个脑洞大开的想法后,如何进行分析,然后构建解决方案呢?这个过程实际上就是从自嗨到实际落地的过程。
1、创意生根
好记性不如烂笔头,好分析成就好创意。想把创意落地生根,这里我推荐三款软件:
● XMind
Xmind 是我经常用的软件之一,当我有一些想法和创意时,会先借助这个软件来做第一步的梳理。XMind 的思维导图结构包含一个中心主题,各主要分支从中心主题向外辐射开来。除了基本的思维导图结构外,XMind 还提供组织结构图,树状图,逻辑图等。
比如我定义了一个智慧家居的系统,那我首先要定义我的设备和应用的形态,然后具备哪些能力中台,又该如何按照路径一步一步完成实现。通过 XMind 我可以快速的将我的想法进行头脑风暴式的整理。
● Axure RP
这是一个快速原型工具。无论是以 web 的形式或者小程序之类的方式,都可以通过 Axure RP 将自己的想法快速的进行可视化的展示,建立一个原型来测试解决方案并收集反馈,和团队间进行共享、迭代直到找到正确的解决方案。
● 墨刀/摹客等
类似墨刀、摹客这类共享办公的软件,为我们提高效率、加强协作、优化流程提供了更快更简单的解决方案。智能标注、一键切图、全貌画板、多样批注、交互原型、附件支持,从产品到开发,只要一个文档即可。
2、产品分析
运用工具将头脑中的想法落地成产品,难免需要进行一些产品层面的分析,分析的维度我罗列了 4 点:
● 业务可行性
业务可行性分析是第一步。我的想法来源于哪里?解决了哪些问题?有哪些受众?落地后能带来什么样的效果?通过这些层面的分析,可以强化我们自身对于创意的认可度与信息。一个好的创意经过可行性分析后,通常也会有一个更好的展现。如果分析的结果不理想,那通过分析也可以避免走弯路。
● 技术可行性
在想法出来后,我们需要思考都需要用到哪些技术。比如在智能家居领域,需要 AIoT 设备,需要用到音视频的高效传输,需要可视化的呈现、客户端开发等等。
技术可行性分析这部分除了分析需要哪些技术外,还需要分析自己是否掌握了这些技术,比如基础的 code 能力、交互设计的能力、UI 设计的能力、架构设计的能力等等。
● 经济可行性
以参加声网这次的比赛为例,我们的经济可行性分析对于个人和团队来说都是需要考虑的。成本是否可控?是否需要额外采购硬件设备?以及产品的价值是否值得进行相应的投入?是否有盈利模式等等。
● 社会可行性
所谓的社会可行性,指的是产品是否能得到大众的认可,以及我们通过怎样的方式进行推广,让我们的产品落地形成一个被大家接受的产品。另外一个重要的点就是是否符合公序良俗,违法的事情可不能干。
3、解决方案设计
事无巨细,先繁后简。完成分析之后,我们要先进行解决方案的设计。下图是我之前参赛时对于智能家居平台的一个想法设计:
在设计的过程中,我考虑了使用云网端底座,考虑了需要借助哪些感知设备、网络的设置;中台赋能部分是用 AI 进行算法分析,那么要选用哪些算法?中台要如何构建、如何进行接入管理等等。
另外的话在应用服务部分,需要考虑我们服务与哪些主要的功能。比如家具场景的远程协助、老人小孩的监护等等。展现方式是 APP、小程序还是 H5?还是直接嵌入第三方平台?
在解决方案设计过程中,实际上融合了产品分析阶段的各个维度的分析,从而实现的方案构建。
4、平衡与取舍
均衡,存乎万物之间。关于这个部分,在解决方案出来后,会思考我们真的有必要进行这样复杂的设计么?我们需要对头脑风暴后的想法进行分解、筛选和删减,考虑哪些功能是我们不需要的?哪些功能是核心功能?
比如我们要进行音视频的通信,首先监控摄像头是必要的,视频传输底层的 SDK 和应用软件是必要的,在平台的展示也是需要的,这就需要进行平衡和取舍。
我们不可能在一个创意快速落地的过程中,直接完成非常复杂的实现,这样成本会非常高,因此需要在有限的时间和成本内,把想法快速的落地。
前期准备完成后,我们就需要按照我们的设计,选择一条合适的道路来真正的落地了。
1、梳理设计思路
梳理的意义,是找到如何以最快的方式达到目的。这里我们同样做了一个层级表格,分为设备、中台能力构建、产品设计和用户四个层面进行梳理。
首先是设备。相信有很多参赛的选手是从事硬件行业的,那可以直接使用自己做的硬件设备,有些不太熟悉硬件的朋友,可以使用半成品或者一些成熟的产品。比如智能眼镜,有很多设备只需要进行软件编程就可以直接接入使用了。
选择完设备后,就需要思考中台能力的建设。有很多相对完善的市场化平台,直接接入就可以实现项目的开发。一些半自助平台可以提供各类 SDK 或者某些方面的专业能力,同样可以实现快速的平台能力的构建。选择什么样的平台要看团队的规模大小,以及具体的规划。
产品设计层面,需要考虑产品是在现有产品的基础上进行拓展、改进,或者完全进行创新。我们以 RTE 编程大赛为例,无论是官方还是往届的选手已经提供了很多好的思路或者作品,基于这些项目进行一些优化或者功能的补充完善,也是快速落地项目和创意的方法之一。
最后需要梳理的就是用户层面。是非常垂直的小圈子用户,比如 IT 群体、设计群体或者宠物交流群体;还是服务于某一个领域的行业用户,比如交通、医疗等等;又或者是服务于全民用户,每个人都能用,这个事情也需要提前进行梳理和考虑。
2、极致简约
删除点缀,抓住重心。在选择一条路之后,我们就要考虑如何更简约的在这个跳上进行简约的设计。
第一点是线性思维。两点之间直线最短,如果我们只想从 0 到 1 的快速实现,在思考的时候就需要正向去考虑如何走通即可。
第二点是简化设计。因为前期只考虑正向的走通,就可以先暂时忽略往返之类的兼容型设计,比如报错和异常处理之类。在道路跑通之后,如果有更为充足的时间,再进行简化的设计,把更多丰富的功能和内容进行体现。
第三点也是比较重要的,等效替代。等效替代主要是解决一些暂时解决不了、迈不过去的问题。比如我本人偏向使用 C 或者 C++ 进行编程,对于 Java 还有 Python 的了解程度不太够,也就欠缺了一些网站建设的能力。因此就需要考入如何在我现有能力的基础上完成实现,对我不具备的能力实现等效替代。
比如我没有网站开发的团队和经验,那我可以先把它作为一个客户端,用 CS 架构实现;对于网络的需求,可以通过编辑简单的 PHP 脚本实现网络的联通;在几百或者几千并发的情况下,可以实现通过客户端加上网络的请求,最后再到本地实现的处理流程,也就通过等效替代的方式,在不影响实际使用的条件下完成了软件的设计。
04 一个小案例
最后想以我们之前参赛的作品为例,分享这个项目从想法到落地的过程。
我们当时的项目是一个智慧家居的管理平台。之所以产生这个想法,是因为我在生活中是一个比较马虎的人,经常会忘东忘西、找不到东西。另外就是像现在上海的天气这么热,很想在回家之前提前把空调、加湿器之类的打开。
当然现在有很多智慧家居平台具备这样的功能,不过会涉及到一些安全问题,因为需要联网传输数据,而我不想把家里面常用的信息暴露到外网上。所以我想要搞这样一个平台,可以实现我对于家庭内部的监控、环境状态的感知,以及一些远程控制和自动调节。比如家里的室温超过多少或者到了某个时间,空调会自动开启;通过 AI 监控家里猫的行动轨迹,绘制下来做一个轨迹图,也算是为生活平添了一个乐趣。
所以在上次参赛的时候,我们就把这样的一个想法构建成了一个智慧家居管理平台。实现通过可穿戴设备、智能家居设备、视频监控设备来进行控制。并且我们自己 DIY 了一个智能小车,可以在家里进行巡检。
在实际的开发过程中,我用到了两类视频监控。第一类是我自己 DIY 的小车,小车上面装着一个监控摄像头,我可以通过控制让它在家里面到处跑,进行巡逻。
第二类监控是局域网内的监控视频。这部分监控视频我可以通过绑定 IP 或者推流的方式直接拿到,然后进行内部的监控。当然我还可以通过 USB 将更多的摄像头进行接入,增加对于某一个位置的监控。
除了这些硬件设备之外,我也借助了声网底层 SDK 实现音视频的传输,以及声网水晶球平台来进行流量、视频以及连接状态的管理。最终将各种信息进行实时分析和展示,最终实现了如上图所示的可视化的平台。
因为这个平台是联网的,所以我可以随时根据需要来增加外部的视频流和数据的接入。有趣的一点是,在监控层面除了常规的人像识别算法,我们还额外增加了猫的识别算法。
整体的项目正如我此前说的,是用线性思路、极致简约的方式来完成的。在实际的开发过程中,我删减了很多的功能,比如环境感知、门禁监控之类在方案中是包含的,但并没有进行相关功能的开发,不过这类功能和监控视频设备的接入逻辑是相同的,如果有需要随时可以补充进来。
如果有公司或者参赛团队觉得我们的产品很有意思,愿意来共同丰富拓展,我们也非常欢迎。
Q&A
1、你觉得创意落地的最大难点是什么?
李新春:我觉得最大的难点就是动手去做。大家在开脑洞想创意的时候是非常快的,但当真正想要落地的时候会遇到各种各样的问题,比如编程能力不够用、不会每一种技术栈之类,这对当时的我来说是一个比较大的难题。遇到这种问题,我的建议是找伙伴,集合大家的力量来完成。
另外一点就是简约的开发思路。先从很粗的概念来打通整体的项目,再一帧一帧的去细化。这样相当于降低了上手的开发难度,不至于让自己的思路突然中断。
2、参与比赛带给你最大的收获是什么?
李新春:说的直白一些,会有一笔不菲的奖金收入。另外就是声网对于整体的比赛过程做了非常强大的支持,除了能帮助参赛者完成项目,还能帮助了解市面上的其他相关产品,拓展对新技术和新应用的理解。
在我和声网的几次接触中,了解到了很多之前不了解的信息。比如声网在音视频领域做得低延迟,基本在 4G 的网络状态中就可以实现很好的效果,借助 5G 基本上可以消除到可感知到的延迟。另外在开发方面,声网首先提供了一个平台,并且会给开发者提供很长的免费使用时长,这对于我在平台规划的时候有一个很大的提升。大家也可以注册一个声网的账号,看一下网络管理和用户管理,以及授权方面的管理,相信能给大家带来一些系统规划层面的提升。
关于「RTE 2022 创新编程挑战赛」
RTE(Real Time Engagement)创新编程挑战赛,是声网自 2019 年开始,一年一度面向全球 RTC(Real Time Communication) 开发者、编程爱好者与极客举办的在线黑客马拉松。
本届大赛,我们共分为 2 个赛道,赛道一将继续延用经典赛题「声网 SDK 应用开发」。与此同时,今年我们还特别推出赛道二的新赛题「场景化白板插件应用开发」,给开发者提出更为聚焦的解题方向,探索场景应用与技术能力的边界。
「RTE 2022 创新编程挑战赛」于 7 月 7 日正式开启,共计 20 万奖金池,单团队奖金最高可达 10 万!扫描二维码添加大赛小助手,获取通关秘籍~
给生活加点惊喜,做创意生活的原型设计师丨编程挑战赛 x 选手分享的更多相关文章
- javaScript构造函数、原型、面向对象编程
js最重要也是最核心的东西就是对象了,入行这么长时间,一直对面向对象一知半解.网上有很多介绍对象对象的内容,这里也做了很多借鉴, 尤其是阮一峰老师的文章.我这里写的大多例子都是阮一峰老师文章的例子,但 ...
- javascript: 基于原型的面向对象编程
Douglas Crockford指出javascript是世界上最被误解的编程语言.由于javascript缺少常见的面向对象概念,许多程序猿认为javascript不是一个合适的语言.我在做第一个 ...
- 面向亿万级用户的QQ一般做什么?——兴趣部落的Web同构直出分享
作者:李强,腾讯web开发工程师 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. 原文链接:http://wetest.qq.com/lab/view/348.html 一.什么是同构 ...
- 面向亿万级用户的QQ一般做什么?——兴趣部落的 Web 同构直出分享
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:李强,腾讯web开发工程师商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处.原文链接:http://wetest.qq.co ...
- 【在 Nervos CKB 上做开发】Nervos CKB脚本编程简介[2]:脚本基础
CKB脚本编程简介[2]:脚本基础 原文作者:Xuejie 原文链接:Introduction to CKB Script Programming 2: Script 本文译者:Shooter,Jas ...
- 【在 Nervos CKB 上做开发】Nervos CKB 脚本编程简介[3]:自定义代币
原文作者:Xuejie 原文链接:https://xuejie.space/2019_09_06_introduction_to_ckb_script_programming_udt/ Nervos ...
- 【在 Nervos CKB 上做开发】Nervos CKB 脚本编程简介[1]:验证模型
CKB 脚本编程简介[1]: 验证模型 本文作者:Xuejie 原文链接:Introduction to CKB Script Programming 1: Validation Model 本文译者 ...
- 【在 Nervos CKB 上做开发】Nervos CKB 脚本编程简介[5]:调试 debug
作者:Xuejie 原文链接:https://xuejie.space/2019_10_18_introduction_to_ckb_script_programming_debugging/ Ner ...
- 【在 Nervos CKB 上做开发】Nervos CKB 脚本编程简介[4]:在 CKB 上实现 WebAssembly
作者:Xuejie 原文链接:https://xuejie.space/2019_10_09_introduction_to_ckb_script_programming_wasm_on_ckb/ N ...
- 《认识你自己(Archetypes who are you?)》 10种原型的行为模式和性格特征
转自:http://www.cnblogs.com/richardcuick/p/5627298.html 拥护型原型 你自然而然地就会被社会.政治和环境问题所吸引. 你认为世界需要改变. 你承诺 ...
随机推荐
- Centos7.5下安装nginx
#cd /usr/local #wget http://nginx.org/download/nginx-1.8.0.tar.gz #tar -xzvf nginx-1.8.0.tar.gz #cd ...
- 计蒜客(Stone Game)01背包
题意:在集合中挑一些数,形成一个集合S,剩下的数形成另一个集合P,使得S>= P ,并且对于S中任意元素ai,S-ai<=P 问有多少种方案. 题目链接:https://nanti.jis ...
- 命令提示符怎么打开和Dos命令的基本使用
Dos命令 Dos命令窗口我们可以通过win+R输入cmd来打开 如果要用管理员身份打开直接在开始里搜索命令提示符,以管理员身份打开! 一些简单的Dos命令 //切换盘符 盘符名: //进入 cd / ...
- 作业一:PCA降维练习
作业一:PCA降维作业 代码 点击查看代码 #author:qiao_px #@Time 2022/10/31 16:11 #@File ceshiPCA.py import pandas as pd ...
- 项目实训 DAY17-18
第一天,与后端的同学交接,先跟他说了怎么安装依赖库,弄完后他那边运行有些问题. 第二天,后端的同学说可以运行但无法部署,我思考后一起商量着只做静态模型(本身不同的两张图片只有input有区别),然后添 ...
- 圣诞树代码_HTML
这个冬天给TA栽不一样的圣诞树 直接上效果 <!DOCTYPE html> <html lang="en" > <head> <meta ...
- python代码抛出异常
from traceback import format_exc except Exception: print(format_exc())
- OO课程第三阶段(实验和pta试题)总结Blog3
OO课程第三阶段(实验和pta试题)总结Blog3 前言:学习OOP课程的第三阶段已经结束了,在此进行对于知识点,题量,难度的个人看法. 学习OOP课程的第三阶段已经结束了,较第一次阶段学习难度加大, ...
- Windows下安装多个Redis实例
1.在Redis 目录下复制redis.windows-service.conf文件,建议命名规则redis.windows-service-port.conf,我们以6380端口为例. 2.打开re ...
- api接口基础Day1
精华笔记: String: String的常用方法: length():获取字符串的长度(字符个数) trim():去除当前字符串两边的空白字符 toUpperCase()/toLowerCase() ...