hunter-ji / Blog

My Blog.
121 stars 38 forks source link

裸辞后独立开发产品上线五天开始盈利,我是怎么做的?分享我的过程(上) #80

Open hunter-ji opened 7 months ago

hunter-ji commented 7 months ago

我是如何独立开发的

一. 前言

裸辞后,我花了一个多月开发我的第一个独立开发产品RedisMate。其MVP版本上线五天,产品从没有排名,到冲到了国区mac app store开发工具类排名榜的前十,并持续有了几笔收入。

那么,我是怎么做的呢?

我是一个正在尝试独立开发的普通程序员,在此跟各位分享我的过程,不仅是我对自己的复盘,还希望能够给一些正在或准备尝试独立开发的兄弟一点参考。所有的过程都是按照我主观的想法去推进执行的,如果有更好的建议,欢迎交流!

本次分享分为上下两篇文章,分别为产品设计和产品推广两个主题。

二. 起源

首先,我并不是因为我有一个很棒的点子或产品,而选择去裸辞,去独立开发。

而是我因为别的原因选择了裸辞,然后开始把独立开发作为未来的一条路,并尝试去走。

所以,也可以说,一开始我是为了独立开发而去独立开发。

三. 产品选择

既然我没有一个很棒的点子去完成一个产品,那么我就开始去找。

1. 自身条件

首先,为了能够独立开发,我要审视自身,我会什么?

罗列下我的开发技能:

检查下其它独立开发必需技能:

罗列下我熟悉的可以寻找需求的领域:

我能在独立开发过程中投入多少资源:

2. 产品形态

那么,基于开发技能,得出我可以做的产品的形态:

但是考虑到希望以较小的成本来尝试独立开发,和希望能够短期得到收入来验证产品,那么就剩下了

并且还都是离线应用,不需要服务器的支撑,没有太多服务器的额外成本,服务器仅仅需要最小配置用来备案即可。

考虑到付费方式的成本、上架的成本,再排除掉安卓app、Windows/Linux应用程序。

那么就只剩下

3. 产品需求

确定了产品形态,我就要考虑,到底要做什么产品呢?产品需求是什么?

如果我从当下很火但我完全不熟悉的领域去找需求,那我肯定没法挖掘真正的需求。

如果我找一个熟悉某个领域的人咨询,他并没有挖掘需求的能力,无法识别出真正的需求,这一点在我多年的工作中已经见识过太多太多次了,最后完完全全就是一个定制化项目,在市场上根本没有竞争力。

这就要从上述罗列的,我熟悉的领域去找。

所以我把目标放在了“开发”上。“开发”是我最熟悉的领域,在其中这么多年了,需求来源于我自己,我就是用户,我就可以直接验证这个需求是不是伪需求,这个功能是不是好功能。

并且,鉴于我三年前开发过一款开源的Redis GUI Client——RedisFish,积累了一些经验,并且后来因为工作搁置了,导致一直没有完成也心有遗憾。

所以最终决定开发一款Redis GUI for Mac。

四. 市场调研

在决定产品之后,我先去问了一圈我的朋友和前同事,他们正在用的Redis GUI是什么。

得到的回复是如下产品:

其中RedisDesktopManager和AnotherRedisDesktopManager是最多的,毕竟是老牌的强劲产品!

然后,我又去翻了些论坛和帖子,发现有些人在发帖问mac上有哪些推荐的Redis GUI,但是哪怕是老外,也是如下选项居多:

接着,我也去了解了下近期新出的,比如Tiny RDM,听劝作品,真的很棒的,哈哈。

然后还有几个出现在比如gitee等平台的。

所以目前mac原生的也只有Medis2。

最后,我就要说那个经典台词了:没有能够满足我需求的!/盲目自信.jpg

五. 重新构思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步。

Redis GUI 窗口常驻情况下搜索Key步骤对比

所以,我在RedisMate上针对搜索场景,进行了优化,并确实在推广时,得到了不少积极反馈。

并且,基于上述过程,优化了RedisMate的布局和一些细微的功能,让用户能够更直观更快去操作。

2. 挖掘需求

等我后面回过神的时候,才发现我一直有这个需求。

经常性,我要前后端一起开发,由于是微服务,多个节点并发开发和调试,每次都要开超多窗口。

我经常要切换窗口时,要愣一会儿思考一下,我要切什么窗口来着...

所以我就一直在想,能不能省略掉这些窗口,窗口自己呼出然后切回去!

现在RedisMate就可以了,这就解决了我曾经的问题。

然后,我就又想到曾经的一个抱怨,有时候在调试时,代码有点问题,或者业务链路较长,需要联调时间有点长,或者MQ驱动的业务节点产生key有点慢等等,key在我查的时候没有出现。我就要反复调出Redis GUI然后点点点后搜索再点点点,发现不对!调一下代码,再来一遍!

我当时就在想,要是GUI能帮我盯着就好了。

所以,我设计了"Search Util Found"功能,在得到朋友的肯定后,将其加入到了MVP版本中 。

六. 总结

首先,我很庆幸自己这些年学习和玩了不少技术,让我能够在想去独立开发的时候,不仅能够独立完成开发,还能有多种产品形态可以选择。并且我也有意识地去读技术之外的书,让我在其它领域有那么点点基础,只可惜没有学得更多。

其次,我觉得对我而言,苹果生态开发是当前成本最小的方式。

然后,我从我熟悉的领域入手,寻找自己的痛点,验证自己的需求,得到解决方案后,向身边的目标用户寻求验证。

最后,花一个多月开发完MVP版本,推出来验证自己的产品。

七. 最后

感谢你看完这篇文章,希望我的经过能够给你一些参考,帮助到你。

本次分享的下一篇文章——产品推广方面,我正在努力写,敬请期待并关注我以获取更新。

如果你对我的产品RedisMate感兴趣,非常欢迎点击此处了解和下载,或者在mac app store中搜索“RedisMate“。

最后,要感谢各位道上兄弟的关照,给了很多支持和反馈。

还要特别感谢那些购买高级版的兄弟,非常感谢你们的支持!