自己个人或者跟朋友一块做过很多小项目,它们中大部分都是搞到一半不了了之。能完工的不多,至今在用的更少。总结一下主要原因有几个:

  1. 自己用不上。可能项目本身开发过程很有趣,但是产出的产品自己却不会用。
    • 比如跟朋友一块做生成Gif聊天动图表情的小程序,但是我基本不怎么用微信聊天。
  2. 思考太少,动手太快。
    • 可能仅仅是拉屎的时候灵光乍现,回到电脑前就开始建项目目录,写一天代码,晚上睡觉前刷刷github发现有别人实现的更好的工具,感觉自己搞下去没意思,不干了。
  3. 功能过度设计,工作量远超预期。起念想时觉得是个小项目,做了几天发现事情并没那么简单...
    • 一边开发一边添加新功能... 哎,这程序架构实现功能X不是分分钟吗,顺手加上。
  4. 舍本逐末。享受开发过程,不追求结果... 怎么说,这是个人爱好...
    • 项目还没开始整,先考虑注册域名,选哪家VPS,用什么Linux发行版,再琢磨用个什么新出的开发语言/框架...可能当时觉得搞项目有一大半的乐趣就是整这些没用的,结果乐趣先享受了,项目废了,域名还在手里,VPS买了一年还不能退。至今手里还有上古项目遗留的域名。
    • 不追求尽快把功能搞出来,而是以反复重构代码为乐趣...
    • 不先把核心功能整出来,先搞用户注册登录这种边缘系统,没意思、没成就感,核心功能还没写,热情耗没了,项目over,留下一个孤独的用户登录界面。
    • 比如在开发Myblog的音乐播放功能时先想的是去哪下载mp3,以及要不要写个下载工具...幸亏突然意识到自己的毛病,及时打住,否则这个功能要烂尾,我又多了一个吃灰的mp3下载工具。
  5. 懒,信息录入这种需要重复性劳动的活不想干,也不想麻烦别人。这种项目以后压根不考虑。

反思:如果想尽可能减少烂尾项目,最好:

  1. 项目产出的产品自己会频繁使用。
  2. 不着急动手,前期花时间构思产品功能,技术选型。
  3. 功能分期开发,第一期仅实现核心特色功能。
  4. 尽快出一个DEMO,肯定不完美,甚至代码写的一坨💩。

S208 朱雀山S208 朱雀山