一个项目的从创意到发布上线,需要多少人最合适?

  有时候我在工作中嘲笑我们的项目牵扯了太多人。这个项目大约需要三个月,包括我和另一个程序员还有 20 – 30 个其他人可以算进来。由数不清的副总(VP)经过大约 6 个月的评审之后,所有的需求都定妥了,但变更还是不断出现。 最重要的是,它跟另一个团队的项目没什么区别(但是代码却不能重用),而那个项目已经快要发布了。

  为什么要这么多人?为什么大公司要用大团队做出不那么大的东西,这真是个谜。我得出的结论是,你给一个项目投入的人越多,你就需要越多的人来管理这些人,再加上管理这些管理者的人,等等等等。“团队越大,人数就越多;人数越多,团队就越大。”

  回顾1988年,我们开发了 Deltagraph,在图表/图形打印细分市场曾处于领先地位。但整个团队只是 4 个程序员,还有一个负责我们项目的 QA,而软件发行商则有一个 QA 和一个产品经理。就这些人,做出的产品在大小和复杂程度上接近1993年前的 Excel。直到我们开发产品的最后一个版本时,发行商才给我们加了几个人。

  我之前第三个工作是在一家知名旅游公司(可惜现在是别人的了),全球有1000名左右的员工。我们的移动开发团队有20个人左右,但是截至去年我们就提升销售额 15%,如果我们继续做下去将可以达到到 20% 。我们维护 7 个不同的应用(原生和web端)和一个移动 API。有QA,有产品经理,设计师和程序员,多数时间在一处工作,由一个经理全权管理。我们的 API 和 web 应用是自己在 AWS 上搭建的。公司其他部分在美国和欧洲各有一个主网站。我们每年平均发布 70 -80 次,主网站一年也改不了几次。

  我以前讲到过一款app,我们用很少的人、花了两个月开发的,而且app会成为什么样一开始也无从得知。 (原网址如果无法打开,可参考 bing.com 缓存页 )

  我作技术顾问(不是承包商)的时候,工作内容是帮助客户解决问题,经常是一个人同时当分析师,项目经理,架构师,程序员和 DBA,有时还不得不设计非计算机系统的流程。我记得我们用了近一年时间参与一个大项目,只有两个人,什么都做。

  有时我惊讶于小型初创公司没有多少人、仅一点点管理就作出让人叫绝的产品,但由于我也有过类似经历,至少我能想象他们是怎么做到的。我一直认为最小规模的团队能实现卓越的产品,只要能掌控做什么、怎么做。通常大公司的情况是每个人都要控制所有事,大规模的精细分工,仅仅是为了让众多团队都能分一杯羹。

  项目里的人越多,你需要的沟通和管理就越多,信息传递和问题报告就越慢。你必须用更多的流程来确保工作得以完成。当然,耗费的时间和金钱也更多,所以你经常要舍弃产品特性,只是为了把东西发布出来。任何需要管理一大堆人的负责人,都会担心难以预料的问题突然冒出来咬他们一口,所以决策就变得保守和谨慎。很自然地,这会让发布产品既困难、又费钱,而且经常拖延很久。再加上以前有着类似问题的项目留下的阴影,工作会更加的小心谨慎、慢慢吞吞。

  相比之下,小型创业公司就不会受限于谨慎的作风、繁琐的流程、孤立的管理和忧虑。即使我们那个旅游移动项目组也甘冒风险,使用小团队、尝试 AWS 这样的新事物而不是自行建造一个帝国,尽管我们处于一个庞大笨重的商业实体内。我们是在这样的条件下做到的:在一开始就没有任何管理上的支持,只是希望把移动产品推出来赶个时髦,这使得团队保持精干,同时带来了越来越多的销售额。

  看看政府项目,你会禁不住笑话他们,搞那么多人来管所有事情。我记得在咨询公司工作的时候,有两个人为美国国防部的一个项目工作,从主承包商那儿算下来,他们大概是四或五级分包商。经常的情况是,他们不知道发生了什么也不知道该做什么。最近的一个笑话是 TSA(Transportation Security Administration,美国运输安全管理局)花了 $350,000 做的 app,除了两个箭头和一个 random() 调用什么都没有,这个例子也太搞笑了。有个地方,我曾在那儿做架构师,他们有个项目我预估需要 2 个人周的编码。他们花了六个月、经过几十次的会议和一份 120 页的需求文档,得出了同样的结论。我们本可以把这 app 做十次还多,而那些人在会上都干了什么呢?

  有些跟我合作的人,他们几乎没空写代码,总是被繁多的会议和电话缠身,根本无法再胜任工程师工作。时间都耗费在协调、解释、计划、争执和筹备那些一成不变的事情上,根本没有多少时间用于产出。

  谢天谢地,在我整个 35 年的程序员生涯里参与的唯一一个大型团队项目,是在墨西哥的一次三个月的“死亡之旅”,结果最后什么也没做出来。有时候,你需要更多的人和更详细的计划,比如开发一个 OS,但多数时候更少的人始终是更好的。再强调一次,只要这几个人能掌控做什么、怎么做。你不能使用最小团队然后把流程、标准、报告和会议等一股脑的堆过来还指望他们出活儿。

  我现在工作的地方,即使代码写完了,也还是要跟好几个小组见面、评审、填表、协调、得到不同的 VP 签字,才能进行下一步,哪怕发布到测试环境也是如此。搞这么多的流程真是疯了。我猜其他的地方也没什么区别甚至更糟糕吧,这也确实增加了不少就业机会。

  我还肯定,很多人认为所有的这些审慎的复杂性是必须的,或至少让高层感觉更稳妥。有时候这些也许是必须的(我从未给核电站写过代码),但是我见过的所有大型团队项目里,多数从未真正让参与的人发挥全部作用。

  如果你有一个具有大量自主权的极其精干的团队,你的成就将超出你的想象。但是公司是不愿意冒这个险的,他们更喜欢建立一个帝国,臣民的责任范围越来越窄,这样就能让更多的人参与,并且让领导层自我感觉重要。你真的需要创新/设计、动画、模仿、项目管理、产品管理、发行管理、开发管理、推广管理、运维、DBA、多层的QA还有其他我压根儿不知道的东西,加上好几层 VP,来发布一个只需两个程序员的作品吗?

  我打赌你不会的。我怀念那些小团队、大产出的日子。

