先说我自己的结论:软件实施的成功率跟项目经理性格的关系,比跟技术难度大得多。 我带过32个交付项目,其中19个在计划验收日之前两周内出现过“重大危机”,但真正导致推迟的只有3个,其余全是演出来的。甲方信息中心主任半夜在群里发飙说系统跑批超时,结果第二天发现是他自己往数据库里插了条十六万字的备注字段。这种事你没法写进周报,但它决定了实施到底顺不顺。
很多时候我们讨论实施方法论,讲敏捷、讲瀑布、讲混合模型,全是扯淡。你去看那些验收顺利的项目,通常有一个共同点:乙方项目经理敢在第三周把甲方关键用户拉进小黑屋吵一架。 反而那些客客气气、每周发精美周报、风险登记册写满三页纸的项目,十有八九会在最后阶段爆出一句“其实我们当时要的不是这个”。实施行业真正的核心技能不是管理需求,是管理甲方记忆——他们总能把三个月前自己签字确认的字段,记成你承诺过的界面风格。
我把踩过的坑分成两类:一类叫“数据迁移后遗症”,另一类叫“自定义报表焦虑症”。前者症状是上线后每三天出现一次金额对不平,最后查出原因永远是旧系统里存在同一客户编号下挂两套开户名的脏数据——而你清理规则当时如果定成“保留最早创建记录”,就一定会错过那笔用后创建记录结算的应收账款。后者更阴间:业务方在UAT环境里看着一张颜色不搭的统计报表,突然觉得领导可能想看占比趋势,于是提出“稍微加个饼图”,这个需求会连环触发底层存储过程的重写。实施顾问如果不懂说“这个改动影响上线证书版本签核”,就得自己连续熬四天夜。
我提供一个反常规的分阶段策略,跟PRINCE2和CMMI全都不沾边。 第一阶段管它叫“舔狗期”,乙方请甲方吃饭、送定制U盘、连食堂阿姨都认识你,目的是让人在启动会上把关键业务痛点全倒出来。第二阶段叫“摆烂期”,故意将原型做得糙一点——按钮位置要歪、下拉框选项顺序要错,给甲方留足了“我比乙方聪明”的优越感,等他们提完二十条修改意见后你一次性改对十五个,剩下五个说成“二阶段优化”,信任感反而拉满。第三阶段叫“甩锅演练期”,拉着甲方分角色模拟上线后数据出错的追责现场,今天怪操作手册没写清楚,明天怪接口返回码不规范,演练到第十次,双方心里都有数了:出了事只能一起编故事给高管交代。
你问我实施顾问夜里会不会心虚?会。尤其是每个项目做到第45天左右,我会突然怀疑整个系统的基础架构是不是选错了。后来我学会了把这股心虚变成工具:定期在群里抛出几个“半懂不懂”的技术设问,比如“我们的数据库主键用了雪花算法YY-MM-DD前缀,跨年会不会撞?”几乎必有一位甲方技术骨干跳出来长篇解答。这个人的存在就是最好的风险熔断机制。真正的实施高手不是保证系统不出bug,而是保证每个bug发生后,甲方都有个自己人帮忙说“这个其实我们当时考虑到过”。
最后谈验收,这才是全案最博弈的环节。多数乙方傻乎乎写“系统连续稳定运行30天即视为验收通过”,结果甲方就直接在第二十九天晚上执行一个包括四百万行关联删除的定时任务来试你。我的做法是反向约定:验收标准第一条先写“甲方必须在收到测试报告后7个工作日内给出书面答复,逾期视为同意”,用时间沉默期倒逼他们认真测。然后第二个杀手锏是预留一个无害的小毛病——比如打印模板里公司logo偏移2毫米,故意别修,等验收会开到一半看甲方要拍桌子了,现场花四分钟改掉,全场气氛瞬间从对质变成庆祝。这招三年没失手过。
说穿了,软件实施就是一场双方共同维护的体面骗局。乙方骗甲方“这系统未来可扩展”,甲方骗乙方“我们回去肯定认真再测两轮”,但只要双方都守着这个骗局不戳破,系统最后总能跑起来。怕就怕遇上较真的甲方,非要揪着你文档里“集成策略”那节为什么写的比“回滚方案”还详细。这时我会坦白:因为回滚方案写太细,你明天就不敢上线了。实施人的浪漫,就是在一个永远会出问题的世界里,确保问题出的时间都排在验收之后。