软件项目需要很多人一起完成可能是一个骗局
本文的标题只是一个猜想,并不是我坚信的观点。事实上,我这几年自觉学到的重要东西之一,就是如何在开发过程中分工,如何信任队友开发的组件,如何组织许多人做同一个项目。
可是,如果这是一个骗局呢?那也未尝不是一种可能。
这个世界上我们需要做的软件可能没有太多真正庞大到需要很多人合作才做的出来。需要配置产品经理,需要设计人员,需要前端开发,后端开发等等。
更多时候,你需要很多人一起来完成仅仅是因为别人都这样在做。或者是,你缺乏某方面的专业知识,需要属于这个领域的人。又或者是有些工作很枯燥,你需要一个只是打工的人来帮你完成这些枯燥的你不想干的部分。也可能是你的老板觉得你进度太慢,觉得必须想办法加快进度,他觉得增加人手或许可以……
如果你真的一个人做一个别人看起来了不起的大项目,结果要么就是被膜拜(几率很小),要么就是被嘲笑成小作坊思维。你可能也很累,觉得在做那些不得不自己做的体力活时,盼望有人帮你解脱一下。
实际上,如果你抱着己所不欲,勿施于人的思想,怎么能把自己不愿意干的活推给别人呢?当是一个团队开发的时候,这块工作不属于我就成了一个很好的借口。其实,如果一个工作过于枯燥繁琐,其实说明的是没有找到好的方法让机器代劳而已。
如果缺乏某些领域知识,对于程序员,更重要的是自己去学习,掌握它。
产品经理?如果你爱你做的软件,你就是他最忠实的用户,你比所有人都明白你需要这个软件有什么功能,怎样才好用。
如果打一开始,你就打定主义自己包干所有的活,就好象 google 当年,因为不懂 HTML ,就设计了那么一个阳春白雪的首页,用 GIMP 随便做一个 logo 一样。如果你给自己断了后路,任何活都没有人代劳,你自己就咬紧牙关自己去做了。其实整个项目的总体开发时间,未必比一个好的团队来开发长多少。当然,比一个糟糕团队花的时间肯定要少的多。
成功率也未必很低。软件质量你心里明白,它只取决于你自己的能力。
我知道,开发软件全部由一个人亲力亲为听起来很糟糕。只是,大多数人都不相信,团队开发或许更糟糕。把一个项目加到足够多的人手后,看起来就勉强可以运转了(我听说的谣言: IBM 开发维护一个软件就是用一个集团军的),不会有人会相信其实所有事情一个人来做就够了。
只是随便想想而已。
我觉得吧,如果你真打算一个人做点东西的话,最大的敌人不是你个人的精力不够;而是不够坚定,总想以后会有人进来一起干。
你获得的好处是,不会有人跟你争论设计方案,不会有人讨厌你的编码规范。如果你发现做错了,通宵改掉就行,不用担心其他人的开发受到影响。过程本身,无论是苦是乐,都是值得回忆的记忆,乐趣不在于最后的结果。而且,做完了,东西再烂,你也至少拥有一个用户。