请理解交付

不知不觉间,似乎我可以开始归类一类程序员:他们有着相当厉害的编程功底,熟悉数据结构、算法、设计模式,能够熟练应用这些模式;在项目开发中承担主要编码职责,并守护着代码质量和设计的纯粹。然而,由于种种原因,他们没能参与最终项目的交付,而被调到别的项目,等等等等。在他们的经验体系中,交付,是个很遥远的词。

世界并不完美。我不得不这么说。因此当完美并具革命性的重构、设计遭遇到无法修改的却不能不做的实际业务功能时,我遗憾的看到,这类天才的程序员并没有表现出应有的职业素养。他们消极的抵挡着这些需求,并期待着有某些更富于承担责任的人来承担这些看起来无聊无趣的任务。与在开发阶段相比,在交付阶段,他们的贡献显得如此暗淡。

请理解交付。完美的项目几乎不存在。在开发阶段出现的问题,部署阶段会放大无数倍:环境的不确定性,以及人们对新事物的怀疑,以及对失败、错误记得比较牢固的天性,使得一个新项目的成功交付显得希望飘渺。要认识到,这个阶段没有人能逃离。保持坚定不移的勇气,和以交付为目的的广阔视野来度过这一阶段,才是真正为了交付而做出的努力。

8 Responses to “请理解交付”

  1. k.l Says:

    为什么不用扩展性来主动拥抱变化呢?

  2. Lin Sheng Says:

    1.作为一个优秀的程序员,当他预感到自己做的产品或项目最终会慢慢成为一砣shit的时候,消极抵抗是正常的。

    2.交付非常重要。问题是,是不是为了交付就可以牺牲质量。如果一个质量不好的产品交付给客户,它对客户的价值又再哪里?对整个项目团队来说,提交这样一个产品,团队的成就感又在哪里?

    3.请理解程序员,尤其是这些能坚持自己价值观的程序员。毕竟,这些人才是项目成败的关键。

  3. dreamhead Says:

    还有运气这么好的人,一次都没有赶上过?
    或许,这些人在道上混的时间还短,有经验者要耐心。

  4. Michael Chen Says:

    – 当他预感到自己做的产品或项目最终会慢慢成为一砣shit的时候,消极抵抗是正常的 为什么?为什么会有这种预感?为什么有了这种预感不想办法阻止?为什么消极抵抗?为什么有了这样的心态还是“优秀的程序员”?好吧,也许是一个优秀的程序员,但至少是一个不成熟的人。

    – 是不是为了交付就可以牺牲质量。。。这个靶子是怎么树起来的。。。当然,我完全同意你后面若干对这个观点的排比句论证。

    – BTW & FYI, 我也是程序员

  5. D Says:

    – 当他预感到自己做的产品或项目最终会慢慢成为一砣shit的时候,消极抵抗是正常的 为什么?为什么会有这种预感?为什么有了这种预感不想办法阻止?为什么消极抵抗?为什么有了这样的心态还是“优秀的程序员”?好吧,也许是一个优秀的程序员,但至少是一个不成熟的人。

    没法阻止.因为客户只是做一个’简单的改动’.于是你得到的时间是’两个工作日’.你除了用一个让项目逐渐变成shit的work around的,别无它法.之后,这样’简单的改动’越来越多,项目就成了一坨shit.如果你说你需要更多的时间,你就会从项目经理和市场部门听到刚才你说的那番话,”我们不要一个完美的项目,我们需要shipment”.

    任何人都不会乐意做自己不喜欢和违背自己价值观的事情,这肯定不限于程序员.

  6. XM Says:

    交付是检验质量的途径。只有用户对交付的产品满意的接受才能说明产品质量合格。
    如果一个没有缺陷,拥有美丽代码的产品不被用户接纳,或许是产品没能提供用户需要的功能,或许是项目严重超出预算;或许因为其他的原因不能被用户接纳,这个产品就没有提供其商业价值。这时候无论是质量,还是价值观,等等都成了浪费。

    团队的成就感应该来源于客户使用此产品而产生大量的价值。

  7. kent Says:

    其实有时候还有条路可以走,鼓足勇气,重构掉他。当然,前提是你得有测试.

    最近我就干了这么一件事情。

  8. martin miao Says:

    项目的发展,就是一个寻找balance的过程