真的是最后期限吗?

在项目制软件开发中,工程师和项目主管的主要压力来自于最后期限(deadline)。

有人或许说主要压力是来自于技术难点,但是事实上没有解决不了的问题,要么将技术难点攻克,要么绕过技术难点用其他的解决方案。问题在于解决技术难点需要时间,而这会让本不太多的项目时间更进一步逼近最后期限,而“按时交付”是评价一个项目成败的关键因素,所以压力由此而生。

不过,最后期限有时候是可以主动把握的。下面看我们的案例:

项目性质:技术外包

项目背景:长期外包合作

项目收款方式:按人头按天算酬

其中项目收款方式非常重要,直接决定商业开发应该如何进行。

1. 项目一次性付款

即一个项目一次性谈好需要多少钱,需要多少时间。那么这样最后期限已经基本板上钉钉,除非需求变更或者其他情况那么最后期限不会改变。

客户这么想:反正钱总是那么多,只要在合同规定期限内保证质量地完成就可以了。但是如果项目超过期限,那我们就要讨价还价了,找机会还找开发商捞点什么过来。

开发商这么想:只要钱到手了,在规定期限内保证主要功能完成就行,细枝末节的以及一些合同上没写明的灰色地带可以留在以后“维护阶段”进行。当然“维护阶段”是另外收费的。

项目经理这么想:只要安排好进度有条不紊地进行就可以了。技术难点得先通过demo的形式好好研究,只要解决方案可行就OK。。等等,怎么销售签的合同里面项目时长这么短?(销售想:不然拿不到订单啊)那我只能多安排员工加班加点了。

工程师这么想:这个项目时间这么紧,还有这么多技术难点(issue)没有解决,要在最后期限之前完成,压力还真大啊。。。得,谁叫我们是“责任制”呢,周末主动来加班吧。

2. 按人头按天算酬

这样的计酬方式外国外包经常使用,前提是乙方是专业的外包公司,在保证效率的情况下,甲方宁愿按天和人头付钱,这样避免因为项目复杂而难于估计进度。

客户这么想:外包就是保证了人力成本降低了很多,相当于我又多了几个员工。那么我保证每天不会让他们闲着,每天跟踪(track)进度,偶尔也可以用“责任制”来占点便宜,让他们每天加点班,不过合同写着我一天只出8小时的钱。就好像买了个服务器一样,不让使用率达到90%以上就是浪费资源,于是周末也可以让他们来上班,甭管有没有项目最后期限的压力,就算给两倍工资也比自己的员工要便宜,那么在相同时间多干点活有什么不好呢。

开发商这么想:尽量在不影响我利益的大原则下,让客户满意,过一天是一天的钱。周末加班也有好处,可以忽悠那个外国客户多给点钱,但是还要一些成本(或者不用成本)出来安抚人心。只要保证所有的加班回款要到位就可以了。至于客户用“责任制”来压榨我们,偶尔这样可以,就当是维护客户的关系(因为和客户时间越长钱越多,钱不是一次到位),但是频率高了就得马上给客户发email打电话开会了,要求是不是应该多加点人头资源保证“项目的高质量”。

项目经理这么想:现在和客户已经是长期合作关系了。那么来了一个项目,就由我们来估计进度,然后发过去给客户瞧瞧,只要不太离谱一般客户都可以接受。让工程师估计进度的时候多留点空闲(buffer)吧,这样可以减少最后期限(deadline)带给我的压力和风险,而且因为按天算钱,所以我们在本项目中拿到的钱也会多一点,一举两得吧。

工程师这么想:既然客户让我们估计进度发给他看,那么不妨在保证质量的基础上给自己留点空闲(buffer),一来项目做到中间谁知道有没有什么阻碍进度(block)的问题(issue);二来以前“责任制”也让他们占了不少便宜,得要回来一点,我可不想自己那么累;三来站在公司的层面项目时间长那么一点对公司也有好处,因为按天算钱。

于是,客户,开发商,项目经理,工程师,上上下下,不论采用什么的付款方式,都热火朝天快快乐乐地干着活。

但有时候又会出现一些灰色的东西,比如客户说这个项目必须在下周五之前完成,或者这周末必须加班2天“保证我们的进度”。然后过了下周五之后,工程师赫然发现居然项目还在每天更新,于是知道自己被当服务器使唤了。这个时候客户依然会发过来一些不大不小的需求变更或者任务,但是因为不是一个项目级别的任务,所以没有规定最后期限。这个时候,工程师或者项目经理有两种选择:

1. 主动询问该需求变更的最后期限

工程师项目经理想:这是一个专业(Professional)的表现。

客户想:其实这个需求变更也不是那么急啊,不过既然他们那么问了,那还是用“责任制”的方法让他们早点交吧,好做下面的工作。毕竟我们是按天算钱的,我可不想在这个上面花费太多的时间,时间就是金钱。

2. 故意不问最后期限