时间: 2024-10-03 22:41:41

一个项目的从创意到发布上线,需要多少人最合适?的相关文章

vs2010 C# 如何将类做成DLL 再从另一个项目中使用这个类

vs2010 C# 如何将类做成DLL 再从另一个项目中使用这个类 2011-10-20 12:00 486人阅读 评论(0) 收藏 举报 一.将类做成DLL 方法一: 你可以通过在命令行下用命令将以 xxx.cs的文件直接生成为DLL文件 方法二:通过visual studio2010 新建立一个项目,选择为“类库”,然后在这里可以写用户自己的类. 二.引用DLL 在项目中,打开“解决方案资源管理器”,右键“引用”-->“添加引用”-->“浏览” 然后从主机的目录中找到DLL 之后在你的项目

前段时间,接手一个项目使用的是原始的jdbc作为数据库的访问,发布到服务器上在运行了一段时间之后总是会出现无法访问的情况,登录到服务器,查看tomcat日志发现总是报如下的错误。    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected est

前段时间,接手一个项目使用的是原始的jdbc作为数据库的访问,发布到服务器上在运行了一段时间之后总是会出现无法访问的情况,登录到服务器,查看tomcat日志发现总是报如下的错误. Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too man

谈谈产品从创意到落地上线的过程步骤,以游戏社区为例

做产品的都知道一个梗,我有了一个很好的产品创意,只差一个程序员帮我实现了.事实上从产品创意到落地上线,中间需要经过非常复杂的过程,如何落地是真正的难点,创意本身并不值钱.本文以一个游戏社区为例,谈谈从创意到上线的整个流程. 本文的案件是我参与过的一个项目,内容是我总结出的经验.本人产品刚入门,以下内容欢迎新人探讨,大牛请笑看. 当我们有一个产品的想法.创意之后,经过一个完整的产品策划流程,将产品最终上线.落地.整个产品设计的流程,大致可以概括为这么几个步骤. 首先是市场分析调研,综合分析市场环境

