经验法则18 加快产品周期
假设你已经能够保证一定的质量,而且能够在限定的时间期限内交付产品,那么,出于几方面的原因,你应该尽可能迅速地开始项目周期。首先,不论你的速度多快,市场的发展、技术的变革或竞争对手会比你更快。甚至这三者都比你要快。其次,与任何关系一样,你与客户的关系只有通过频繁、真诚的沟通才能得以维护和加强,而产品则是你与客户沟通的主要媒介。产品说明了你的一切:你的理解、热情、目的、你对客户的态度、你追求的质量以及你的形象。产品不会说谎,产品就是你自己的化身。
我从未听说过由于双方的沟通过于真诚而导致关系破裂的情况(无论是业务关系还是其他关系)。通过不断更新产品,你不仅可以经常在市场上抛头露面,客户也通过购买模式和反馈向你传达信息。同样,钞票也不会说谎。正是这些交易维系着你与客户之间的关系,你们之间的交易越频繁,关系就越活跃。
我们的Visual C++(www.cppentry.com)团队能够迅速推出产品,因为既然我们已经找到了开发的方法,我们就想要继续做下去。这种能力已经成为一种强大的竞争武器,它也是我们与客户保持良好关系的途径。利用这种优势,我们已经将订购作为主要的营销方式,每年推出3个版本。我认为这种先进的软件交付模式是一种自然的趋势。但是,这方面存在两个问题。其一,对于定期交付订购模式的产品,很少有软件企业具有这方面的经验;其次,软件企业很难做到对产品进行"无痛"更新,而不出现功能倒退。不过,随着软件开发企业定期交付产品能力的增强,以及计算机和网络基础架构的成熟,我相信这种模式将变得更加常见。
从客户的角度看,他需要能够连续使用某个给定的版本。客户可能正专注于他们自己软件的内部发布,或者在进行其他投资。不管是什么原因,客户都不希望只是从你那里得到"是或否"这样简单的选择。客户希望能够对他们的软件采用活动做出规划。为此,他们需要能够预测你的下一个版本的发布时间和可能造成的影响。然而,令人遗憾的是,当前软件行业的现状是:厂商随机提供主要的产品升级(只是为了与不成熟的开发流程一致),并在两次升级期间发布毫无规划的缺陷修复。
按期交付和定期交付产品要优于不定期交付大型、主要和革命性的产品。响应客户的需求,但并不一定要推出革命性的版本。采用订购式的交付模式使你有机会推出"仅满足客户需求"的版本,帮助客户解决令他们头痛的问题。如果你做到这一点,客户就会非常高兴。我还发现,消除客户的麻烦其实并没什么大不了的。通常,这其中并不包含什么技术含量,往往是特定的产品行为让客户烦心,而这方面的任何改进都会让客户觉得宽慰。
我发现,客户大都喜欢实实在在的产品,而不是空口承诺。有些情况下,你需要同时为客户提供承诺和软件,但一般而言,只要你为他们提供新版本的软件,客户就满足了。如果你邀请他们参加娱乐活动,他们也乐于接受,但这样并不能使他们购买你的产品。
相比于仅仅提供一次大规模更新,提供许多小规模更新会更可取。通过一系列版本更新的改进,你更有可能开发出深受客户欢迎的软件。要想按期交付伟大的软件,我们必须重视小型、易于理解的解决方案,而不是充满未知数的大型解决方案。