工程师项目经理想:这个问题既然他们没有提,而且根据email和电话会议的语气也不是那么急,那么我们干脆不提出来算了。提了之后他们肯定把不急的事情当作紧急的事情处理了,那么我们又变成服务器一样了,而且自己累不说,公司也少赚不少钱。就按每天8小时给他们干吧,如果他们不满意进度,可以在适当时候提出“加人头资源”的谈判。

客户想:。。。。。(没什么想的,没有人提问还想什么呢)

如果这两种情况摆在面前,你选择哪种情况?

一年前,一年后

一年前,拿着两个不厚不薄的本子,从大学出来。自己开车,载着自己的行李,一路向东,再向东;一年后,工作场所固定而且大部分时间面对电脑,很久没开车,即使周末加班,也可以将心情放飞出那封闭的办公室。

一年前,来到关南小区找租房,最后还是在妈妈的协助下找到了即将退房的一家两房;一年后,不知不觉跟房东见面次数达到12次,每个月见一次面,给钱拿条,从此不再接触。

一年前,两房里面不是住着我一个人,还有两位高中战友,他们在这里拉开考研的序幕,很感谢他们能够在我踏入社会的初期共同生活一段时间;一年后,两房大部分时间住着我一个人,工作生活的分离需求让我原则上不太想找同事,也不想在外面帖广告了,贵就贵一点,顺其自然,自己舒坦就行。

一年前,两房里面除了房东的一破电视和破空调外,什么家电没有;一年后,因为自己赚了点钱,又深知这种钱是存不起来的,于是陆续为一个不属于自己的房子添加了电脑和热水器。

一年前,第一天上班,在大课堂里面听着人力资源的训导,中午大热天回去和高中同学一起吃盖饭,然后快速冲凉后继续听课。得知第一天装环境会很早走,结果第一天下班时间10:10PM;一年后,在新人就要到来的新的一周前,破天荒的连续工作了全周末,然后异常期盼着新人到来,心里想为他们做点什么,但是却因为项目原因无法对他们进行技术培训而小烦恼了一下。

一年前,做实习训练项目(Basic Training ,  Advanced Training)做到天昏地暗,奥运会中国对美国男篮那天竟然工作到第二天凌晨4点,走到路上还因为自己解决了一个技术问题兴奋不已;一年后,不再做dotNet,面对一个连CSDN上都找不到的脚本语言和从未谋面只听见声音的客户,不知道这些是不是只是一种符号。

一年前,以为自己很有能力,应该能做这做那,跨专业跨行业自己都有潜力;一年后,工作中出现的问题让我回归现实,脚踏实地,还好这个项目除了技术语言本身,让我在设计,管理,沟通,客户方面有很多提高和新的认识,也认识到自己有几斤几两。告诉自己要有耐心,不经历风雨,哪能见彩虹,不过还是相信自己跨专业跨行业自己都有潜力。

一年前,一度以为只要钻研一种技术或者技能很厉害,职业生涯就水到渠成;一年后,可能因为做了这么长时间的技术,可能因为身边的人分分合合,可能因为身处异常动荡的IT行业,意识到这个世界其实是由人构成,最宝贵的应该是身边经历的人,而不是掌握了一种别人都不会的技术。

一年前,一直认为加入一个公司就应该从底层干起,然后一步一步爬到VP(副总裁)的位置;一年后,面对职业有更多的思考,每个人在经营着一个叫“自己”的公司,不管自己服务哪家企业,都是在营销自己的公司,做为自己公司的CEO,应该让被服务的雇主得到更多的价值,并且在过程中让自己的公司也成长起来,从而达到双赢和问心无愧。

一年前,完全不懂得怎么才能找到爱情,最多也就停留在网上交流,后来才知道这叫暧昧,是一种不好的行为;一年后,知道最好了解对方的方式就是约会,待在一起从各种方面去感受对方,而不只是停留在文字上面说来说去,这样对大家都节约时间。而且不做太多修饰的去面对,展现真实的自己而不是最好的自己,轻松地去享受。

一年前,总是在迁就别人,希望每个人都觉得自己好;一年后,经过公司CEO的培训,知道不可能得到每个人的认同,因为人跟人本身就不一样。所以,做自己的自己,而不是别人的自己。

一年前,性格总体还是偏内向的,因为内心深处还是害怕遭到拒绝;一年后,心想被拒绝又怎么样呢?难道真的丢面子会死人吗?也许放下面子放下身段可以做成更多的事情,等待幸福来敲门。

一年前,一年后。生活,其实就那么些事儿。

写在毕业一周年之际

当校内网上的05级童鞋们纷纷上传自己的学士服照片的时候,不知不觉,我们毕业一周年了。

几个大学好友聚在一起,无忧无虑地吃着油闷大虾,喝着冰啤酒,海聊着。有的正常上班,有的依然待业,有的创业人生。非常非常享受着难得和大家在一起的过程,轻松闲适,聊着一些男人的话题,刹那间才发现大家已经长大,早已经不是学生,虽然我们是以大学同学的身份坐在一起。

这些人,这些在大学4年里经历过的人,将是我一生中的宝贵财富。

 

以此来纪念毕业一周年。