如何做好一个项目

一.如何评价? 如何评价项目的好坏(从客户角度) 功能:按期,效益,体验,稳定性(性能),扩展 按期完成功能是一定的,不然会被辞退,绩效考核才是最重要的 稳定性的指标:可用性 绩效考核指标:(分钟-故障分钟)/总分钟 一个项目的开发流程: 需求(文档) ->>>原型(需求可行性) ->>>设计(技术选型)(技术,测试人员测试,UI设计) UI,里程碑,原型对客户重要,影响体验 ->>>分工开发(分阶段,里程碑,哪个阶段完成哪些东西) 二.如何做好项目/

eclipse下修改项目名导致tomcat内发布名不一致的解决方法

这几天做了一个项目,后来因为一点原因需要修改Javaweb项目的名称,点击项目的名称->右键Refactor->Rename...  输入要修改的项目名称,保存后,部署到tomcat,突然发现eclipse下修改项目名导致tomcat内发布名不一致了 ,郁闷了,开始在网上找到解决办法,我是看 http://blog.chinaunix.net/uid-25820084-id-3531608.html 这个网站的kimutaku001的ChinaUnix博客位朋友的博客,解决了这个问题,我吧他说

项目管理心得:一个项目经理的个人体会、经验总结(zz)

本人做项目经理工作多年,感到做这个工作最要紧的就是要明白什么是因地制宜.因势利导,只有最合适的,没有什么叫对的,什么叫错的,项目经理最忌讳 的就是完美主义倾向,尤其是做技术人员出身的,喜欢寻找标准答案,耽误了工作进度,也迷茫了自己.以下是本人一些做项目的个人体会,写出来供大家指点,在 讨论过程中共同提高水平. 项目开始阶段是一个最重要的阶段.项目经理在接手一个新项目的时候,首先要尽可能地多从各个方面了解项目的情况,如: 1. 这个项目是什么项目,具体大概做什么事情,是谁提出来的,目的是解决什么问

初入前端,面对一个项目应注意哪些?

前言: 对于初入职场的前端小白来说,一整个项目来了,顿时感觉压力山大,张皇失措,也总会感到手忙脚乱.其实不用怕,拆分步骤,把每个步骤做好,做细,一切都迎刃而解,犹如顺藤摸瓜般畅快淋漓. 目录: 概念的介绍(可略) 项目分哪几个阶段(每个阶段注意什么) 如何排期 解决问题的方法 概念的介绍: PM(产品经理)负责需求的提出和项目的引导.PM根据产品特点和发展目标提出一定的需求,并协调各方资源投入开发.若需求层面有不清晰的地方,应当向PM沟通确认,如:需要做什么.希望达到什么效果.哪些内容应重点保证

Java转iOS-第一个项目总结(2):遇到问题和解决方案

目录1.UITableView滑动卡顿的优化 2.右滑手势返回 3.添加页面统计 4.debug版和release版 5.关于页面刷新 6.关于页面布局 7.推荐博客 遇到问题和解决方案 本文是Java转iOS-第一个项目总结(1)?的内容补充,分析遇到的一些问题和解决方案,分享一些收获. 1.UITableView滑动卡顿的优化 因为 `UITableView`的cell中有很多图片,在4/4s上滑动比较卡,最开始觉得是机器太老了,但是对比微信和QQ空间,发现还是我们的问题,所以后期进行了优化

<转>Java转iOS-第一个项目总结(2):遇到问题和解决方案

目录1.UITableView滑动卡顿的优化 2.右滑手势返回 3.添加页面统计 4.debug版和release版 5.关于页面刷新 6.关于页面布局 7.推荐博客 遇到问题和解决方案 本文是Java转iOS-第一个项目总结(1)?的内容补充,分析遇到的一些问题和解决方案,分享一些收获. 1.UITableView滑动卡顿的优化 因为 `UITableView`的cell中有很多图片,在4/4s上滑动比较卡,最开始觉得是机器太老了,但是对比微信和QQ空间,发现还是我们的问题,所以后期进行了优化