估计没有人会愿意,甚至喜欢去做那种会让你不死也活脱脱掉层皮的苦项目,没日没夜人如机器扳高速在运转,即便最后项目最终做成了,整个项目组的人也在过程中被折腾得不成人形。或许能够把人做到吐血,以至于丢掉小命的项目不少人曾经遇到过。我把这种项目叫成骨头项目,虽然不少人喜欢啃骨头,特别是硬骨头,在多番尝试努力之后咬到嘴里的肉吃起来别有味道,更有快感,但是这种快感需要付出更多的代价。
什么样的项目会让你在过程中做得比较轻松自如,游刃有余呢?需求明确,开发进度合理,技术风险可控,人员配备到位且团队士气活跃,多方条件一一具备之下,或许你的项目会如大块吃肉一般,过程和结果都那么愉悦,但是这样的项目对于绝大部分的人来说,应该说一个一个美好的梦想。
有没有这种吃肉形的项目呢?有,但是为数不多,至少自己工作了这么多年,也就那么一两次,而且还是10人/月之下的小项目。记忆比较清晰的是一个数据库迁移项目,主要是更具需求完成Oracle 存储过程开发工作,整个项目是4人/月的开发工数,但是投入了2个Senior Engineer,2个Middle Engineer和1个Junior Engineer进行开发,那个时候公司的项目不紧张,人员资源也就稍微富足一点。5个人做了1个月(实际投入工数是5人/月,超过项目预算),由于客户需要我们完成存储过程的开发和测试数据和测试报告,要求测试数据的覆盖率需要100%,时间和人员都比较充裕的情况下,我们想了一个办法来测试存储过程的覆盖率,我们用C#的按照存储过程的逻辑重新编写,然后用Nunit和Nconver结合的方式确保我们构造的数据的覆盖率达到百分百。在生成测试报告的时候,我们又用Excel的VBScript脚本编写模板,自动导出数据和做成报告。这个项目在两个方法被实现后,后期的工作非常轻松,特别是整个项目的质量非常高,客户没有提出过一个Bug。也只有这样的项目配备和人员结果才能让我们有时间思考和尝试如何做得更好,做到最后就像吃肉般的舒服,对于其它的都是在一次一次地啃骨头,甚至鸡肋,我们在做项目的时候容不得自己挑挑拣拣,所以即便明知食之无味,但是公司不会丢弃。我们也只能硬着头皮顶上去,这个时候感觉自己如果是在炮火霏霏的战场上,自己怀里估计就揣了一杆木枪,还在奋力冲刺。
从早上收到邮件说关于美国医疗领域的那个项目的合同已经基本确定,目前已经可以确定的规模大概有120人/月,这些和上周在周会上的得到的情报基本吻合。只是今天比较明确的是这个项目将会交给我的开发团队来处理,而且客户希望能够在8个月内能够完成项目的开发工作,后续有2-3个月的客户试用测试、交付使用和问题对应阶段。
邮件附件中有一些关于这个项目的简单介绍,项目主要是客户希望能够给美国的医院提供在线服务的功能,能够为医院里面的医生提供在线办公,同时病人提供在线看病和病历管理的服务。邮件里面的内容比较简单,大概地介绍了一下项目的目的和希望,还有几张简单的项目结构示意说明图。
看着邮件和那几片概述性的论述文字,感觉像对着一颗定时炸弹。120人/月,8个月开内完成,还不包括2-3个月的需求调研时间,实际的开发时间也就是5个月。120人/月的工数中,开发估计在100人/月左右,那至少也需要20个人才能够在5个月内完成开发。这种小学的加减乘除地算法在我的脑子来回运算着,越算越感觉到时间紧迫。
“一场艰苦的战。”在自己心里冒出的直观感觉,我深深吸了口气,便站起身准备找项目总监去,对于这个项目的一些事情我需要和他确认清楚。
我把项目总监约到了会议室,还没有等我坐下,他就先开口问道:“早上发给你的邮件你看过了吗?”
“嗯。”
“那好,我们现在可以先着手准备,预计合同很快就会签下来,然后在下月初估计整个项目就会开始。”
“嗯,这个项目已经最终确定交给我们团队来做吗?”我还在需要再次确认这个问题。
“是的,关于人员方面的问题我们也在考虑。到时候会给你协调其它团队的开发人员和部分外驻开发人员。”
“外驻?”听到这个自己感觉压力更大,因为之前的项目中用到过外驻人员,也就是其它公司外派到我们这里,临时性的加入开发,这样的人员在项目中的风险很大,不容易管理。
“是的,这个项目需求,开发和测试的人员都加在一起,预计会有20人左右,从公司目前的人员状况来看,我们只能使用部分外驻人员参与开发。但是我们还是计划再招聘一到两个的Senior级别的开发人员补充到你的团队中。”
从公司的角度来考虑,对于这种项目的确会希望使用外驻人员的参与,因为为了一个项目一下子把一个团队从目前的7个人一下扩充到20人,一旦项目结束之后,那后续补充进来的人员的安置也就有一定的问题,所以基于成本的考虑,公司的做法倒也合情合理。