做一个真正能用的工具,比想象中难
最近做完了一个课程资源管理的小工具,从有想法到能用,前后断断续续花了两个多月。做完最大的感受就是:做一个真正能用的工具,比我想象中难多了。
一开始想得挺简单的,不就是把数据存进去,然后搜出来吗?能有多难?真正动手做了才发现,里面的门道太多了。
想得出来和做得出来,是两回事
我相信很多人都有过类似的经历:脑子里有一个想法,觉得特别棒,"要是有这么一个工具就好了"。然后兴致勃勃地开始做,做着做着就发现,怎么跟想的不一样?
问题出在哪?出在想法是模糊的、笼统的,而实现是具体的、琐碎的。
你说"我要做一个搜索功能"——听起来很简单。但仔细一想:搜哪些字段?结果怎么排序?搜不到怎么办?支持模糊匹配吗?中英文混搜能行吗?搜索历史要不要记?
每一个"听起来简单"的功能,拆解开都是一堆具体的问题。而这些问题,你不想清楚,工具就做不出来;想不清楚,做出来就不好用。
这大概就是"想得出来"和"做得出来"之间的鸿沟吧。
最难的不是技术,是想清楚需求
做这个工具的过程中,我最大的感触是:技术问题其实都好解决,大不了搜一下、问一下AI,总能找到办法。真正难的,是想清楚自己到底要什么。
举个例子,分类体系怎么设计?
一开始我想按领域分,分着分着发现有些资源横跨好几个领域;那按类型分?又觉得类型太粗,找不到具体内容;按难度分?难度这个东西太主观了,同一份资料不同的人感受完全不一样。
前后改了三版分类,才找到一个相对合理的方案。而这个过程,跟技术一毛钱关系都没有,纯纯是对需求的理解和思考。
还有很多类似的问题:
- 一条资源应该有哪些字段?哪些是必填的?哪些是可选的?
- 列表页展示多少信息合适?多了乱,少了不够
- 详情页放哪些内容?关联推荐怎么算"相关"?
- 搜索结果一页显示几条?需不需要分页?
这些问题没有标准答案,只能自己琢磨、自己试、自己迭代。
用户思维,说着容易做着难
我们常说做产品要有用户思维,要站在用户的角度想问题。但真的自己做的时候才发现,跳出自己的视角太难了。
我做第一版的时候,觉得界面挺清楚的,功能一目了然。后来给一个朋友试用,他打开页面第一句话是:"我该干嘛?"
我当时愣了一下——这不是很明显吗?搜索框在那儿,分类在旁边,点进去就能看详情啊。但站在第一次用的人的角度,确实,面对一个陌生的界面,你不知道从哪里开始。
后来我加了新手引导、优化了首页布局、把最常用的功能放在最显眼的位置。再给朋友看,他说嗯,这次知道怎么用了。
这件事给我的触动挺大的。你对自己做的东西太熟悉了,熟悉到看不见问题所在。就像鱼看不见水一样。
所以说,做工具不能闭门造车。哪怕只是找一两个人试用一下,得到的反馈都比自己闷头想强得多。
细节是魔鬼,也是门槛
以前用别人做的工具,总觉得"这功能这么简单,怎么不做好一点"。自己做了才知道,每一个细节的打磨,都是时间和精力堆出来的。
比如搜索框里的提示文字,放"请输入关键词"还是"搜索课程、讲师、标签..."?看起来是小事,但后者能让用户更清楚能搜什么。
比如列表的排序,默认按时间倒序还是按浏览量?各有各的道理,取决于使用场景。
比如空状态的提示,搜不到结果的时候是只说"暂无数据",还是顺便推荐几条热门资源?体验差很多。
这些细节,单独拎出来都不是什么大事。但几十个、上百个细节堆在一起,就决定了一个工具好不好用。
而且这些细节没有捷径,只能一个个去想、去试、去改。所谓的"产品打磨",磨的就是这些东西。
做工具的过程,也是梳理自己的过程
说了这么多难的地方,其实做这个工具也有很多意外的收获。
最大的收获是,在整理资源、设计分类的过程中,我把自己这些年积累的学习资料都过了一遍。哪些是真正有价值的,哪些是存了就再也没看过的,哪些之间是有关联的——这些以前稀里糊涂的事情,一下子清晰了。
这有点像整理房间。东西乱的时候,你甚至不知道自己有什么。收拾一遍,该扔的扔,该留的留,该归类的归类,整个人都清爽了。
还有一个收获是,对"工具"这件事有了更深的理解。
以前我觉得工具就是提高效率的。现在觉得不止于此。好的工具,其实是在帮你建立一种秩序感——把混乱的东西变得有条理,把模糊的东西变得清晰,把重复的事情变得自动化。
而秩序感,能让人心里踏实。
最后
这个工具现在也只是"能用"的状态,离"好用"还有不小的距离。后面还会继续迭代,有新的想法就慢慢加进去。
但我已经挺满足了。毕竟,能做出一个自己每天都在用的工具,这种成就感是实实在在的。
如果你也有什么想做的小东西,我的建议是:别想太多,先做出来再说。第一版肯定不完美,但做着做着,你就知道该怎么改进了。
很多事情,难的不是做,是开始。