我是做转发芯片微码的,就是给芯片写驱动和逻辑代码。可能和传统科研有点区别,但个人认为大同小异。
现代软件工程是一个很复杂的系统工程,环环相扣,就拿我们一种芯片的一个特性版本开发来说。
基本开发发布流程是这样的:
se设计架构-】de设立代码框架-】码农落地代码功能块-】编译-】测试部仿真-】打回修改,迭代n个版本-】实机测试-】打回修改,迭代m个版本-】最终发布。
这还只是一个大循环的步骤,一个正式版本一般需要到四到五个循环才能真正debug成熟。
这就可想而知了,看似是研究一个目标,实则分解下来可能有上百甚至上千个步骤,环环相扣,就算是100个环节,每个环节宽限一天,那也是100天分分钟就没了。
而且做研发项目久了就会发现,真的有deadline魔力。
我们公司一般管最后冲刺叫小黑屋攻关,就是把项目核心开发还有测试关一个会议室里,只要版本没改好,就一直关到deadline。
当然前提是原时间计划至少是靠谱的,你不能说一天就要开发出yutube来这种计划。
这种小黑屋攻关,不管留有多少bug,一般就两种结果,要么是真的在时限前改完测完了,要么是留存一些无关紧要的bug,带病上线。
这两种情况基本上是对开把。
所以deadline不仅是一个时间点,还是一个终点线,标志着研究的产品虽然还有些小bug,但确实可用了,而我们的研发也已经尽力拼搏到了最后一刻,实在没办法精益求精了。再继续强压,时间投入成本就赶不上收益了。