办公室里什么最不缺?项目经理拍着大腿保证的鬼话。
“这功能后台就三行代码的事儿,下个月准上线,预算一分不超。”
听着挺美。结果半年过去,延期、超支、全员黑眼圈。客户那边,摇头摇得像拨浪鼓。咱们平时总爱甩锅。甩给“当初算漏了”,或者“团队能力不行”。真别扯了。
《软件需求与估算》这本书,偏不跟你玩虚的。它直接把手术刀往深处探:估算这事儿,压根不是为了抠出一个分毫不差的数字。而是拿边界感,去对付那些根本没谱的需求。别把估算当算命。当个“防弹衣”,更实在。
为啥非得较真?干软件工程这行,说白了就是跟一团乱麻死磕。不确定性,那是出厂自带的。客户嘴里蹦出来的“体验要丝滑”“界面得智能”。字儿没敲进文档前,全是大雾里的山。要是估算光为了迎合客户拍脑袋给的那个数,这活儿从一开始就白干。书里老念叨要“把需求摸透”。真不是逼着分析师去搞读心术。是逼着甲乙双方,把那些虚头巴脑的期待,全摊在桌面上。你算的每一个规模指标,每一行工时。其实都在问同一个死问题:咱们到底愿意掏钱买啥?又非得忍痛砍掉啥?我觉得吧。这种“砍需求”的勇气,比写代码难多了。毕竟动谁的奶酪,谁不高兴?
书里扒拉出来的那些估算路子。功能点分析。参数化模型。乍一看是冷冰冰的数学题。拆开揉碎了看,全是在教人怎么聊天。它们硬推着团队,把“一口吃个大胖子”拆成“一口一口嚼”。把“说不准的坑”折算成“多留的缓冲期”。现实里那些崩盘的项目,多半不是死在算术题上。是死在不敢划清界限。客户顺手塞个“小需求”,团队不敢怼。进度往后拖了两天,领导不敢调基线。数字一旦焊死成了死承诺,估算就没了喘息的余地。项目也就断了自救的后路。我见过太多团队,拿着Jira排期表当圣旨。结果需求一变,全员加班到凌晨两点。最后上线的,还是半成品。连个能交差的版本都凑不齐。
这道理套在大多数交付型项目里,确实没毛病。但卡点也在这儿。要是所有估算都死死攥着边界不放,会不会把新点子,直接掐死在摇篮里?碰上搞新技术摸索,或者业务方向天天变。过早把规模和成本锁死,反而会让团队陷进“为了凑数硬凑数”的扯皮内耗。作者这套打法,底子还是建立在需求相对安分的前提下。可现实里的生意场,哪有那么多按剧本走的戏码?估算本来就不该是一锤定音的判决书。它顶多算张能随时改路线的航海图。风向一变,死抱着最初的数字不撒手,不如赶紧调舵。我个人觉得,对于创新型业务,估算反而得留点“弹性空间”。不然团队连试错的胆子都没了。最后搞出来的,全是四平八稳的平庸货。
所以说。真正拿得出手的估算,不是把不确定性拍平。而是把它摊开来,晒晒太阳。它让你有底气开口:“按现在的底儿,搞定A和B得X个月。要是硬塞进C,预算就得加Y。或者咱们把D挪到下一期。”这种带着前提条件的承诺,比拍着胸脯喊“包在我身上”要实在得多。也扛事儿得多。开会的时候这么一说,老板和客户反而容易接受。毕竟账算得明白,谁也不好意思硬压。它把“必须完美交差”的死命令,悄悄换成了“到底怎么取舍”的选择题。
我私下里常琢磨。好多团队把估算搞成了应付上级的走过场。根子还是怕面对取舍。不敢撂下句“不”。不敢认句“我不清楚”。最后只能拿一套漂亮得挑不出毛病的计划表,去捂最烂的沟通摊子。估算表上跳着的那一个个小数点。底下压着的全是资源捉襟见肘的现实。和人性的弯弯绕。咱们要是真把估算当成一种聊天的门道,而不是拿来考打工人分数的尺子。心里那些虚火自然就降下来了。说句实在话,很多PM怕的不是算不准。是怕一算准,就得背锅。干脆拿模糊地带,把自己裹严实了。
再拎回开头那个拍胸脯说下月上线的项目。要是开局就能坦然接住需求里那些糊弄人的部分,用科学的估算方法把地盘划明白。后半程大概也就用不着天天熬大夜、救火场了。《软件需求与估算》翻到底。根本不是算账本。而是立规矩。在这乱糟糟、变数多的世道里,能清醒地掂量出自己手里能捏住什么、捏不住什么。并且敢为这选择兜底。项目才算真正落了地。数字会过期。边界会挪窝。但那份对复杂性的敬畏,和敢在不确定里圈出安全区的胆气。什么时候都管用。反正我是这么觉得。书里的招数,用的时候别死板。心里有杆秤就行。