作为一名技术开发人员,拥有创造产品的能力,是我们得天独厚的优势.
现在的互联网企业,就是把一些新的概念和想法,构造成应用,提供服务和数据等来获得收益.
程序员可以开发自己的产品,除了没有公司强大的财力背景,其他的地方并没有什么区别,依然可以打造一个小而完整的生态链.
核心资源
常常一直在思考,什么才是一个程序员最核心的资源?
它既是你的资产,也是能力的证明,可以打包带走,也可以分享给他人.
我们可以开发软件应用,也可以录制视频教程和出版书籍等信息产品.
教程和书籍能够扩大我们的影响力,带来一定的收入,可它们不足以构建一个企业.
线上教育类型的企业到是符合,但是这远不是一个单兵作战能够胜任的.
而软件才是大多数互联网公司的基础和核心,对于程序员的意义也同样如此.
最小化应用
软件开发应该秉着快速创建,小步迭代,持续优化的原则.
快速创建一个最小化应用,先开发核心功能,再逐步扩展.
这个应用可以没有登录,没有支付,没有分享,没有其他附加属性,只有我们最初的想法和创意.
最小化应用有以下好处:
-
用极短的时间创建并发布一个,快速触达用户,甚至快到只需要十几分钟或者几个小时.
-
获取产品使用数据和用户建议及反馈,数据分析有助于了解市场,用户的反馈是持续扩展的前提.
-
产品矩阵和占位,互联网应用千千万,相似的太多,好的创意都已经被别人实现了,谁先谁就可能赢.
举个栗子
我的第一款产品是一个chrome
扩展,名称叫做click nice
当时在查找html
模板资源的时候,看到了鼠标指针图标的推荐,觉得很是好看.
然后在替换鼠标指针的时候,发现不仅要在电脑系统设置中修改光标文件,而且修改之后所有的地方鼠标指针都变成同一样式,可我只需要在浏览网页时替换光标即可,并且支持随意更换,省去繁琐的设置过程.
这个时候,就产生了自己制作chrome
扩展的想法,花费了大概一天时间,完成了第一个应用.
后来,为了使用番茄工作法写了小程序番茄钟,为了学习React
,写了App
简易计算器,为了查看照片元信息,写了网站Exif元信息
,为了记录属于自己的私有笔记,写了云笔记,学习python
,开发了桌面应用微信机器人等,还有一些其他应用就不一一列举了.
有些已经失效不再维护,有些正在自己使用,有的尝试分享或者商业化.
服务集成
我有一个好点子,就差一个程序员了.
程序员也仅仅只需要一个好的创意就足够开发一个优秀的产品.
产品知识简单学习即可,设计有现成的第三方UI
框架,测试可以自己复测,后端可以使用serverLess
云服务.
你能想到的一切,都有第三方提供服务,只需要一定的费用,也可以部分外包.
总而言之,能用框架的用框架,能用服务的用服务,尽可能负责核心功能的开发和维护,弱化对其他环节的依赖.
这能保证我们的应用在初期快速而相对完整.
当产品第一版发布,就可以开始扩展和优化,完善到一定程度时,就可以尝试使用自己的技术重构,减少对第三方的依赖.
作为一个练手产品,我们更多的是注重技术的学习和熟练运用,作为一个商业产品,我们应该注重的是实际功能和市场价值.
所以作为一个独立开发者,要根据具体情况分析产品的开发过程,依据时间和财力等因素选择适合自己的一套方案.
持续开发
还是一句经常提到的话,程序员不要陷入技术思维,也要具备商业思维和其他能力.
我们学习技术是为了更好的生活,不是为了学而学,学习就是为了使用,不论是工作还是其他.
开发一个产品就是除了工作以外,学习技术发挥作用的真正载体,这个过程可能持续几天甚至好几年.
一般情况下,三个月为一个产品的完整开发周期,当产品基本完成后,剩下的就是日常维护和新功能的添加等.
独立开发也分为产品开发周期,到后期维护阶段,时代发展太快,用户需求也一直在变.
持续开发能使我们的技术和能力一直顺应市场和变化,和完成一个足够优秀的自己的产品.
一些问题
市场上有很多符合我们需求的产品,为什么还要开发一款类似的应用呢?
从个人角度上讲,原因有很多,最主要的是软件对数据和隐私的收集,谁也不希望用个计算器,手电筒等工具型应用等,都把自己的老底给扒个干净.
本质上免费和付费的服务都是或多或少出售了用户的隐私和数据,你没得选.
从用户体验上讲,不喜欢无处不在的广告,不喜欢设计的操作流程,或者功能不足以满足等,谁也不想广告一直粘着你的眼睛.
从开发角度来讲,我们可以设计的更好看,功能更完善,甚至比对方便宜或者免费,不受对方限制,拥有更多的自定义的权利.
创建产品可以学习开发技术,可以解决某些痛点,可以将其商业化,可以成为独属于自己的核心资源.