星的天空的博客

种一颗树,最好的时间是十年前,其次是现在。

0%

对独立开发的思考

独立开发经历

第一个小程序项目

我在17年的时候买人生的第一套房,是一套二手房,当时对二手房的各项交易费用一知半解,感觉自己就像一头屠宰桌上的猪,任人宰割。刚好那个时候微信小程序开始兴起,基于学习兴趣和需求,做了一个计算购房费用的小程序(在微信上搜索“首付款计算器”可以看到)。做出来后找了一个中介朋友,让他以激活码的方式帮我销售,收入五五分成,他帮我销售了几份后反馈有的客户没法安装(微信版本异常),有的客户有异常问题(非技术问题)。那个时候刚好工作比较忙,又觉得整这些事情太麻烦了(收益低),就没有更新和维护这个项目了。

第二个跨平台项目

在20年的时候,由于年龄的逐渐增长,开始考虑去扩展一些额外的收入点。那个时候刚好在学习Flutter,就想用Flutter对之前的项目进行重构,做市面上最专业的购房费用计算器。当时的初衷是想从开发到发布,系统的学习一项新技能,另外就是看能不能赚点钱。但是实际情况和我预想的有点偏差,我增加了很多预想之外的需求。

一开始只想支持长沙的新房和二手房费用计算,但是做到后面想支持北上广深,因为这意味着更大的市场。为了支持不同城市,我对计算层进行了重构,引入了词法分析,支持不同的城市根据配置数据进行费用计算(不同城市的费用不一样),而这又引入了新的问题,配置下发和更新需要接口提供支持。
然后我决定用Go开发后台,我自学了Go的语法和Beego框架,然后又学习了Docker,编写了部署脚本,把后台部署在了自己购买的云服务器上面。

后面想到都有接口了,干脆开发一套用户体系,对计算结果进行收藏和管理吧,于是开发了用户体系,对计算层又进行了修改,支持修改和列表显示,加入了版本升级、用户反馈等常规功能。

这些对于技术人来说,都是轻车熟路,不熟悉的地方查查文档也能解决。最麻烦的地方在于不同城市的费用计算规则,一般人觉得购房就是一些税费什么的很简单,但是我当时是想做市面上最专业的购房计算器,需要支持住宅、商业的计算,然后购房者、卖房者有个人(非中国籍、中国籍)、公司(大公司、小公司)、机构等各种情况,实际上是非常复杂的。我伪装成购房者在各大购房平台咨询中介费用问题,但是有些问题中介也不清楚,还有些问题不同中介回复的不一样,最终没有办法,只有跑到当地的房管局进行咨询确认,所以最终这个项目只支持了长沙和深圳的费用计算。

项目完成后iOS端顺利发布到了AppStore,Android端在各大应用商店发布需要软著,后面就没有发了,自己通过云存储部署了一个简单的H5页面来进行Android端的分发。在这里不得不说AppStore的强大,在我没有做推广的情况下,还是有一定的下载量(付费下载),让我收回了购买Apple开发者账号的成本。

对独立开发的反思

以上是我做项目的前期,但是我完全没有考虑清楚项目后期的事情,那就是维护和营销。在我们的工作中,经常接触到这两个词,也知道是什么意思,但是在自己的个人项目中,你对这两个词有可能会有完全不一样的理解。我开始思考自己这个项目的意义,是用于学习技术还是为了赚钱?是为了做一个好的产品还是为了炫技?

所幸我看了一篇公众号文章和软件开发相关的一些思考,作者叫liuyubobobo,我很喜欢的一位开发者。文章中有一小段视频:97年乔布斯回归苹果时,被程序员当众嘲讽不懂技术,看他如何巧妙回应?,我觉得自己就像是这个视频中的程序员,讲着一堆牛逼的技术术语,但实际上却不知道如何做好一个项目。后面经过思考,我发现自己犯了如下错误:

  1. 没有想清楚是要学习还是要赚钱。抱着又想学习又想赚钱的想法,两头都没有做好。
  2. 盲目的给项目引入了过多的技术,导致后续维护成本很高。个人开发者没有必要维护自己的后台,更没有必要维护一套自建的用户体系,使用对应平台的云接口,稳定,开发效率高。
  3. 进入了一个自己不熟悉的领域(房产),我需要学习新的知识,还要跟上数据更新的步伐,不停的去学习。我分析一些做的好的个人开发者,都是做的工具类的软件,不需要把精力花费在陌生领域的学习,可以把精力集中在打磨产品的体验方面。
  4. 选择以App的承载方式来做这个项目是错误的,微信小程序才是最好的方案。(给好几个朋友推荐,都是反问,你为什么不做成微信小程序类?)

总结

做一个好的产品,应该从用户体验出发,去思考能给用户提供什么?能给用户带来什么?然后再倒推用什么技术,在人力与资源受限时,我们要学会借力于平台,使用稳定可靠的技术。让用户打开我们产品的时候,都会说:太好了,这就是我想要的!而不是坐在那里,想着自己有什么吊炸天的技术,然后怎么把它卖出去。
另外关于营销,我觉得其中的学问是不亚于技术的,需要持续的学习和实践,像我17年的小程序项目那样,能找到一个专业的销售人员绑定在一起,对产品的销售是很有帮助的。

附录