数字钱包应用从产品到发布

从这篇文章中,我们可以看到一个产品的整个发布过程,它将从一个故事点、头脑风暴、功能确定、产品设计、开发最后到上线一系列过程,每个过程的思考和设计都将影响整个产品的最终形态,它并不是一个纯粹技术或者设计的问题,让我们看看一个产品到底是如何产生的。

用户故事

需求源于一个故事,多个故事形成一个产品。那么数字钱包这一产品,源于我对现在比特币、以太币等数字货币到底以什么形式存在。思考一下,如果未来一天数字货币真的开始流行,那么我的数字货币到底放在哪儿了?我怎么通过它来买我想要的东西呢?那么它和支付宝、微信钱包有区别吗?我们需要带着这个用户故事来开始对数字钱包的了解和设计。

用户功能

数字钱包,作为一个数字资产交易的工具,产品 Owner 需要做一些相关功课,至少要玩转一下各种不同的钱包 App,总结出产品的一些功能,当然可以对基本功能进行更多的扩展。通过一些调研和头脑风暴后,我们将列出如下用户可能用到的功能:

  • 初始化钱包
    • 创建钱包
    • 导入钱包
      • 私钥导入
      • 助记词导入
      • Keystore 导入
      • 钱包地址导入(观察钱包)
    • 导出钱包
      • 私钥导出
      • 助记词导出
      • Keystore 导出
  • 查询资产
    • ETH 总个数
    • Token 总个数
    • 交易列表查询
    • 交易详情
  • 转账交易
    • ETH 转账
    • Token 转账
    • 调用合约
  • 个人中心
    • 密码管理
    • 钱包管理
    • 联系人管理
    • 交易管理...
  • 其它
    • 货币行情

这个过程非常重要,有可能你要做的产品都没有可以模仿的对象,它只是存在你头脑的一个想法而已,尽可能多的去发散思维,当然这些思考一定是源于你的这个想法,尽可能少的加入和这个产品无关的内容,保证这个产品是在解决这一类问题。

MVP

当然如果采用 Scrum 敏捷方式来开发这个产品,我们要遵循 MVP(Minimum Viable Product) 原则,已最快的速度上线一个可用的版本,以上所有功能显然太过于庞大,以至于项目时间会拖得很长,我们会从中摘取最重要的功能:

  • [High]创建钱包
  • [High]私钥导入钱包
  • [High]ETH & Token 总资产
  • [High]ETH & Token 转账
  • [High]交易列表
  • [Low]交易详情
  • [Low]调用合约

我们看看以上这 7 个功能,它在钱包的使用过程中都是不可或缺的,在整个交易生命周期中必备的过程(创建->查看->使用)。看起来只有 7 个主要页面,此时我们需要和极客们讨论产品的可行性和未来的产品方向,我们需要通过流程图和原型图来描述整个产品的使用过程,这是用户端的设计,要考虑到简单易用,流程尽量是一条直线尽可能少的分叉;每个页面功能职责要单一,不要让用户迷惑。接下来我们要做出最优化流程,和功能清晰的原型图。

流程图

1304324-2638382015584ebf.jpg
流程图

简单解释一下这个流程图:

  • 主流程:创建钱包->查询资产->交易
  • 子流程
    • 初始化钱包:新建/导入->创建完成
    • 查询资产:查询钱包总资产->查询交易
    • 交易:输入交易信息->输入交易密码->完成交易

原型

1304324-7a19b968b95627d7.png
原型图

简单描述每个页面的功能:

  • 省略1w个字(难怪 PM 不愿意写 PRD)...

设计

设计是一件非常重要而有趣的事情,做得好会让你的产品容光焕发,不好的话可能会让你的产品惨遭吐槽。

[技术]接口字段 (SDK)

  • transactionObject
    • contract
    • methodName: String
    • arguments: Array
    • privateKey: String
    • from: String
    • to: String
    • value:
    • gasLimit
    • gasPrice
    • data
    • none
  • attributes
    • privateKey
    • publicKey
    • address
    • currency
  • methods
    • generate([currency]): Object
    • import(key [, type] [, currency]): Object
      • type: 'privateKey', 'keystore', 'mnemonicPhrase', 'readonly'
      • key: string
      • currency: string
    • setProvider(host)
    • getBalance(addressHexString): Promise
    • getTokenBalance(addressHexString, contractAddress): Promise
    • getTransaction(transactionHash): Promise
    • contract(abi, address): Object
    • estimateGas(transactionObject): Promise
    • gasPrice(): Promise
    • sendTransaction(transactionObject): Promise

开始开发

接下就是产品 Owner 的讲故事能力了,需要把上面的产品从头到尾描述给开发者(工程师、设计师、交互设计师、测试工程师等),尽可能的将功能送到各位的脑子里面去,有问题要一起思考。

用 Scrum 来管理产品

我们可以用敏捷中的 Scrum 来管理产品的进行过程,通过 Backlog、白板、燃尽图等工具来推动产品的进展,用每日站立会、评审会、回顾会议来组织团队的协同工作,这样一来通过一个迭代周期(2周到4周)就可以去线上验证自己的产品和想法了。

〖坚持的一俢〗

转载于:https://www.jianshu.com/p/497f17b61346

猜你喜欢

转载自blog.csdn.net/weixin_33720956/article/details/91186463