一. 前言
裸辞后,我花了一个多月开发我的第一个独立开发产品RedisMate。其MVP版本上线五天,产品从没有排名,到冲到了国区mac app store开发工具类排名榜的前十,并持续有了几笔收入。
那么,我是怎么做的呢?
我是一个正在尝试独立开发的普通程序员,在此跟各位分享我的过程,不仅是我对自己的复盘,还希望能够给一些正在或准备尝试独立开发的兄弟一点参考。所有的过程都是按照我主观的想法去推进执行的,如果有更好的建议,欢迎交流!
本次分享分为上下两篇文章,分别为产品设计和产品推广两个主题。
二. 起源
首先,我并不是因为我有一个很棒的点子或产品,而选择去裸辞,去独立开发。
而是我因为别的原因选择了裸辞,然后开始把独立开发作为未来的一条路,并尝试去走。
所以,也可以说,一开始我是为了独立开发而去独立开发。
三. 产品选择
既然我没有一个很棒的点子去完成一个产品,那么我就开始去找。
1. 自身条件
首先,为了能够独立开发,我要审视自身,我会什么?
罗列下我的开发技能:
- 前端:Vue、TS、...
- 后端:Go、Python、Rust
- 数据库:MySQL、Redis、PostgreSQL、ClickHouse、...
- 运维:Docker、MQ、Nginx、...
- 客户端/原生:Electron、Flutter、SwiftUI
- 硬件:esp32
检查下其它独立开发必需技能:
- 产品:自嗨水平
- 设计:自嗨水平
- 运营:几乎没有
罗列下我熟悉的可以寻找需求的领域:
- 开发
- 玩游戏
- Linux日常办公
- Mac日常办公
我能在独立开发过程中投入多少资源:
- 时间:全职
- 资金:起初的时候几乎完全不想投入一块钱,但起码要支付苹果个人开发者年费+服务器年费+域名年费
2. 产品形态
那么,基于开发技能,得出我可以做的产品的形态:
- 安卓app
- ios app
- Windows/Linux/macOS应用程序
- SaaS
- 硬件
- 浏览器插件
- 编辑器插件
- 微信小程序
但是考虑到希望以较小的成本来尝试独立开发,和希望能够短期得到收入来验证产品,那么就剩下了
- 安卓app
- ios app
- Windows/Linux/macOS应用程序
并且还都是离线应用,不需要服务器的支撑,没有太多服务器的额外成本,服务器仅仅需要最小配置用来备案即可。
考虑到付费方式的成本、上架的成本,再排除掉安卓app、Windows/Linux应用程序。
那么就只剩下
- ios app
- macOS应用程序
3. 产品需求
确定了产品形态,我就要考虑,到底要做什么产品呢?产品需求是什么?
如果我从当下很火但我完全不熟悉的领域去找需求,那我肯定没法挖掘真正的需求。
如果我找一个熟悉某个领域的人咨询,他并没有挖掘需求的能力,无法识别出真正的需求,这一点在我多年的工作中已经见识过太多太多次了,最后完完全全就是一个定制化项目,在市场上根本没有竞争力。
这就要从上述罗列的,我熟悉的领域去找。
所以我把目标放在了"开发"上。"开发"是我最熟悉的领域,在其中这么多年了,需求来源于我自己,我就是用户,我就可以直接验证这个需求是不是伪需求,这个功能是不是好功能。
并且,鉴于我三年前开发过一款开源的Redis GUI Client------RedisFish,积累了一些经验,并且后来因为工作搁置了,导致一直没有完成也心有遗憾。
所以最终决定开发一款Redis GUI for Mac。
四. 市场调研
在决定产品之后,我先去问了一圈我的朋友和前同事,他们正在用的Redis GUI是什么。
得到的回复是如下产品:
- RedisDesktopManager
- AnotherRedisDesktopManager
- Medis2
- RedisFish(被我安利用我自己的开源产品,哈哈...)
其中RedisDesktopManager和AnotherRedisDesktopManager是最多的,毕竟是老牌的强劲产品!
然后,我又去翻了些论坛和帖子,发现有些人在发帖问mac上有哪些推荐的Redis GUI,但是哪怕是老外,也是如下选项居多:
- RedisDesktopManager
- AnotherRedisDesktopManager
- Medis2
- RedisInsight
接着,我也去了解了下近期新出的,比如Tiny RDM,听劝作品,真的很棒的,哈哈。
然后还有几个出现在比如gitee等平台的。
所以目前mac原生的也只有Medis2。
最后,我就要说那个经典台词了:没有能够满足我需求的!(不是...
五. 重新构思MVP版本
到这个事件前,我已经开发完了既定的MVP版本,为v 1.1,此时的RedisMate是一个完成了基础Redis功能的App。
而我也已经怀着激动而又紧张的心情,在想如何推广MVP版本了。
但是,在我准备尝试推广的那个早上,在上厕所的时候,当时正在看《人性的弱点》。刚好看到书上讲了一个推销员的案例,推销员疯狂地讲述自己的产品怎么怎么好,让作者要赶紧买。
因此作者就在书上写道:
人们其实什么东西都不需要。如果我们想买点什么,早就出门去买回来了。人们真正需要的,是解决问题的方式。人类永远都面临着种种问题,永远都需要这些问题的解决方案------如果销售人员能够证明其服务或产品可以帮助人们解决问题,不用推销,我们就会主动掏钱。对消费者而言,"主动买"比"被推销"的感觉好得多。
所以,我就在想,我现在做的这是什么啊?!我能给其他人解决什么问题呢?凭什么要选择我的,而不是别的成熟产品?
我就开始重新构思MVP版本,希望能够加上独特的、创新的功能,能够真实解决用户问题的功能。
六. 创新
1. 寻找创新
如何发现问题并解决问题?可以从经济学的四种不同类型的效用来入手:
- 场所效益:使得原本无法接触的事物变得可接触
- 形式效用:通过重新排列现有部件使某物更有价值
- 时间工具:让事情变快的工具
- 拥有权利:去除中间人
在此处,我的产品RedisMate上,最简单也是最快的的创新方式就是"让事情变得更快"。
我先明确Redis GUI使用频率最高的功能,然后从那个功能入手,让用户能够立竿见影感受到RedisMate的便捷。
那么,经过自己的总结,和跟朋友的沟通,我总结出,Redis GUI工具,使用频率从高到低的功能分别是:查(甚至是搜索)、删、改、增。
因此,我就从搜索功能入手。
我把RedisMate搜索功能的所有步骤罗列出来,然后思考,有哪些步骤可以减去?如何减少步骤?
最终就得到了现在"快速搜索"功能!
当Redis GUI窗口常驻时,一般最少需要约7步操作,那么在RedisMate上最少只要3步。
当Redis GUI仅打开没有连接任何服务器时,一般最少需要约9步操作,但是在RedisMate上最少只要3步。
当Redis GUI反复搜索固定key时,一般最少需要约4步,但是在RedisMate最少仅仅需要1步。
所以,我在RedisMate上针对搜索场景,进行了优化,并确实在推广时,得到了不少积极反馈。
并且,基于上述过程,优化了RedisMate的布局和一些细微的功能,让用户能够更直观更快去操作。
2. 挖掘需求
等我后面回过神的时候,才发现我一直有这个需求。
经常性,我要前后端一起开发,由于是微服务,多个节点并发开发和调试,每次都要开超多窗口。
我经常要切换窗口时,要愣一会儿思考一下,我要切什么窗口来着...
所以我就一直在想,能不能省略掉这些窗口,窗口自己呼出然后切回去!
现在RedisMate就可以了,这就解决了我曾经的问题。
然后,我就又想到曾经的一个抱怨,有时候在调试时,代码有点问题,或者业务链路较长,需要联调时间有点长,或者MQ驱动的业务节点产生key有点慢等等,key在我查的时候没有出现。我就要反复调出Redis GUI然后点点点后搜索再点点点,发现不对!调一下代码,再来一遍!
我当时就在想,要是GUI能帮我盯着就好了。
所以,我设计了"Search Until Found"功能,在得到朋友的肯定后,将其加入到了MVP版本中 。
六. 总结
首先,我很庆幸自己这些年学习和玩了不少技术,让我能够在想去独立开发的时候,不仅能够独立完成开发,还能有多种产品形态可以选择。并且我也有意识地去读技术之外的书,让我在其它领域有那么点点基础,只可惜没有学得更多。
其次,我觉得对我而言,苹果生态开发是当前成本最小的方式。
然后,我从我熟悉的领域入手,寻找自己的痛点,验证自己的需求,得到解决方案后,向身边的目标用户寻求验证。
最后,花一个多月开发完MVP版本,推出来验证自己的产品。
七. 最后
感谢你看完这篇文章,希望我的经过能够给你一些参考,帮助到你。
本次分享的下一篇文章------产品推广方面,我正在努力写,敬请期待并关注我以获取更新。
如果你对我的产品RedisMate感兴趣,非常欢迎点击此处了解和下载,或者在mac app store中搜索"RedisMate"。
最后,要感谢各位道上兄弟的关照,给了很多支持和反馈。
还要特别感谢那些购买高级版的兄弟,非常感谢你们的支持!