一人开发会有什么问题?分享两年间挣扎的体会

新年反思一人开发的经验教训,为什么我没做到自以为的 100x 程序员?主要分享给其他有一定技术能力想做独立开发的朋友。

以往在多人团队里,规模最小也有 5、6 个人,单人几乎不会负责非常完整的产品开发。比如,我可能会负责架构、核心功能、技术攻坚等;一些低难度的研发工作多半会教给团队中技术水平较低的同学来做;而不同环境中的验证也会交给专职测试。

如果把我的工作交给初级技术同学,他们可能要花很多时间才能完成,所以给我留下一种错觉,即我是一名 100x 程序员,我的技术能力、效率是有些同学的十倍百倍。但其实这是不对的,因为如果我们都做他们的那份工作,我可能比他们强,担不会差太多,因为很多工作无法通过技术和经验提效,就得堆时间。(也许有 AI 会好一些)

当我来到一人研发的团队里,就要自己负责所有工作,有一些工作我能做、也能保证高效;但有些工作其实换个人也一样,大家都要花足够多的时间才能做好。

另一方面,在多人团队里,很多时候我并不需要把一项工作“做完”。我只要把我负责的部份,通常也是比较阻塞的部份做完就行,剩下的工作会有其他同学负责。所以一方面,我有充足的时间优化、修补自己的工作;另一方面,阻碍项目进展的通常是后面的同学,我可以轻松甩锅。

所以,长久以来,我都认为自己是 100x 开发者,我能高效完成开发工作,我能把产品做得很好。

但是当我来到一人研发团队之后,情况就变了:一个功能能否上线,完全取决于我一个人。

不仅如此,一个功能是否好用、体验如何、能否适配不同的分辨率、浏览器、设备,都完全取决于我。于是没有人可以帮我分担耗时费力的初阶功能,没人可以让我推卸责任,也没有人可以为我争取到更多的时间。

我成为产品开发的第一责任人,也是质量的第一责任人。而我在这个时候,还保留着以前在多人团队里的工作习惯和工作经验。比如说,让我估算研发时间的时候,我会习惯性乐观的估计一个很短的时间,因为我觉得,在多人团队里,我只需要一半的时间,现在我给自己两倍的冗余,怎么也该够了吧?(其实完全不够,4 倍都不够。)

还比如,很多时候我认为一个功能开发完毕,打算交付,其实远没有。因为没有人可以给我提供冗余的时间来二次检查、测试、修复,也没有人帮我扩展使用场景,提前找到未适配的环境。所以这个时候的开发状态其实只有 50%,甚至 40%。远没到能够交付的程度。

这便是我在过去两年里一直痛苦挣扎的原因。也是我跟合作者的冲突所在。

另外,我的自尊心和好胜心在这里也起到反作用。虽然合作者反复劝告我认真评估时间,并且留好余量,但是我看到一些以前只准备花半天一天的研发工作,现在要估算成一天两天,心里实在不爽,于是常常会自行克扣。

于是就变成了,我们商量要做一个功能。我觉得以前 2 天能做完,于是评估现在要 4 天,真实情况其实可能需要 7、8 天。然后合作者问我:行不行啊?给自己留点冗余。接着我脑袋一热,又扣掉 0.5 天,报了 3.5 天。

结果 3.5 天过去,要么场景没覆盖完整,要么存在各种致命 bug。总之,拖来拖去,加班填线,终于在第 5 天甚至第 6 天才把功能做完发布。

而且上线后可能还有未发现的 bug……

新的一年要解决这些问题。我有一些想法,需要慢慢尝试。

首先就是扩充团队。我要尝试增加一些合作者,帮助我处理一些低阶功能,让我能够把高效高阶的能力发挥出来。不过我的财务能力很有限,所以我只能够尝试技术能力变现,即找人帮我干活儿,我来教他们写代码。

更认真、客观的对待项目功能评估。坦诚面对自己的不足、自己能力的限制,认真的做出准确的评估,帮助大家正确理解需求的规模,合理设计产品、功能,做出既有价值又可靠好用的产品。同时给自己创造尽可能宽松的工作环境。

认真对待所有需求。好好研发功能,做好适配,做好测试,做好体验。反正都是我负责,无处甩锅,好好做便是。

真的是:独行快,众行远。

如果您觉得文章内容对您有用,不妨支持我创作更多有价值的分享:


已发布

分类

来自

评论

欢迎吐槽,共同进步

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据